HTML JPG PDF XML DOCX
  Product Family
PDF

Работа с аннотациями в 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‑документы всего в несколько строк кода.

  1. Загружает PDF.
  2. Создаёт стилизованный текстовый блок (с шрифтами, цветами, выравниванием).
  3. Добавляет аннотацию на указанную страницу.
  4. Скачивает изменённый документ для локального использования.
 

Этот пример кода демонстрирует добавление аннотаций в 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();
            }
        }
    }