شرح PDF

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

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

تثبيت SDK

Aspose.PDF Cloud SDK for Java عبارة عن واجهة برمجة تطبيقات تتيح لمبرمجي 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 SDKs.

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

شطب النص باستخدام Java

في بعض الأحيان، يكون لدينا متطلب لوضع علامة على محتوى معين داخل المستند باعتباره قديمًا دون إزالته من المستند. يتم تمثيل الشطب (المعروف أيضًا باسم الشطب) بالكلمات التي يمر خط أفقي عبر مركزها. وهذا يعني أن النص خاطئ أو قديم وتم حذفه مؤخرًا أو تمييزه على هذا النحو. يمكننا تعيين إعدادات التعليقات الشطب باستخدام خاصية strikethroughSettings. تُستخدم خاصية strikethroughSettings لتعيين خصائص اللون والعتامة والمؤلف والموضوع وتاريخ التعديل وisLocked للتعليقات الشطب.

// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// إنشاء مثيل لـPdfApi
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 أمر ضروري لأنه يسمح لنا بلفت الانتباه إلى المعلومات المهمة داخل المستند. إن إبراز المحتوى فعال لأنه يطلب أولاً من القارئ اختيار الأجزاء المهمة، ثم يوفر طريقة فعالة لمراجعة هذه المعلومات لاحقًا. توفر واجهة برمجة التطبيقات السحابية الخاصة بنا الإمكانيات اللازمة لإبراز المحتوى داخل مستندات PDF. فيما يلي الخطوات اللازمة لإضافة تعليقات إبراز المحتوى في ملف PDF.

  • أولاً، قم بإنشاء مثيل لـ PdfApi مع توفير تفاصيل ClientSecret وClientId.
  • نقوم بإنشاء مثيل ملف لتحميل ملف PDF من النظام المحلي ثم نستدعي طريقة uploadFile(…) من فئة PdfApi لتحميل المستند إلى التخزين السحابي.
  • الآن قم بإنشاء مثيل لفئة Rectangle لتحديد المنطقة المستطيلة حيث يمكن إضافة التعليقات التوضيحية.
  • بعد ذلك قم بإنشاء ArrayList من نوع Point لحمل المعلومات المتعلقة بالنقاط لرسم HighlightAnnotation.
  • قم بإنشاء كائن من فئة HighlightAnnotation وقم بتعيين الاسم والمنطقة المستطيلة والموضوع والعنوان وQuadPoints وتاريخ تعديل الشرح.
  • الخطوة التالية هي إنشاء قائمة من نوع HighlightAnnotation وإضافة كائن HighlightAnnotation الذي تم إنشاؤه أعلاه إلى هذه القائمة.
  • أخيرًا، قم باستدعاء طريقة postPageHighlightAnnotations(…) من فئة PdfApi ومرر ملف PDF المصدر ورقم الصفحة وقائمة التعليقات التوضيحية كوسائط.
معاينة التعليقات التوضيحية المميزة

الصورة 1:- تسليط الضوء على التعليقات التوضيحية في ملف PDF.

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

كيفية إضافة تعليق توضيحي للسطر

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

  • أولاً، قم بإنشاء مثيل لـ PdfApi مع توفير تفاصيل ClientSecret وClientId.
  • اختياريًا، نقوم بإنشاء مثيل ملف لتحميل ملف PDF من النظام المحلي ثم نستدعي طريقة uploadFile(…) من فئة PdfApi لتحميل المستند إلى التخزين السحابي. في حالة توفر الملف بالفعل على التخزين السحابي، يمكننا استخدامه.
  • بقية خصائص تهيئة الكائن هي نفسها المذكورة أعلاه لـ HighlithAnnotation باستثناء أننا نحتاج إلى إنشاء كائن من فئة LineAnnotation وتعيين نقطة البداية والنهاية للسطر باستخدام طريقتي setStarting(…) و setEnding(…).
// احصل على 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 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.);

// إنشاء كائن قائمة من نوع 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 Annotations
annotations.add(annotation);

// استدعاء طريقة API لإضافة تعليق سطري إلى ملف PDF
AsposeResponse response = pdfApi.postPageLineAnnotations(sourcePDF, pageNumber, annotations, null, null);

إضافة شرح الدائرة في ملف PDF

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

// احصل على 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 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.);

// إنشاء كائن قائمة من نوع 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 Annotations
annotations.add(annotation);

// استدعاء طريقة API لإضافة تعليق دائري إلى ملف PDF
AsposeResponse response = pdfApi.postPageCircleAnnotations(sourcePDF, pageNumber, annotations, null, null);
شرح الدائرة في ملف PDF

الصورة 2:- شرح الدائرة في ملف PDF.

يمكن تنزيل مستند PDF المدخل ومستند PDF الناتج، كما هو موضح أعلاه، من الروابط التالية:

نصيحة سريعة

استخدم تطبيقنا المجاني عبر الإنترنت PDF Annotation App لإزالة جميع التعليقات التوضيحية من ملف PDF الخاص بك بنقرة واحدة.

خاتمة

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

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

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

ننصحك بشدة بزيارة الروابط التالية لمعرفة المزيد عن: