إنشاء AcroForms - إنشاء ملفات PDF قابلة للتعبئة في Java
إضافة حقل نموذج في مستند PDF
توفر فئة Document مجموعة تُسمى Form والتي تساعد في إدارة حقول النموذج في مستند PDF.
لإضافة حقل نموذج:
- قم بإنشاء حقل النموذج الذي تريد إضافته.
- استدعِ طريقة الإضافة في مجموعة Form.
يوضح هذا المثال كيفية إضافة TextBoxField. يمكنك إضافة أي حقل نموذج باستخدام نفس النهج:
- أولاً، قم بإنشاء كائن الحقل وقم بتعيين خصائصه.
- ثم، أضف الحقل إلى مجموعة Form.
إضافة TextBoxField
حقل النص هو عنصر نموذج يسمح للمستلم بإدخال نص في النموذج الخاص بك. سيتم استخدام هذا في أي وقت تريد فيه السماح للمستخدم بحرية كتابة ما يريد.
تظهر مقتطفات الشيفرة التالية كيفية إضافة حقل TextBoxField إلى مستند PDF.
public class ExamplesCreateForm {
private static String _dataDir = "/home/aspose/pdf-examples/Samples/Forms/";
public static void AddingTextBoxField() {
// فتح المستند
Document pdfDocument = new Document(_dataDir + "TextField.pdf");
Page page = pdfDocument.getPages().get_Item(1);
// إنشاء حقل
TextBoxField textBoxField = new TextBoxField(page, new Rectangle(100, 200, 300, 300));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("مربع النص");
// TextBoxField.Border = new Border(
Border border = new Border(textBoxField);
border.setWidth(5);
border.setDash(new Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.setColor(Color.getGreen());
// إضافة الحقل إلى المستند
pdfDocument.getForm().add(textBoxField, 1);
// حفظ ملف PDF المعدل
pdfDocument.save(_dataDir + "TextBox_out.pdf");
}
إضافة RadioButtonField
يُستخدم زر الاختيار بشكل شائع في أسئلة الاختيار من متعدد، في السيناريو الذي يمكن فيه اختيار إجابة واحدة فقط.
توضح مقتطفات الشيفرة التالية كيفية إضافة RadioButtonField في مستند PDF.
public static void AddingRadioButton() {
Document pdfDocument = new Document();
// إضافة صفحة إلى ملف PDF
pdfDocument.getPages().add();
// إنشاء كائن RadioButtonField مع رقم الصفحة كوسيطة
RadioButtonField radio = new RadioButtonField(pdfDocument.getPages().get_Item(1));
// إضافة الخيار الأول لزر الاختيار وتحديد موقعه باستخدام كائن Rectangle
radio.addOption("Test", new Rectangle(20, 720, 40, 740));
// إضافة الخيار الثاني لزر الاختيار
radio.addOption("Test1", new Rectangle(120, 720, 140, 740));
// إضافة زر الاختيار إلى كائن النموذج في كائن المستند
pdfDocument.getForm().add(radio);
// حفظ ملف PDF
pdfDocument.save("RadioButtonSample.pdf");
}
يعرض مقطع الشيفرة التالي الخطوات المطلوبة لإضافة RadioButtonField مع ثلاثة خيارات ووضعها داخل خلايا الجدول.
public static void AddingRadioButtonAdvanced() {
Document doc = new Document();
Page page = doc.getPages().add();
Table table = new Table();
table.setColumnWidths("120 120 120");
page.getParagraphs().add(table);
Row r1 = table.getRows().add();
Cell c1 = r1.getCells().add();
Cell c2 = r1.getCells().add();
Cell c3 = r1.getCells().add();
RadioButtonField rf = new RadioButtonField(page);
rf.setPartialName("radio");
doc.getForm().add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
RadioButtonOptionField opt3 = new RadioButtonOptionField();
opt1.setOptionName("Item1");
opt2.setOptionName("Item2");
opt3.setOptionName("Item3");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
opt3.setWidth(15);
opt3.setHeight(15);
rf.add(opt1);
rf.add(opt2);
rf.add(opt3);
opt1.setBorder(new Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(BorderStyle.Solid);
opt1.getCharacteristics().setBorder(Color.getBlack());
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new TextFragment("Item1"));
opt2.setBorder(new Border(opt2));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new TextFragment("Item2"));
opt3.setBorder(new Border(opt3));
opt3.getBorder().setWidth(1);
opt3.getBorder().setStyle(BorderStyle.Solid);
opt3.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt3.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt3.setCaption(new TextFragment("Item3"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
c3.getParagraphs().add(opt3);
doc.save("RadioButtonField.pdf");
}
إضافة تسمية إلى RadioButtonField
يوضح مقتطف الشيفرة التالي كيفية إضافة تسمية مرتبطة بـ RadioButtonField:
public static void AddingCaptionToRadioButtonField() {
// تحميل نموذج PDF المصدر
com.aspose.pdf.facades.Form form1 = new com.aspose.pdf.facades.Form(_dataDir + "RadioButtonField.pdf");
Document document = new Document(_dataDir + "RadioButtonField.pdf");
for (String item : form1.getFieldNames()) {
System.out.println(item.toString());
if (item.contains("radio1")) {
RadioButtonField field0 = (RadioButtonField) document.getForm().get(item);
RadioButtonOptionField fieldoption = new RadioButtonOptionField();
fieldoption.setOptionName("Yes");
fieldoption.setPartialName("Yesname");
var updatedFragment = new TextFragment("test123");
updatedFragment.getTextState().setFont(FontRepository.findFont("Arial"));
updatedFragment.getTextState().setFontSize(10);
updatedFragment.getTextState().setLineSpacing(6.32f);
// إنشاء كائن TextParagraph
TextParagraph par = new TextParagraph();
// تحديد موضع الفقرة
par.setPosition(new Position(field0.getRect().getLLX(),
field0.getRect().getLLY() + updatedFragment.getTextState().getFontSize()));
// تحديد وضع التفاف الكلمات
par.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
// إضافة TextFragment جديد إلى الفقرة
par.appendLine(updatedFragment);
// إضافة TextParagraph باستخدام TextBuilder
TextBuilder textBuilder = new TextBuilder(document.getPages().get_Item(1));
textBuilder.appendParagraph(par);
field0.deleteOption("item1");
}
}
document.save(_dataDir + "RadioButtonField_out.pdf");
}
إضافة حقل ComboBox
Combo Box هو حقل نموذج يضيف قائمة منسدلة إلى المستند الخاص بك.
توضح مقتطفات الشيفرة التالية كيفية إضافة حقل ComboBox في مستند PDF.
public static void AddingComboboxField() {
// إنشاء كائن المستند
Document doc = new Document();
// إضافة صفحة إلى كائن المستند
doc.getPages().add();
// استدعاء كائن حقل ComboBox
ComboBoxField combo = new ComboBoxField(doc.getPages().get_Item(1), new Rectangle(100, 600, 150, 616));
// إضافة خيار إلى ComboBox
combo.addOption("Red");
combo.addOption("Yellow");
combo.addOption("Green");
combo.addOption("Blue");
// إضافة كائن مربع التحرير والسرد إلى مجموعة حقول النموذج في كائن المستند
doc.getForm().add(combo);
// حفظ مستند PDF
doc.save("ComboBox_Added.pdf");
}
إضافة تلميح إلى النموذج
توفر فئة المستند مجموعة تُسمى Form والتي تقوم بإدارة حقول النماذج في مستند PDF. لإضافة تلميح إلى حقل نموذج، استخدم فئة الحقل AlternateName. يستخدم Adobe Acrobat “الاسم البديل” كتلميح للحقل.
تُظهر مقتطفات الشيفرة التالية كيفية إضافة تلميح إلى حقل نموذج باستخدام Java.
public static void AddTooltipToFormField() {
// تحميل نموذج PDF المصدر
Document doc = new Document(_dataDir + "AddTooltipToField.pdf");
// الحصول على حقل
TextBoxField textBoxField = (TextBoxField) doc.getForm().get("textbox1");
// تعيين التلميح لحقل النص
textBoxField.setAlternateName("تلميح صندوق النص");
// حفظ المستند المعدل
doc.save("output.pdf");
}