إضافة علامة مائية إلى ملف PDF

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

معالجة PDF باستخدام REST API

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

لاستخدام Java Cloud SDK، فإن الخطوة الأولى هي تثبيت Aspose.PDF Cloud SDK for Java. Cloud SDK متاح للتنزيل عبر Maven | GitHub. فيما يلي التفاصيل حول كيفية تنزيل Aspose.Pdf.jar واستخدامه في مشروع بناء Maven.

أضف التبعيات التالية في ملف pom.xml الخاص بك.

<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>

إضافة علامة مائية نصية في PDF باستخدام REST API

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

  • أولاً، يتعين عليك تحديد تفاصيل معرف العميل والسر الخاص بالعميل مقابل متغيرين.
  • ثانيًا، قم بإنشاء كائن من فئة PdfApi من خلال توفير معرف العميل والسر الخاص بالعميل كوسائط.
  • ثالثا، قم بإنشاء كائن من فئة TextState حيث نحدد اسم الخط كـ Arial وحجم الخط كـ 14.
  • الآن نحتاج إلى إنشاء مثيل لفئة TextStamp. أثناء استخدام هذا الكائن، سنحدد HorizontalAlignment كمركز، وسيتم تحديد قيمة ختم النص وحجم الخط وتفاصيل نوع الخط باستخدام طريقة textState(..) حيث يتم تمرير كائن TextState الذي تم إنشاؤه في الخطوة السابقة كحجة. كما يتم تحديد تفاصيل الهامش وVerticalAlignment كمركز.
  • لعرض TextStamp في الخلفية، يتم استخدام طريقة background(..) مع وسيطة على أنها true.
  • علاوة على ذلك، يتم أيضًا تحديد العتامة وزاوية التدوير وعامل التكبير والمسافة البادئة X وY للختم.
  • الآن قم بإنشاء كائن من فئة القائمة بنوع TextStamp وأضف كائن الطوابع الذي تم إنشاؤه أعلاه إلى هذه القائمة.
  • أخيرًا، قم باستدعاء طريقة postPageTextStamps(..) من PdfAPi ومرر ملف PDF المدخل ورقم الصفحة وقائمة الطوابع كحجة لبدء عملية الطوابع.
// للحصول على أمثلة كاملة ورمز المصدر، يرجى زيارة https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
String sourceFileName = "PdfWithTable.pdf";
int pageNumber = 1;
String cloudStorage = "";
String folder = "";

// إنشاء مثيل لـ PdfApi باستخدام تفاصيل معرف العميل والسر الخاص بالعميل
com.aspose.asposecloudpdf.api.PdfApi pdfApi = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientId);

// إنشاء كائن TextState وتحديد تفاصيل تنسيق الخط
com.aspose.asposecloudpdf.model.TextState textState = new com.aspose.asposecloudpdf.model.TextState().fontSize(24.).font("Arial");

com.aspose.asposecloudpdf.model.TextStamp stamp = new com.aspose.asposecloudpdf.model.TextStamp()
       	.textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
  	.value("Text Stamp")
	.textState(textState)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
 
	stamp.background(true)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.ON90)
	.rotateAngle(45.)
	.xindent(0.)
	.yindent(0.)
	.zoom(1.);
        
// إنشاء كائن قائمة بنوع TextStamp
List<com.aspose.asposecloudpdf.model.TextStamp> stamps = new ArrayList<>();

// إضافة مثيل TextStamp إلى قائمة TextStamps
stamps.add(stamp);

// طريقة استدعاء لنشر TextStamp على الصفحة الأولى من ملف PDF
com.aspose.asposecloudpdf.model.AsposeResponse response = pdfApi.postPageTextStamps(sourceFileName, pageNumber, stamps,cloudStorage, folder);
تمت إضافة TextStamp إلى PDF

الصورة 1: - تمت إضافة ختم النص إلى مستند PDF.

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

كيفية إضافة علامة مائية للصورة في PDF باستخدام Java

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

  • أولاً، الخطوة هي إنشاء كائن PdfApi أثناء تمرير ClientSecret وClientID كحجة.
  • الخطوة التالية هي إنشاء كائن ImageStamp حيث نقوم بتحديد ملف الصورة المراد ختمها وتفاصيل الهامش والمحاذاة العمودية. في حالتنا، قمنا بتحديد قيمة المركز من تعداد المحاذاة العمودية.
  • اضبط ImageStamp.background(True) بحيث تظهر الصورة خلف المحتوى الموجود على الصفحة. وإلا، فستظهر أعلى محتوى الصفحة.
  • قم بإنشاء كائن قائمة من نوع ImageStamp وأضف كائن ImageStamp الذي تم إنشاؤه في الخطوة الثانية إلى هذه المجموعة.
  • أخيرًا، قم باستدعاء طريقة postPageImageStamps(…) من فئة PdfApi حيث نقوم بتمرير ملف PDF المدخل ورقم الصفحة للعلامة المائية وقائمة ImageStamp التي تم إنشاؤها أعلاه كحجة.
  • يتم حفظ ملف PDF الذي يحتوي على العلامة المائية للصورة على نفس التخزين السحابي. يتم عرض معاينة الملف الناتج أدناه.
// للحصول على أمثلة كاملة ورمز المصدر، يرجى زيارة https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";

// إنشاء مثيل لـ PdfApii
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String file = "PdfWithTable.pdf";
// الصورة المصدرية التي سيتم استخدامها للعلامة المائية
String image = "Koala.jpg";
// رقم الصفحة التي سيتم إضافة العلامة المائية إليها
int pageNumber = 1;

// إنشاء مثيل لكائن ImageStamp
ImageStamp stampObject = new ImageStamp()
	.fileName(image)
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(214.)
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.CENTER);
	
	// إضافة علامة مائية خلف محتوى الصفحة
	stampObject.background(true)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	.zoom(0.2);

// إنشاء قائمة من كائنات ImageStamp
List<com.aspose.asposecloudpdf.model.ImageStamp> stamps = new ArrayList<>();

// إضافة ImageStamp إلى قائمة ImageStamps
stamps.add(stampObject);

// استدعاء طريقة API لإضافة صورة العلامة المائية إلى PDF
AsposeResponse response = pdfApi.postPageImageStamps(file, pageNumber, stamps,null, null);
تمت إضافة ختم الصورة إلى ملف PDF

الصورة 2: - تمت إضافة ختم الصورة إلى مستند PDF.

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

إضافة صفحة PDF كعلامة مائية

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

  • أولاً، قم بإنشاء كائن من فئة PdfApi أثناء تمرير معرف العميل والسر الخاص بالعميل كوسائط.
  • ثانيًا، قم بإنشاء مثيل لفئة PdfPageStamp. تُستخدم هذه الفئة لتحديد مسار مستند PDF بينما سيتم استخدامها للعلامة المائية.
  • يتم استخدام طريقة PdfPageStamp.pageIndex(..) لتحديد رقم الصفحة في ملف PDF التي سيتم استخدامها للعلامة المائية.
  • من بين الطرق الأخرى، تعتبر الخلفية (..) مهمة لأنها تستخدم لتعيين علامة مائية خلف محتوى PDF أو الاحتفاظ بها فوق المحتوى.
  • ثم قم بإنشاء قائمة من نوع PdfPageStamp وأضف كائن PdfPageStamp الذي تم إنشاؤه أعلاه إلى مجموعة القائمة.
  • أخيرًا، قم باستدعاء طريقة postPagePdfPageStamps(…) من فئة PdfApi حيث نقوم بتمرير ملف PDF المصدر، وفهرس الصفحة المراد وضع علامة مائية عليها، وقائمة PdfPageStamp كحجة. يتم حفظ الناتج الناتج على التخزين السحابي.
// للحصول على أمثلة كاملة ورمز المصدر، يرجى زيارة https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// احصل على ClientID وClientSecret من https://cloud.aspose.com
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";

// إنشاء مثيل PdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String sourcePDF = "PdfWithAnnotations.pdf";

// ملف PDF المصدر الذي سيتم استخدامه للعلامة المائية
String stampPDF = "rusdoc.pdf";

// رقم الصفحة التي سيتم إضافة العلامة المائية إليها
int pageNumber = 1;

// إنشاء مثيل لكائن PdfPageStamp
PdfPageStamp stampObject = new PdfPageStamp()
	// ملف PDF لاستخدامه كعلامة مائية
  	.fileName(stampPDF)
	// حدد فهرس الصفحة الذي تريد إضافته كعلامة مائية
	.pageIndex(1)
	.leftMargin(150.)
	.rightMargin(2.)
	
	// لقد قمنا بتعيين الهامش العلوي -ve لتحريك العلامة المائية إلى أعلى ملف PDF
	.topMargin(-330.)
	.bottomMargin(414.)
	
  	// تعيين المحاذاة الرأسية للعلامة المائية في الأعلى
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.TOP);
	
  	// جلب العلامة المائية إلى المقدمة/مرئية
	stampObject.background(false)
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	
  	// اضبط عامل التكبير على 0.7 حتى يتم ضغطه بدلاً من ظهوره بنسبة 100%
	.zoom(0.7);

// إنشاء قائمة من كائنات PdfPageStamp
List<com.aspose.asposecloudpdf.model.PdfPageStamp> stamps = new ArrayList<>();
	
// إضافة PdfPageStamp إلى قائمة ImageStamps
stamps.add(stampObject);
	
// استدعاء طريقة API لإضافة ملف PDF كعلامة مائية
AsposeResponse response = pdfApi.postPagePdfPageStamps(sourcePDF, pageNumber, stamps,null, null);
ملف PDF كعلامة مائية

الصورة 3: - معاينة ملف PDF المضاف كعلامة مائية.

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

إضافة رقم الصفحة كعلامة مائية

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

  • بمجرد إنشاء مثيل PdfApi، قم بإنشاء كائن من فئة PageNumberStamp.
  • استخدم طريقة value(…) من فئة PageNumberStamp لتحديد نمط ختم PageNumber.
  • هناك طريقة مهمة أخرى وهي setStartingNumber(..) والتي تشير إلى العدد الذي تبدأ منه علامة رقم الصفحة المائية.
  • الجزء الآخر من التعليمات البرمجية بما في ذلك تفاصيل الهامش، والتعتيم، وزاوية التدوير، وعامل الحجم، وما إلى ذلك، هو نفس مقتطفات التعليمات البرمجية أعلاه.
  • نحن بحاجة إلى تحديد startPageNumber و endPageNumber حيث سيتم وضع العلامة المائية لرقم الصفحة.
  • أخيرًا، قم باستدعاء postDocumentPageNumberStamps(…) الذي يأخذ ملف PDF المدخل، وكائن PageNumberStamp، ومعلومات الصفحة الأولى والنهاية كوسائط، ويضيف علامة مائية رقم الصفحة إلى ملف المصدر.
// للحصول على أمثلة كاملة ورمز المصدر، يرجى زيارة https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java

// احصل على ClientID وClientSecret من https://dashboard.aspose.cloud/
String clientId = "c235e685-1aab-4cda-a95b-54afd63eb87f";
String clientSecret = "b8da4ee37494f2ef8da3c727f3a0acb9";
				
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// إدخال مستند PDF
String sourcePDF = "PdfWithTable.pdf";

// إنشاء مثيل لكائن PdfPageStamp
PageNumberStamp stampObject = new PageNumberStamp()

	// تنسيق العلامة المائية لرقم الصفحة
  	.value("Page #")
	.leftMargin(1.)
	.rightMargin(2.)
	.topMargin(3.)
	.bottomMargin(4.)
	
	// تعيين المحاذاة الرأسية للعلامة المائية في الأسفل
	.verticalAlignment(com.aspose.asposecloudpdf.model.VerticalAlignment.BOTTOM);
	
	// حدد رقم البداية للعداد
	stampObject.setStartingNumber(3);

	// جلب العلامة المائية إلى المقدمة/مرئية
	stampObject.background(false)
	
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	.opacity(1.)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(0.)
	.yindent(0.)
	.zoom(1.0);

// نموذج صفحة البداية حيث يتم وضع العلامة المائية
int startPageNumber = 2;
	
// فهرس الصفحة التي سيتم وضع العلامة المائية تجاهها
int endPageNumber = 3;
	
// استدعاء طريقة API لإضافة ملف PDF كعلامة مائية
AsposeResponse response = pdfApi.postDocumentPageNumberStamps(sourcePDF, stampObject,startPageNumber, endPageNumber, null, null);
ختم رقم الصفحة بصيغة PDF

الصورة 4:- معاينة رقم الصفحة كعلامة مائية في PDF.

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

نصيحة سريعة

إن مجموعة أدوات تطوير البرامج السحابية Aspose.PDF for Java قوية للغاية بحيث يمكنك تحويل التنسيقات JPEG وEPUB وLaTeX وHTML وPS وXSLFo وXPS وSVG وDOCX وPCL إلى تنسيق PDF باستخدام بضعة أسطر من التعليمات البرمجية. لمزيد من المعلومات، يُرجى زيارة صفحة المنتج.

خاتمة

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