إضافة أختام نصية في PDF برمجياً
إضافة ختم نصي باستخدام Java
يوفر Aspose.PDF for Java فئة TextStamp لإضافة ختم نصي في ملف PDF. TextStamp توفر الفئة الأساليب اللازمة لتحديد حجم الخط، نمط الخط، ولون الخط وما إلى ذلك لكائن الختم. من أجل إضافة ختم نصي، أولاً تحتاج إلى إنشاء كائن Document وكائن TextStamp باستخدام الأساليب المطلوبة. بعد ذلك، يمكنك استدعاء أسلوب addStamp(..) من فئة Page لإضافة الختم في مستند PDF.
يعرض لك مقطع الشيفرة التالي كيفية إضافة ختم نصي في ملف PDF.
package com.aspose.pdf.examples;
import com.aspose.pdf.*;
import com.aspose.pdf.facades.*;
import com.aspose.pdf.facades.Stamp;
public class ExampleStampingImage {
// المسار إلى دليل المستندات.
private static String _dataDir = "/home/admin1/pdf-examples/Samples/";
public static void AddTextStamp() {
// فتح المستند
Document pdfDocument = new Document("input.pdf");
// إنشاء ختم نصي
TextStamp textStamp = new TextStamp("Sample Stamp");
// تعيين ما إذا كان الختم هو الخلفية
textStamp.setBackground(true);
// تعيين الأصل
textStamp.setXIndent(100);
textStamp.setYIndent(100);
// تدوير الختم
textStamp.setRotate(Rotation.on90);
// تعيين خصائص النص
textStamp.getTextState().setFont(FontRepository.findFont("Arial"));
textStamp.getTextState().setFontSize(14.0F);
textStamp.getTextState().setFontStyle(FontStyles.Bold);
textStamp.getTextState().setFontStyle(FontStyles.Italic);
textStamp.getTextState().setForegroundColor(Color.getGreen());
// إضافة الختم إلى صفحة معينة
pdfDocument.getPages().get_Item(1).addStamp(textStamp);
// حفظ مستند الإخراج
pdfDocument.save("TextStamp_output.pdf");
}
تعريف المحاذاة لكائن TextStamp
إضافة العلامات المائية إلى مستندات PDF هي واحدة من الميزات المطلوبة بشكل متكرر وAspose.PDF لـ Java قادر تمامًا على إضافة صور وكذلك علامات مائية نصية. توفر فئة TextStamp ميزة إضافة الأختام النصية فوق ملف PDF. مؤخرًا كانت هناك حاجة لدعم ميزة تحديد محاذاة النص عند استخدام كائن TextStamp. لذا من أجل تلبية هذا الطلب، قمنا بتقديم طريقة setTextAlignment(..) في فئة TextStamp. باستخدام هذه الطريقة، يمكنك تحديد محاذاة النص الأفقية.
توضح مقتطفات الشيفرة التالية مثالاً على كيفية تحميل مستند PDF موجود وإضافة TextStamp فوقه.
public static void DefineAlignmentTextStamp() {
// إنشاء كائن Document مع ملف الإدخال
Document pdfDocument = new Document("input.pdf");
// إنشاء كائن FormattedText مع سلسلة نصية مثال
FormattedText text = new FormattedText("This");
// إضافة سطر نصي جديد إلى FormattedText
text.addNewLineText("is sample");
text.addNewLineText("Center Aligned");
text.addNewLineText("TextStamp");
text.addNewLineText("Object");
// إنشاء كائن TextStamp باستخدام FormattedText
TextStamp stamp = new TextStamp(text);
// تحديد المحاذاة الأفقية لختم النص كمحاذاة مركزية
stamp.setHorizontalAlignment(HorizontalAlignment.Center);
// تحديد المحاذاة الرأسية لختم النص كمحاذاة مركزية
stamp.setVerticalAlignment(VerticalAlignment.Center);
// تحديد المحاذاة الأفقية للنص لختم النص كمحاذاة مركزية
stamp.setTextAlignment(HorizontalAlignment.Center);
// ضبط الهامش العلوي لكائن الختم
stamp.setTopMargin(20);
// إضافة الختم إلى جميع صفحات ملف PDF
pdfDocument.getPages().get_Item(1).addStamp(stamp);
// حفظ مستند الإخراج
pdfDocument.save("TextStamp_output.pdf");
}
ملء نص الحدود كختم في ملف PDF
لقد قمنا بتنفيذ إعداد وضع العرض لسيناريوهات إضافة النص وتحريره. لعرض نص الحدود، يرجى إنشاء كائن TextState وضبط RenderingMode إلى TextRenderingMode.StrokeText وأيضًا اختيار اللون لخاصية StrokingColor. لاحقًا، اربط TextState بالختم باستخدام طريقة BindTextState().
يُوضح مقتطف الشيفرة التالي كيفية إضافة نص ملء الحدود:
public static void FillStrokeTextAsStampInPDFFile(){
// إنشاء كائن TextState لنقل الخصائص المتقدمة
TextState ts = new TextState();
// تعيين اللون للحدود
ts.setStrokingColor(Color.getGray());
// تعيين وضع عرض النص
ts.setRenderingMode (TextRenderingMode.StrokeText);
// تحميل مستند PDF مدخل
PdfFileStamp fileStamp = new PdfFileStamp(new Document(_dataDir + "input.pdf"));
Stamp stamp = new Stamp();
stamp.bindLogo(new FormattedText("PAID IN FULL", java.awt.Color.GRAY, "Arial", EncodingType.Winansi, true, 78));
// ربط TextState
stamp.bindTextState(ts);
// تعيين أصل X,Y
stamp.setOrigin(100, 100);
stamp.setOpacity (5);
stamp.setBlendingSpace (BlendingColorSpace.DeviceRGB);
stamp.setRotation (45.0F);
stamp.setBackground(false);
// إضافة الختم
fileStamp.addStamp(stamp);
fileStamp.save(_dataDir + "ouput_out.pdf");
fileStamp.close();
}