HTML JPG PDF XML DOCX
  Product Family
PDF

العمل مع التعليقات التوضيحية في PDF عبر SDK Java

واجهة برمجة التطبيقات لإدارة التعليقات التوضيحية في مستندات PDF باستخدام Java.

Get Started

كيفية العمل مع التعليقات التوضيحية في مستندات PDF باستخدام Cloud Java SDK

من أجل العمل مع التعليقات التوضيحية في مستندات PDF عبر Cloud Java SDK ، سنستخدم Aspose.PDF Cloud Java SDK يتيح لك هذا الـ SDK السحابي إنشاء تطبيقات صانع PDF ومحرّره ومحوله المستندات السحابية بسهولة باستخدام لغة Java لمختلف المنصات السحابية. افتح Repository مدير الحزم، ابحث عن Aspose.PDF Cloud ثم قم بالتثبيت. يمكنك أيضًا استخدام الأمر التالي من وحدة تحكم مدير الحزم لتثبيته باستخدام 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();
            }
        }
    }