
Содержимое страницы PDF трудно редактировать, но спецификация PDF определяет полный набор объектов, которые можно добавлять на страницы PDF без изменения содержимого страницы. Эти объекты называются аннотациями, и их назначение варьируется от разметки содержимого страницы до внедрения интерактивных функций, таких как формы.
Большинство просмотрщиков PDF позволяют создавать и редактировать различные типы аннотаций, например, текстовые выделения, заметки, линии или фигуры, и независимо от типов создаваемых аннотаций просмотрщики PDF, соответствующие спецификации PDF, также должны поддерживать рендеринг для всех типов аннотаций. Однако при работе с большим набором документов ручной процесс добавления аннотаций становится громоздким, и поэтому программный API является жизнеспособным решением. Далее мы обсудим использование Aspose.PDF Cloud SDK for Java для добавления аннотаций в документы PDF.
- Установка SDK
- Зачеркивание текста с помощью Java
- Добавить аннотацию выделения
- Как добавить аннотацию к строке
- Добавление круглой аннотации в PDF
Установка SDK
Aspose.PDF Cloud SDK для Java — это программный API, который позволяет программистам Java создавать, изменять и преобразовывать существующие PDF-документы в другие поддерживаемые форматы документов. Cloud SDK доступен для загрузки через Maven и GitHub. Теперь добавьте следующие данные в файл pom.xml, чтобы загрузить и использовать Aspose.Pdf.jar в вашем проекте сборки Maven.
<repositories>
<repository>
<id>aspose-cloud</id>
<name>artifact.aspose-cloud-releases</name>
<url>https://artifact.aspose.cloud/repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf-cloud</artifactId>
<version>21.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Для получения дополнительной информации посетите страницу Как установить Aspose.Cloud SDK.
Кроме того, обратите внимание, что для обеспечения конфиденциальности пользователей и целостности данных все наши API доступны только авторизованным лицам. Поэтому вам необходимо сначала посетить панель управления Aspose.Cloud и, если у вас есть учетная запись GitHub или Google, просто зарегистрироваться. В противном случае нажмите кнопку Создать новую учетную запись и укажите необходимую информацию. Теперь войдите в панель управления, используя учетные данные, разверните раздел «Приложения» на панели управления и прокрутите вниз до раздела «Учетные данные клиента», чтобы увидеть данные Client ID и Client Secret.
Зачеркивание текста с помощью Java
Иногда нам требуется пометить определенный контент внутри документа как устаревший, не удаляя его из документа. Зачеркивание (или зачеркивание) представлено словами с горизонтальной линией по центру. Это означает, что текст неправильный или устаревший и был недавно удален или помечен как таковой. Мы можем задать настройки зачеркнутых аннотаций с помощью свойства strikethroughSettings. Свойство strikethroughSettings используется для установки свойств цвета, непрозрачности, автора, темы, modifiedDate и isLocked зачеркнутых аннотаций.
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
// экземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// входной PDF-документ
String sourcePDF = "PdfWithTable.pdf";
int pageNumber = 1;
// создать прямоугольную область для аннотации
Rectangle rect = new Rectangle()
.LLX(200.)
.LLY(380.)
.URX(250.)
.URY(375.);
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
List<Point> points = new ArrayList<>();
points.add(new Point().X(132.).Y(380.)); // Top-Left edge of the Strike Through line
points.add(new Point().X(95.).Y(10.)); // Top-Right edge of the strike through line
points.add(new Point().X(130.).Y(25.));
points.add(new Point().X(130.).Y(10.));
StrikeOutAnnotation annotation = new StrikeOutAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setQuadPoints(points);
annotation.setModified("05/22/2021 00:00:00.000 AM");
List<StrikeOutAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
AsposeResponse response = pdfApi.postPageStrikeOutAnnotations(sourcePDF, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());
Добавить аннотацию выделения
Выделение содержимого внутри PDF-файла необходимо, поскольку оно позволяет нам привлечь внимание к важной информации в документе. Выделение эффективно, поскольку оно сначала просит читателя выделить важные части, а затем дает эффективный способ просмотреть эту информацию позже. Наш облачный API предоставляет возможности для выделения содержимого внутри PDF-документов. Ниже приведены шаги для добавления аннотаций выделения в файл PDF.
- Прежде всего, создайте экземпляр PdfApi, указав данные ClientSecret и ClientId.
- Мы создаем экземпляр File для загрузки PDF-файла из локальной системы, а затем вызываем метод uploadFile(…) класса PdfApi для загрузки документа в облачное хранилище.
- Теперь создайте экземпляр класса Rectangle, чтобы указать прямоугольную область, куда можно добавить аннотацию.
- Затем создайте ArrayList типа Point для хранения информации о точках для рисования HighlightAnnotation.
- Создайте объект класса HighlightAnnotation и задайте Имя, Прямоугольную область, Тему, Заголовок, QuadPoints, Дату изменения аннотации.
- Следующим шагом будет создание списка типа HighlightAnnotation и добавление в этот список объекта HighlightAnnotation, созданного выше.
- Наконец, вызовите метод postPageHighlightAnnotations(…) класса PdfApi и передайте исходный PDF-файл, номер страницы и список аннотаций в качестве аргументов.

Изображение 1: Выделение аннотации в PDF-файле.
Вы можете загрузить образцы файлов, использованные в примере выше, по следующим ссылкам.
Как добавить аннотацию к строке
Подобно добавлению зачеркнутых и выделенных аннотаций, API также позволяет добавлять аннотации строк в документы PDF. У нас есть класс с именем LineAnnotation для выполнения этого требования. Ниже приведены дополнительные сведения о том, как выполнить это требование.
- Прежде всего, создайте экземпляр PdfApi, указав данные ClientSecret и ClientId.
- При желании мы создаем экземпляр File для загрузки PDF-файла из локальной системы, а затем вызываем метод uploadFile(…) класса PdfApi для загрузки документа в облачное хранилище. Если файл уже доступен в облачном хранилище, мы можем его использовать.
- Остальные свойства инициализации объекта такие же, как упомянутые выше для HighlithAnnotation, за исключением того, что нам нужно создать объект класса LineAnnotation и задать начальную и конечную точку линии с помощью методов setStarting(…) и setEnding(…).
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// экземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// входной PDF-документ
String sourcePDF = "PdfWithTable.pdf";
// Загрузить файл из локальной системы
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// загрузить файл в облачное хранилище
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// номер страницы, на которую будет добавлена аннотация
int pageNumber = 1;
// создать прямоугольную область для аннотации
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(500.)
.URX(400.)
.URY(510.);
// создать объект List типа AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// Создать объект «Линейные аннотации»
LineAnnotation annotation = new LineAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// установить начальную точку линии
annotation.setStarting(new Point().X(100.).Y(100.));
// установить конечную точку линии
annotation.setEnding(new Point().X(20.).Y(680.));
// создать экземпляр цвета для staleblue
Color color = new Color();
color.setA(0x00);
color.setR(0x6A);
color.setG(0x5A);
color.setB(0xCD);
// установить цвет аннотации
annotation.interiorColor(color);
// установить дату изменения аннотации
annotation.setModified("05/22/2021 00:00:00.000 AM");
// Создать экземпляр списка аннотаций строк
List<LineAnnotation> annotations = new ArrayList<>();
// добавить объект LineAnnotation в список Line Annotation
annotations.add(annotation);
// вызов метода API для добавления аннотации строки в файл PDF
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);
Добавление круглой аннотации в PDF
Круговые аннотации также часто используются внутри PDF-документов, и API очень хорошо поддерживает этот тип аннотации. Чтобы добавить круговые аннотации, попробуйте использовать класс CircleAnnotation. Указанный ниже код может быть использован для выполнения этого требования.
// Получите ClientID и ClientSecret с https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
// экземпляр createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
// входной PDF-документ
String sourcePDF = "PdfWithTable.pdf";
// Загрузить файл из локальной системы
File file = new File("/Users/nayyershahbaz/Downloads/" + sourcePDF);
// загрузить файл в облачное хранилище
FilesUploadResult uploadResponse = pdfApi.uploadFile(sourcePDF, file, null);
// Номер страницы, на которую будет добавлена аннотация
int pageNumber = 1;
// создать прямоугольную область для аннотации
Rectangle rect = new Rectangle()
.LLX(100.)
.LLY(700.)
.URX(300.)
.URY(500.);
// создать объект List типа AnnotationFlags
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);
// Создать объект «Выделенные аннотации»
CircleAnnotation annotation = new CircleAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setRichText("Rich Text");
annotation.setSubject("Subj");
annotation.setTitle("Title");
// создать экземпляр цвета для staleblue
Color color = new Color();
color.setR(0xC7);
color.setG(0xE2);
color.setB(0x6f);
// установить цвет аннотации
annotation.interiorColor(color);
// установить дату изменения аннотации
annotation.setModified("05/22/2021 00:00:00.000 AM");
// Создать экземпляр списка выделенных аннотаций
List<CircleAnnotation> annotations = new ArrayList<>();
// добавить объект CircleAnnotation в список Circle Annotation
annotations.add(annotation);
// вызовите метод API для добавления круговой аннотации в файл PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);

Изображение 2:- Круглая аннотация в PDF-файле.
Входной PDF-документ и результирующий PDF-файл, показанные выше, можно загрузить по следующим ссылкам:
Краткий совет
Воспользуйтесь нашим бесплатным онлайн-приложением для добавления примечаний в PDF-файл, чтобы удалить все примечания из PDF-файла одним щелчком мыши.
Заключение
В этом блоге мы обсудили различные типы аннотаций, которые в настоящее время поддерживаются Aspose.PDF Cloud SDK для Java. Помимо аннотаций, API поддерживает множество других интересных функций, связанных с форматом PDF. Для получения дополнительной информации мы рекомендуем вам изучить Руководство разработчика.
Пожалуйста, имейте в виду, что мы всегда стремимся обслуживать клиентов наилучшим образом и признаем их отзывы и предложения. Поэтому, если у вас возникнут какие-либо проблемы при использовании API или у вас возникнут какие-либо связанные с этим вопросы, пожалуйста, свяжитесь с нами через наш бесплатный форум поддержки.
Похожие статьи
Мы настоятельно рекомендуем посетить следующие ссылки, чтобы узнать больше о: