إضافة تعليقات توضيحية إلى ملف PDF

هذه المدونة هي استمرار لمدونتنا السابقة حيث سلطنا الضوء على بعض الميزات المثيرة للاهتمام في Aspose.PDF Cloud SDK for Java حول كيفية إضافة تمييز النص أو شطب النص، وإضافة تعليقات توضيحية على الخطوط أو الدوائر في PDF باستخدام Java REST API. في هذه المقالة، سنناقش بشكل خاص التفاصيل حول إضافة تعليقات توضيحية على النصوص والخطوط المتعددة والخطوط المتعرجة والمرفقات داخل مستندات PDF باستخدام لغة برمجة Java.

Aspose.PDF Cloud عبارة عن واجهة برمجة تطبيقات REST تتيح للمستخدمين إنشاء ملفات PDF الموجودة ومعالجتها وعرضها على تنسيقات المستندات المدعومة. يمكن الوصول إلى واجهة برمجة التطبيقات السحابية باستخدام الطريقتين التاليتين:

  • الوصول إلى واجهة برمجة التطبيقات عبر أوامر cURL
  • الوصول إلى واجهة برمجة التطبيقات (API) في لغة برمجة Java

دعونا نناقش بمزيد من التفصيل إضافة العديد من التعليقات التوضيحية إلى مستندات PDF باستخدام أوامر cURL وأكواد Java.

إضافة التعليقات التوضيحية باستخدام الأمر cURL

أوامر cURL هي واحدة من أسهل وأروع الطرق للوصول إلى واجهات برمجة تطبيقات REST. لذا دعنا نتحدث عن إضافة التعليقات التوضيحية المختلفة باستخدام أوامر cURL. يرجى ملاحظة أن كل واجهة برمجة تطبيقات تمكنك أيضًا من الوصول إلى مساحة التخزين السحابية حيث يمكن تخزين الملفات للمعالجة، لذلك لضمان سلامة البيانات، لا يمكن الوصول إلى واجهات برمجة التطبيقات الخاصة بنا إلا للأشخاص المصرح لهم. لذلك، تحتاج أولاً إلى زيارة لوحة تحكم Aspose.Cloud وإذا كان لديك حساب GitHub أو Google، فما عليك سوى التسجيل. بخلاف ذلك، انقر فوق الزر إنشاء حساب جديد وقم بتقديم المعلومات المطلوبة. الآن قم بتسجيل الدخول إلى لوحة التحكم باستخدام بيانات الاعتماد، وقم بتوسيع قسم التطبيقات من لوحة التحكم وانتقل لأسفل نحو قسم بيانات اعتماد العميل لمعرفة تفاصيل معرف العميل والسر الخاص بالعميل.

الآن الخطوة التالية هي إنشاء رمز ويب JSON (JWT) حتى يمكن الوصول إلى واجهات برمجة التطبيقات من خلال موجه الأوامر.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=7042694c-5251-4aba-83c9-e81e7518724f&client_secret=db246d4742e8cd22e7266c9391992689" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

شرح النص

التعليق النصي هو تعليق مرفق بموقع محدد في مستند PDF. عند إغلاقه، يتم عرض التعليق كأيقونة؛ وعند فتحه، يجب أن يعرض نافذة منبثقة تحتوي على نص الملاحظة بالخط والحجم الذي يختاره القارئ. لإضافة التعليق النصي، نحتاج إلى استخدام واجهة برمجة التطبيقات PostPageTextAnnotation. استخدم أمر cURL التالي لإضافة التعليق النصي مع أيقونة الملاحظة.

 curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithBookmarks.pdf/pages/1/annotations/text" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: application/json" \
-d "[{  \"Color\": {  \"A\": 0, \"R\": 0xDA,  \"G\": 0xA5, \"B\": 0x20    },  \"Contents\": \"Hello World \",  \"Modified\": \"05/26/2021 03:10:00.000 PM\",    \"Id\": \"1\",    \"Flags\": [      \"Default\"    ],    \"Name\": \"string\",    \"Rect\": {      \"LLX\": 100,      \"LLY\": 800,      \"URX\": 100,      \"URY\": 100    },    \"PageIndex\": 1,    \"ZIndex\": 1,    \"HorizontalAlignment\": \"Center\",    \"VerticalAlignment\": \"Center\",    \"CreationDate\": \"string\",    \"Subject\": \"Subject of Annotation\",    \"Title\": \"Annotation Title\",    \"RichText\": \"string\",    \"State\": \"Undefined\",    \"Open\": true,    \"Icon\": \"Note\"  }]"
شرح النص في PDF

الصورة 1:- تعليق نصي مع أيقونة ملاحظة في ملف PDF.

يمكن تنزيل ملفات PDF النموذجية المستخدمة في المثال أعلاه من الروابط التالية

شرح الخطوط المتعددة

تُستخدم تعليقات الخطوط المتعددة لرسم الخطوط المتعددة يدويًا على الصفحة. ويمكن أن تحتوي على أي عدد من الجوانب التي تحددها رؤوس الخطوط المتعددة. ولا يمكن تحديد تعليقات الخطوط المتعددة ذات لون التعبئة الشفاف إلا حول خطوطها المرئية. ويمكن أيضًا إضافة تعليقات الخطوط المتعددة باستخدام واجهة برمجة التطبيقات PostPagePolyLineAnnotations.

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/pages/1/annotations/polyline" \
-H  "accept: application/json" \
-H  "authorization: Bearer " \
-H  "Content-Type: application/json" \
-d "[  {       \"Color\": {      \"A\": 0,      \"R\": 122,      \"G\": 132,      \"B\": 255    },    \"Contents\": \"Hello World...\",    \"Modified\": \"05/26/2021 03:10:00.000 PM\",    \"Id\": \"1\",    \"Flags\": [      \"Default\"    ],    \"Name\": \"Polyline\",    \"Rect\": {      \"LLX\": 100,      \"LLY\": 200,      \"URX\": 150,      \"URY\": 250    },    \"PageIndex\": 1,    \"ZIndex\": 1,    \"HorizontalAlignment\": \"Center\",    \"VerticalAlignment\": \"Center\",    \"CreationDate\": \"05/26/2021 03:10:00.000 PM\",    \"Subject\": \"Subject of Annotation\",    \"Title\": \"Title of Annotation\",    \"RichText\": \"<?xml version=\\\"1.0\\\"?><body xmlns=\\\"http://www.w3.org/1999/xhtml\\\" xmlns:xfa=\\\"http://www.xfa.org/schema/xfa-data/1.0/\\\" xfa:APIVersion=\\\"Acrobat:7.0.0\\\" xfa:spec=\\\"2.0.2\\\" ><span style=\\\"text-decoration:;font-size:10.0pt\\\">Contents</span></body>\",    \"InteriorColor\": {      \"A\": 255,      \"R\": 120,      \"G\": 110,      \"B\": 255    },    \"StartingStyle\": \"Circle\",    \"EndingStyle\": \"OpenArrow\",    \"Intent\": \"PolyLineDimension\",    \"Vertices\": [      {            \"X\": 164.611,            \"Y\": 499.629          },          {            \"X\": 192.858,            \"Y\": 509.857          },          {            \"X\": 226.461,            \"Y\": 493.785          }    ]  }]"

تعليق متعرج

annotpdf - npm

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

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/pages/1/annotations/squiggly" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: application/json" \
-d "[  {    \"Color\": {      \"A\": 255,      \"R\": 120,      \"G\": 123,      \"B\": 150    },    \"Contents\": \"A squiggly Annotation\",    \"Modified\": \"05/26/2021 03:10:00.000 PM\",    \"Id\": \"1\",    \"Flags\": [      \"Default\"    ],    \"Name\": \"First Annotation\",    \"Rect\": {      \"LLX\": 100,      \"LLY\": 300,      \"URX\": 120,      \"URY\": 330    },    \"PageIndex\": 1,    \"ZIndex\": 1,    \"HorizontalAlignment\": \"Center\",    \"VerticalAlignment\": \"Center\",    \"CreationDate\": \"05/26/2021 03:10:00.000 PM\",    \"Subject\": \"Subject \",    \"Title\": \"Title of Squiggly\",     \"Starting\": {      \"X\": 162.663,      \"Y\": 654.5    },    \"StartingStyle\": \"Circle\",    \"Ending\": {      \"X\": 230.845,      \"Y\": 654.5    },    \"EndingStyle\": \"OpenArrow\",    \"InteriorColor\": {      \"A\": 255,      \"R\": 220,      \"G\": 220,      \"B\": 220    },    \"LeaderLine\": 10,    \"LeaderLineExtension\": 5,    \"LeaderLineOffset\": 2.5,    \"ShowCaption\": true,    \"CaptionOffset\": {      \"X\": 7,      \"Y\": 8    },    \"CaptionPosition\": \"Top\",    \"Intent\": \"LineArrow\",\"RichText\": \"string\",    \"QuadPoints\": [      {        \"X\": 100,        \"Y\": 200      }    ]  }]"

تعليق المرفق

يمكن إضافة ملفات مختلفة كتعليقات توضيحية للمرفقات إلى مستند PDF، ولإنجاز هذا المطلب، يمكن استخدام واجهة برمجة التطبيقات PostPageFileAttachmentAnnotations. قم بتنفيذ أمر cURL التالي لإرفاق ملف موجود بمستند PDF. في مثالنا، يتم استخدام الملف المسمى PdfWithTable.pdf (المتوفر بالفعل على التخزين السحابي) كمرفق.

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithBookmarks.pdf/pages/1/annotations/fileattachment" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: application/json" \
 -d "[  {       \"Color\": {      \"A\": 255,      \"R\": 120,      \"G\": 120,      \"B\": 120    },    \"Contents\": \"Content\",    \"Modified\": \"05/26/2021 03:10:00.000 PM\",    \"Id\": \"1\",    \"Flags\": [      \"Default\"    ],    \"Name\": \"FileAttachment\",    \"Rect\": {      \"LLX\": 100,      \"LLY\": 200,      \"URX\": 120,      \"URY\": 2200    },    \"PageIndex\": 1,    \"ZIndex\": 0,    \"HorizontalAlignment\": \"Center\",    \"VerticalAlignment\": \"Top\",    \"CreationDate\": \"05/26/2021 03:10:00.000 PM\",    \"Subject\": \"Subject\",    \"Title\": \"Title\",    \"RichText\": \"string\",    \"Icon\": \"PushPin\",    \"Opacity\": 0,    \"FileDescription\": \"string\",    \"FileName\": \"PdfWithTable.pdf\",    \"FilePath\": \"PdfWithTable.pdf\"  }]"

إضافة التعليقات التوضيحية باستخدام Java

بخلاف أوامر cURL، هناك طريقة أخرى لاستخدام واجهات برمجة التطبيقات السحابية الخاصة بنا وهي الوصول إليها من خلال مجموعات أدوات تطوير البرامج البرمجية. لقد قمنا بتطوير مجموعات أدوات تطوير البرامج البرمجية للغات البرمجة الشائعة. لذا، للعمل مع التعليقات التوضيحية في PDF باستخدام لغة Java، يرجى محاولة استخدام Aspose.PDF Cloud SDK for Java.

الخطوة الأولى هي تثبيت SKD على النظام. تتوفر 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 SDKs.

تعليقات نصية

فيما يلي الخطوات اللازمة لإضافة التعليقات النصية إلى مستندات PDF.

  • الخطوة الأولى هي إنشاء كائن PdfApi حيث نقدم ClientID وClientSecret كحجج
  • ثم نقوم بإنشاء الكائن Rectangle حيث تتم إضافة الشرح التوضيحي
    • LLX - إحداثيات X للزاوية اليسرى السفلية.
    • LLY - Y - إحداثيات الزاوية اليسرى السفلية.
    • URY - X - إحداثيات الزاوية اليمنى العليا.
    • URY - Y - إحداثيات الزاوية اليمنى العليا.
  • إنشاء كائن TextAnnotation حيث نقوم بتعريف المحاذاة باستخدام طريقة setHorizontalAlignment(..).تعيين الموضوع باستخدام طريقة setSubject(…)، والحالة الافتراضية باستخدام طريقة setState(…)، وما إلى ذلك
  • ثم قم بإنشاء كائن ArrayList<> من نوع TextAnnotation وأضف إليه كائن TextAnnotation الذي تم إنشاؤه أعلاه
  • أخيرًا، اتصل بـ postPageTextAnnotations(…) حيث نمرر اسم ملف PDF المدخل وPageNumber وقائمة التعليقات التوضيحية التي تم إنشاؤها أعلاه كوسائط
// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "7042694c-5251-4aba-83c9-e81e7518724f";
String clientSecret = "db246d4742e8cd22e7266c9391992689";
				
// إنشاء مثيل لـPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String name = "PdfWithTable.pdf";	        
			    
// تحميل الملف من النظام المحلي
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// رفع الملف إلى التخزين السحابي
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// رقم الصفحة التي يجب إضافة الشرح إليها
int pageNumber = 1;

// إنشاء كائن مستطيل حيث تتم إضافة التعليقات التوضيحية
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(600.)
    .URX(200.)
    .URY(650.);

// إنشاء قائمة من علامات الشرح التوضيحي
List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// إنشاء كائن TextAnnotation
TextAnnotation textAnnotation = new TextAnnotation();
textAnnotation.setName("Annotation Name");
textAnnotation.setRect(rect);
textAnnotation.setFlags(flags);
textAnnotation.setHorizontalAlignment(HorizontalAlignment.CENTER);

// تعيين المحتوى الذي سيتم عرضه داخل التعليقات التوضيحية
textAnnotation.contents("Hello World...");
// تعيين الرمز للتعليق التوضيحي
textAnnotation.icon(TextIcon.KEY);

textAnnotation.setSubject("Text Box Subj");
textAnnotation.setZindex(1);

// الحالة الافتراضية لكائن الشرح التوضيحي
textAnnotation.setState(AnnotationState.COMPLETED);
		        
// إنشاء ListArray من TextAnnotation
List<TextAnnotation> annotations = new ArrayList<>();

// أضف النص الذي تم إنشاؤه أعلاه إلى مثيل القائمة
annotations.add(textAnnotation);

// استدعاء الطريقة لإضافة التعليقات التوضيحية إلى ملف PDF
AsposeResponse response = pdfApi.postPageTextAnnotations(name, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

تعليقات الخطوط المتعددة

توفر مجموعة أدوات تطوير البرامج السحابية أيضًا نفس الإمكانيات لإضافة التعليقات التوضيحية متعددة الأسطر إلى مستند PDF. فيما يلي الخطوات ومقتطف التعليمات البرمجية اللازمة لتلبية هذا المتطلب.

  • أولاً، نحتاج إلى إنشاء مثيل PdfApi وتحميل ملف المصدر إلى التخزين السحابي.
  • إنشاء ArrayList من نوع Point والتي تحدد النقاط التي سيتم رسم الخطوط المتعددة عندها.
  • الخطوة التالية هي إنشاء كائن PolyLineAnnotation حيث نقوم بتعريف المنطقة المستطيلة وتمرير Points ListArray إلى طريقة setVertices(…).
  • لتعيين اللون الداخلي، استخدم الطريقة setInteriorColor(…) ومرر مثيل Color كحجة.
  • الآن قم باستدعاء طريقتي startingStyle(…) وendingStyle(…) لتحديد أسلوب البداية والنهاية للتعليق التوضيحي. تأخذ هذه الطرق قيمة من تعداد LineEnding كحجج.
  • أخيرًا، قم باستدعاء طريقة postPagePolyLineAnnotations(…) من فئة PdfApi لعرض التعليقات التوضيحية داخل مستند PDF.
// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// إنشاء مثيل لـPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String name = "PdfWithTable.pdf";	        
			    
// تحميل الملف من النظام المحلي
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// رفع الملف إلى التخزين السحابي
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// رقم الصفحة لملف الإدخال حيث سيتم إضافة التعليقات التوضيحية
int pageNumber = 1;

// منطقة مستطيلة للتعليق التوضيحي
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(600.)
    .URX(200.)
    .URY(650.);

// تحديد الرؤوس للتعليق التوضيحي
List<Point> vertices = new ArrayList();
vertices.add(new Point().X(10.).Y(10.));
vertices.add(new Point().X(20.).Y(10.));
vertices.add(new Point().X(10.).Y(20.));
vertices.add(new Point().X(10.).Y(10.));

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// إنشاء كائن PolyLineAnnotation
PolyLineAnnotation annotation = new PolyLineAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
// تعيين المحاذاة الأفقية للتعليق التوضيحي
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.contents("Rich Text in the PDF File...");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");

// إنشاء كائن ملون
Color color = new Color();
color.setA(255);
color.setR(120);
color.setG(140);
color.setB(130);

// تعيين اللون الداخلي لنموذج التعليق التوضيحي
annotation.setInteriorColor(color);
		        
annotation.setVertices(vertices);
// تحديد نمط البداية للتعليق التوضيحي
annotation.startingStyle(LineEnding.OPENARROW);

// تعيين نمط النهاية للتعليق التوضيحي
annotation.endingStyle(LineEnding.SQUARE);

List<PolyLineAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
		        
// استدعاء الطريقة لإضافة تعليق متعدد الخطوط إلى الصفحة الأولى من المستند
AsposeResponse response = pdfApi.postPagePolyLineAnnotations(name, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

تعليقات متعرجة

يتم استخدام فئة منفصلة تسمى SquigglyAnnotation لإضافة تعليقات Squiggly إلى مستند PDF. يمكن استخدام مقتطف التعليمات البرمجية الموضح أدناه لإضافة تعليقات Squiggly إلى ملف PDF المتوفر على التخزين السحابي.

// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// إنشاء مثيل لـPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String name = "PdfWithTable.pdf";	        
			    
// تحميل الملف من النظام المحلي
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// رفع الملف إلى التخزين السحابي
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// رقم الصفحة لملف الإدخال حيث سيتم إضافة التعليقات التوضيحية
int pageNumber = 1;

// منطقة مستطيلة للتعليق التوضيحي
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(600.)
    .URX(200.)
    .URY(650.);

// تحديد الرؤوس للتعليق التوضيحي
List<Point> vertices = new ArrayList();
vertices.add(new Point().X(10.).Y(10.));
vertices.add(new Point().X(20.).Y(10.));
vertices.add(new Point().X(10.).Y(20.));
vertices.add(new Point().X(10.).Y(10.));

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// إنشاء كائن SquigglyAnnotation
SquigglyAnnotation annotation = new SquigglyAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.contents("Rich Text in the PDF File...");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setModified("28/05/2021 00:00:00.000 AM");
		        
// إنشاء كائن ملون
Color color = new Color();
color.setA(155);
color.setR(120);
color.setG(140);
color.setB(130);

// تعيين اللون الداخلي لنموذج التعليق التوضيحي
annotation.color(color);

// تعيين نقاط التعليق التوضيحي		        
annotation.setQuadPoints(vertices);

List<SquigglyAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
		        
// استدعاء الطريقة لإضافة تعليق متعرج إلى الصفحة الأولى من المستند
AsposeResponse response = pdfApi.postPageSquigglyAnnotations(name, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

تعليقات مرفقة بالملفات

لإضافة تعليق مرفق الملف، يرجى محاولة استخدام مقتطف التعليمات البرمجية التالي. وصف التعليمات البرمجية هو نفس ما تمت مشاركته في الأقسام أعلاه، إلا أنك تحتاج إلى استخدام الكائن FileAttachmentAnnotation لإنجاز هذا المطلب.

// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// إنشاء مثيل لـPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String name = "PdfWithTable.pdf";	        
			    
// تحميل الملف من النظام المحلي
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// رفع الملف إلى التخزين السحابي
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// رقم الصفحة لملف الإدخال حيث سيتم إضافة التعليقات التوضيحية
int pageNumber = 1;

// منطقة مستطيلة للتعليق التوضيحي
Rectangle rect = new Rectangle()
    .LLX(100.)
    .LLY(100.)
    .URX(200.)
    .URY(200.);

List<AnnotationFlags> flags = new ArrayList<>();
flags.add(AnnotationFlags.DEFAULT);

// إنشاء كائن FileAttachmentAnnotation
FileAttachmentAnnotation annotation = new FileAttachmentAnnotation();
annotation.setName("Name");
annotation.setRect(rect);
annotation.setFlags(flags);
annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
annotation.contents("Rich Text in the PDF File...");
annotation.setSubject("Subj");
annotation.setZindex(1);
annotation.setTitle("Title");
annotation.setModified("28/05/2021 00:00:00.000 AM");
		        
// مسار الملف المرفق
annotation.setFilePath("images.jpeg");
// اسم الملف المرفق
annotation.setFileName("images.jpeg");

// إنشاء مثيل قائمة FileAttachment
List<FileAttachmentAnnotation> annotations = new ArrayList<>();
annotations.add(annotation);
		        
// استدعاء الطريقة لإضافة تعليق FileAttachment إلى الصفحة الأولى من المستند
AsposeResponse response = pdfApi.postPageFileAttachmentAnnotations(name, pageNumber, annotations, null, null);
assertEquals(200, (int)response.getCode());

خاتمة

في هذه المقالة، ناقشنا الخطوات والتفاصيل ذات الصلة لإضافة التعليقات التوضيحية النصية والخطوط المتعددة والمتعرجة ومرفقات الملفات إلى مستند PDF. ونظرًا لأن مجموعات SDK السحابية لدينا مفتوحة المصدر، فيمكنك تنزيل الكود المصدر الكامل من GitHub. يحتوي المستودع أيضًا على أمثلة مفيدة أخرى حول كيفية استخدام مجموعة SDK السحابية Java لإنشاء ملفات PDF الموجودة وكذلك معالجتها. إذا كانت لديك أي استفسارات ذات صلة، فلا تتردد في الاتصال بنا عبر منتديات دعم العملاء المجانية.

مقالات ذات صلة

ننصحك بشدة بزيارة المقالات التالية: