إذا كنت بحاجة إلى إضافة علامة مائية إلى PDF في Java، يمكن للطبقة البصرية أن تحمي مستنداتك من الاستخدام غير المصرح به. يوفر Conholdate.Total for Java مجموعة تطوير برامج قوية تُبسّط معالجة ملفات PDF على جانب الخادم. في هذا الدليل ستشاهد مثالًا كاملاً جاهزًا للتنفيذ، وتتعلم كيف يعمل كل سطر، وتضبط اعتماد Maven، وتكتشف الخيارات لضبط الشفافية، والدوران، والمحاذاة للحصول على نتائج احترافية.
مثال كامل للكود: إضافة علامة مائية نصية إلى PDF في Java
يوضح المثال التالي كيفية إضافة علامة مائية نصية إلى ملف PDF باستخدام Conholdate.Total for Java.
import com.groupdocs.watermark.Watermark;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.options.PdfSaveOptions;
import com.groupdocs.watermark.watermarks.TextWatermark;
import com.groupdocs.watermark.watermarks.HorizontalAlignment;
import com.groupdocs.watermark.watermarks.VerticalAlignment;
import java.awt.Color;
import java.awt.Font;
public class AddPdfWatermark {
public static void main(String[] args) {
String inputFile = "input.pdf";
String outputFile = "output.pdf";
// Create a text watermark
Font font = new Font("Arial", Font.BOLD, 48);
TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
textWatermark.setColor(Color.RED);
textWatermark.setOpacity(0.3);
textWatermark.setRotationAngle(45);
textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
textWatermark.setVerticalAlignment(VerticalAlignment.Center);
// Load options for the source PDF (enable caching for large files)
PdfLoadOptions loadOptions = new PdfLoadOptions(inputFile);
loadOptions.setCacheSize(100 * 1024 * 1024); // 100 MB cache
// Initialize the Watermark processor
Watermark watermark = new Watermark();
try {
// Apply the watermark to every page of the PDF
watermark.add(textWatermark, loadOptions);
// Save the watermarked PDF
PdfSaveOptions saveOptions = new PdfSaveOptions();
watermark.save(outputFile, saveOptions);
} catch (Exception e) {
System.err.println("Failed to add watermark: " + e.getMessage());
e.printStackTrace();
}
}
}
ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث مسارات الملفات (
input.pdf,output.pdf, إلخ) لتطابق المواقع الفعلية للملفات لديك، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.
فهم إضافة علامة مائية إلى PDF في كود Java
يتبع كود إضافة علامة مائية إلى PDF في Java تسلسلًا واضحًا يمكنك تكييفه مع أي مستند PDF.
- تهيئة معالج العلامة المائية -
Watermark watermark = new Watermark();ينشئ المحرك الذي سيطبق العلامات المائية. - إنشاء TextWatermark - كائن
TextWatermarkيحتوي على النص، الخط، اللون، الشفافية، والدوران.Font font = new Font("Arial", Font.BOLD, 48); TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font); - تكوين المظهر - طرق مثل
setColorوsetOpacityوsetRotationAngleتحدد كيف تبدو العلامة المائية على الصفحة. - تحميل ملف PDF المصدر -
PdfLoadOptionsيحمل ملف الإدخال ويفعل التخزين المؤقت للمستندات الكبيرة، مما يقلل من ضغط الذاكرة. - التطبيق والحفظ -
watermark.add(textWatermark, loadOptions);يطبق العلامة المائية على كل صفحة، وwatermark.save(outputFile, saveOptions);يكتب النتيجة.
تحميل ملف PDF المصدر مع التخزين المؤقت
عند العمل مع ملفات PDF متعددة الميغابايت، يؤدي تمكين الذاكرة المؤقتة إلى منع SDK من تحميل المستند بالكامل إلى الذاكرة. السطر loadOptions.setCacheSize(100 * 1024 * 1024); يحجز 100 ميغابايت للتخزين المؤقت، مما يسمح للمعالج ببث الصفحات حسب الحاجة. هذا النهج مفيد بشكل خاص في بيئات الخوادم حيث قد يتم تشغيل العديد من مهام العلامة المائية المتزامنة.
للحصول على معلومات مفصلة حول واجهة برمجة التطبيقات، راجع مرجع واجهة برمجة التطبيقات لجافا.
تحضير البيئة لإضافة علامة مائية إلى PDF
يبدأ سير عمل إضافة علامة مائية إلى PDF في Java بإضافة تبعية Maven. بعد ذلك، تحتاج إلى JDK متوافق وقليل من التكوين.
المتطلبات وإصدار Java
- يلزم Java 8 أو أعلى؛ يستخدم SDK ميزات لغة حديثة وتدفقات.
- يُبسّط Maven 3.5+ إدارة التبعيات.
- تأكد من أن ملف
pom.xmlالخاص بمشروعك يتضمن مستودع Conholdate حتى يتمكن Maven من حل القطعة.
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
يمكنك أيضًا الحصول على ملفات JAR مباشرةً من صفحة التحميل. بعد إضافة التبعية، شغّل mvn clean install للتحقق من أن SDK موجود في مسار الفئات الخاص بك.
استخدام REST API (اختياري)
إذا كنت تفضل نهجًا غير مرتبط بلغة معينة، فإن Conholdate.Total يقدم أيضًا نقطة نهاية REST يمكنها إضافة العلامات المائية دون أي كود Java. يبدو أمر curl بسيط هكذا:
curl -X POST "https://api.conholdate.com/v1/pdf/watermark" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.pdf" \
-F "text=CONFIDENTIAL" \
-F "font=Arial" \
-F "fontSize=48" \
-F "color=FF0000" \
-F "opacity=0.3" \
-F "angle=45" \
-F "horizontalAlignment=center" \
-F "verticalAlignment=center" \
-o output.pdf
يتبع إصدار REST نفس الخطوات المنطقية: التحميل، التكوين، التطبيق، والحفظ، بحيث يمكنك اختيار النهج الذي يتناسب بشكل أفضل مع بنية نظامك.
تكوين مظهر العلامة المائية وموقعها
يُتيح SDK عدة خصائص تسمح لك بضبط العلامة المائية بدقة. فيما يلي أكثر الإعدادات التي يتم تعديلها بشكل متكرر.
تخصيص الخط واللون
يمكنك استبدال الخط الافتراضي Arial بأي خط TrueType متاح على الخادم. تغيير اللون سهل مثل تمرير ثابت java.awt.Color مختلف أو إنشاء قيمة RGB مخصصة.
Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);
ضبط الشفافية والدوران
تتحكم الشفافية في مدى وضوح العلامة المائية. تتراوح القيم من 0.0 (غير مرئية تمامًا) إلى 1.0 (معتمة بالكامل). يسمح لك الدوران بإمالة النص لجعله أصعب في الإزالة.
textWatermark.setOpacity(0.45); // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise
محاذاة العلامة المائية على الصفحة
تقبل خصائص المحاذاة الأفقية والعمودية القيم Left، Center، Right و Top، Center، Bottom. التوسيط شائع للطوابع السرية، لكن يمكنك وضع العلامة المائية في زاوية لأغراض العلامة التجارية.
textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);
إذا كنت ترغب في إضافة علامة مائية نصية إلى PDF في Java بتصميم مختلف على كل صفحة، يمكنك تعديل هذه الخصائص داخل حلقة تقوم بمعالجة الصفحات بشكل فردي. كما يدعم SDK علامات مائية بالصور، وتعبئات متدرجة، ونصًا متعدد الأسطر إذا كان حالتك تتطلب تعقيدًا بصريًا أكبر.
الخلاصة
إضافة علامة مائية إلى PDF في Java أمر بسيط باستخدام Conholdate.Total for Java. يتعامل SDK مع تحميل ومعالجة وحفظ ملفات PDF بكفاءة، حتى للملفات الكبيرة بفضل التخزين المؤقت المدمج. من خلال تخصيص الشفافية، والدوران، والخط، واللون، والمحاذاة يمكنك إنشاء علامات مائية بمظهر احترافي تُثني عن التوزيع غير المصرح به. تذكر ضرورة الحصول على ترخيص مناسب للاستخدام في الإنتاج؛ يمكنك طلب ترخيص مؤقت من صفحة الترخيص المؤقت أو مراجعة خيارات التسعير على صفحة الأسعار. مع تغطية خطوات الكود والتكوين، أنت جاهز لدمج إضافة العلامة المائية إلى PDF في تطبيقات Java الخاصة بك.
الأسئلة الشائعة
كيف يمكنني إضافة علامة مائية إلى PDF في Java دون كتابة كود PDF منخفض المستوى؟
استخدم فئة Watermark من Conholdate.Total for Java. إنها تُجَزّء بنية PDF، مما يتيح لك التركيز على خصائص العلامة المائية مثل النص، الخط، والموقع.
ما هي الخيارات المتاحة لتنسيق علامة النص المائية؟
يمكنك ضبط الخط (new Font(...))، الحجم، النمط (غامق، مائل)، اللون (setColor)، الشفافية (setOpacity)، الدوران (setRotationAngle)، والمحاذاة (setHorizontalAlignment، setVerticalAlignment). يتم توضيح هذه الخيارات في مثال الشيفرة الكامل.
هل يمكن لـ SDK معالجة ملفات PDF الكبيرة بكفاءة؟
نعم. عن طريق تكوين PdfLoadOptions.setCacheSize، يمكنك تمكين البث والتخزين المؤقت، مما يقلل من استهلاك الذاكرة لملفات PDF متعددة الميجابايت. هذا يجعل سير عمل إضافة علامة مائية إلى PDF في Java مناسبًا للمعالجة الدفعية على الخوادم.
هل أحتاج إلى شراء ترخيص لتشغيل هذا المثال؟
يتطلب تشغيله في بيئات الإنتاج ترخيصًا. احصل على ترخيص مؤقت من صفحة الترخيص المؤقت أو استكشف تفاصيل التسعير الكاملة في صفحة التسعير.
