Работа с аннотациями в PDF через Java SDK
API для управления аннотациями в PDF‑документах с помощью Java.
Get StartedКак работать с аннотациями в PDF‑документах с помощью Cloud Java SDK
Чтобы работать с аннотациями в PDF‑документах через Cloud Java SDK, мы будем использовать Aspose.PDF Cloud Java SDK Этот облачный SDK позволяет легко создавать облачные приложения‑создатели, редакторы и конвертеры PDF на языке Java для различных облачных платформ. Откройте Repository в менеджере пакетов найдите Aspose.PDF Cloud и установите. Вы также можете использовать следующую команду в консоли Package Manager для установки через Maven.
Добавьте репозиторий Aspose Cloud в ваш файл pom.xml
Добавить репозиторий Aspose Cloud
<repositories>
<repository>
<id>aspose-cloud</id>
<name>Aspose Cloud Repository</name>
<url>https://releases.aspose.cloud/java/repo/</url>
</repository>
</repositories>
Чтобы установить клиентскую библиотеку API в ваш локальный репозиторий Maven, просто выполните:
Установка из Github
mvn clean install
Чтобы развернуть её в удалённый репозиторий Maven, настройте параметры репозитория и выполните:
Развернуть репозиторий Maven
mvn clean deploy
Шаги по добавлению аннотаций с использованием Java SDK
Разработчики Aspose.PDF Cloud могут легко загружать и добавлять аннотации в PDF‑документы всего в несколько строк кода.
- Загружает PDF.
- Создаёт стилизованный текстовый блок (с шрифтами, цветами, выравниванием).
- Добавляет аннотацию на указанную страницу.
- Скачивает изменённый документ для локального использования.
Этот пример кода демонстрирует добавление аннотаций в PDF‑документ
package com.aspose.asposecloudpdfusecases.annotations;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
import com.aspose.asposecloudpdf.api.PdfApi;
import com.aspose.asposecloudpdf.model.AsposeResponse;
import com.aspose.asposecloudpdf.model.Color;
import com.aspose.asposecloudpdf.model.FreeTextAnnotation;
import com.aspose.asposecloudpdf.model.FreeTextIntent;
import com.aspose.asposecloudpdf.model.HorizontalAlignment;
import com.aspose.asposecloudpdf.model.Justification;
import com.aspose.asposecloudpdf.model.Rectangle;
import com.aspose.asposecloudpdf.model.TextStyle;
public class AnnotationAddText {
public static void Create() {
String REMOTE_FOLDER = "Your_Temp_Pdf_Cloud";
String LOCAL_FOLDER = "c:\\Samples";
String PDF_DOCUMENT = "sample.pdf";
String PDF_OUTPUT = "annotation_add_freetext_output.pdf";
Integer PAGE_NUMBER = 1;
String NEW_UL_ANNOTATION_TEXT = "NEW FREE TEXT ANNOTATION";
String NEW_UL_ANNOTATION_DESCRIPTION = "This is a sample free text annotation";
String NEW_UL_ANNOTATION_SUBJECT = "Free Text Box Subject";
String NEW_UL_ANNOTATION_CONTENTS = "Free text annotation sample contents";
try {
PdfApi pdfApi = new PdfApi(API_KEY, API_SECRET);
// upload local PDF file to remote storage
File file = new File(Path.of(LOCAL_FOLDER, PDF_DOCUMENT).toString());
pdfApi.uploadFile(Path.of(REMOTE_FOLDER , PDF_DOCUMENT).toString(), file, null);
System.out.println(String.format("File '%s' successfully uploaded!", Path.of(LOCAL_FOLDER, PDF_DOCUMENT).toString()));
TextStyle textStyle = new TextStyle();
textStyle.setFontSize(20.);
textStyle.setForegroundColor(new Color().A(255).G(255));
textStyle.setBackgroundColor(new Color().A(255).R(255));
FreeTextAnnotation annotation = new FreeTextAnnotation();
annotation.setName("Free_Text_Annotation");
annotation.setRect(new Rectangle().LLX(100.).LLY(350.).URX(450.).URY(400.));
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.setIntent(FreeTextIntent.FREETEXTTYPEWRITER);
annotation.setRichText(NEW_UL_ANNOTATION_TEXT);
annotation.setSubject(NEW_UL_ANNOTATION_SUBJECT);
annotation.setContents(NEW_UL_ANNOTATION_CONTENTS);
annotation.setTitle(NEW_UL_ANNOTATION_DESCRIPTION);
annotation.setZindex(1);
annotation.setJustification(Justification.CENTER);
annotation.setTextStyle(textStyle);
annotation.setModified("11/20/2025 00:00:00.000 AM");
List<FreeTextAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
AsposeResponse response = pdfApi.postPageFreeTextAnnotations(PDF_DOCUMENT, PAGE_NUMBER, annotations, null, REMOTE_FOLDER);
if (response.getCode() != 200)
System.err.println("Error: unexpected error when adding annotation! '" + response.getStatus() + "'");
else{
// download changed PDF file from remote folder...
File f = pdfApi.downloadFile(Path.of(REMOTE_FOLDER , PDF_DOCUMENT).toString(), null, null);
java.nio.file.Files.copy(Path.of(f.getPath()), Path.of(LOCAL_FOLDER, PDF_OUTPUT), StandardCopyOption.REPLACE_EXISTING);
System.out.println(String.format("File '%s' successfully dowloaded!", Path.of(LOCAL_FOLDER, PDF_OUTPUT).toString()));
System.out.println("Successfully added annotation in document ! '" + PDF_OUTPUT + "'");
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}