Обновление ссылок в PDF
Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.
Обновление ссылок в PDF файле
Как обсуждалось в разделе Добавление гиперссылки в PDF файл, класс LinkAnnotation позволяет добавлять ссылки в PDF файл. Существует также похожий класс, используемый для получения существующих ссылок из PDF файлов. Используйте это, если вам нужно обновить существующую ссылку. Чтобы обновить существующую ссылку:
- Загрузите PDF файл.
- Перейдите на определенную страницу в PDF файле.
- Укажите место назначения ссылки с помощью свойства Destination объекта GoToAction.
- Страница назначения указывается с помощью конструктора XYZExplicitDestination.
Установка цели ссылки на страницу в том же документе
Следующий фрагмент кода показывает, как обновить ссылку в PDF файле и установить ее цель на вторую страницу документа. Следующий фрагмент кода показывает, как обновить ссылку в файле PDF и установить её цель на вторую страницу документа.
// Для полных примеров и файлов данных, пожалуйста, перейдите по ссылке https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Загрузить файл PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// Получить первую аннотацию ссылки с первой страницы документа
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Модификация ссылки: изменение места назначения
GoToAction goToAction = (GoToAction)linkAnnot.Action;
// Указать место назначения для объекта ссылки
// Первый параметр - это объект документа, второй - номер страницы назначения.
// Пятый аргумент - это коэффициент масштабирования при отображении соответствующей страницы. При использовании 2 страница будет отображаться с увеличением 200%
goToAction.Destination = new Aspose.Pdf.Annotations.XYZExplicitDestination(1, 1, 2, 2);
dataDir = dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf";
// Сохранить документ с обновленной ссылкой
doc.Save(dataDir);
Установить адрес ссылки на веб-адрес
Для обновления гиперссылки, чтобы она указывала на веб-адрес, создайте объект GoToURIAction и передайте его в свойство Action аннотации LinkAnnotation. Следующий фрагмент кода показывает, как обновить ссылку в файле PDF и установить ее целью веб-адрес.
// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Загрузить файл PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// Получить первую аннотацию ссылки с первой страницы документа
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// Модификация ссылки: изменить действие ссылки и установить целью веб-адрес
linkAnnot.Action = new GoToURIAction("www.aspose.com");
dataDir = dataDir + "SetDestinationLink_out.pdf";
// Сохранить документ с обновленной ссылкой
doc.Save(dataDir);
Установить цель ссылки на другой PDF-файл
Следующий фрагмент кода показывает, как обновить ссылку в PDF-файле и установить её цель на другой PDF-файл.
// Для полных примеров и файлов данных, пожалуйста, перейдите по ссылке https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Загрузить PDF-файл
Document document = new Document(dataDir + "UpdateLinks.pdf");
LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];
GoToRemoteAction goToR = (GoToRemoteAction)linkAnnot.Action;
// Следующая строка обновляет назначение, не обновляйте файл
goToR.Destination = new XYZExplicitDestination(2, 0, 0, 1.5);
// Следующая строка обновляет файл
goToR.File = new FileSpecification(dataDir + "input.pdf");
dataDir = dataDir + "SetTargetLink_out.pdf";
// Сохранить документ с обновленной ссылкой
document.Save(dataDir);
Обновить цвет текста LinkAnnotation
Аннотация ссылки не содержит текста. Аннотация ссылки не содержит текста.
// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Путь к директории с документами.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// Загрузка файла PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
foreach (Annotation annotation in doc.Pages[1].Annotations)
{
if (annotation is LinkAnnotation)
{
// Поиск текста под аннотацией
TextFragmentAbsorber ta = new TextFragmentAbsorber();
Rectangle rect = annotation.Rect;
rect.LLX -= 10;
rect.LLY -= 10;
rect.URX += 10;
rect.URY += 10;
ta.TextSearchOptions = new TextSearchOptions(rect);
ta.Visit(doc.Pages[1]);
// Изменение цвета текста.
foreach (TextFragment tf in ta.TextFragments)
{
tf.TextState.ForegroundColor = Color.Red;
}
}
}
dataDir = dataDir + "UpdateLinkTextColor_out.pdf";
// Сохранение документа с обновленной ссылкой
doc.Save(dataDir);