Aspose.PDF FOSS لـ Java هو مكتبة Java مرخصة تحت رخصة MIT لإنشاء والعمل مع مستندات PDF. توفر فئة Document شاملة كنقطة الدخول المركزية، إلى جانب تغطية كاملة للتعليقات التوضيحية، وحقول النماذج التفاعلية، ومعالجة الصفحات، والبيانات الوصفية، والتحقق من التوافق مع PDF/A.
تُظهر المكتبة 527 فئة تغطي مواصفة PDF الكاملة: بنية المستند عبر Document، Page، وPageCollection; التعليقات التوضيحية من خلال تسلسل Annotation (بما في ذلك WidgetAnnotation، FreeTextAnnotation، وHighlightAnnotation); النماذج التفاعلية مع Form، ButtonField، CheckboxField، وRadioButtonField; عرض الصفحات عبر BmpDevice; وفحص التوافق مع PDF/A عبر ActionRules وActionFixes. يتم توفير التشفير عبر AESCipher في وضع CBC.
أضف Aspose.PDF FOSS إلى مشروع Maven الخاص بك باستخدام groupId org.aspose و artifactId aspose-pdf. تتطلب المكتبة Java 11 أو أحدث وهي مرخصة بالكامل بموجب رخصة MIT. للحصول على ميزات المؤسسة والدعم، راجع Aspose.PDF for Java — Enterprise Product.
Document لإنشاء مستندات PDF جديدة. يمكن الوصول إلى المستندات الموجودة عبر مُنشئ Document(filePath) أو Document(stream).PageCollection. كل Page يكشف عن MediaBox، CropBox، الدوران، الموارد، ومشغلات المحتوى.DocumentInfo و XmpMetadata.getParser()، getCatalog()، وgetTrailer().getEmbeddedFiles().Document وتعبئة الصفحات.PdfFileEditor وPage API.Annotation هي الأساس لجميع التعليقات التوضيحية؛ الأنواع الملموسة تشمل WidgetAnnotation وFreeTextAnnotation وHighlightAnnotation وUnderlineAnnotation.Document.getForm() لتعداد أو إنشاء مثيلات ButtonField، CheckboxField، وRadioButtonField.AppearanceCharacteristics — لون الحدود، الخلفية، الدوران، والتعليقات.FormEditor و FormElement للتعامل مع النموذج على مستوى أعلى.ActionRules و ActionFixes.AESCipher في وضع CBC (AESCipher.encrypt(key, data) و AESCipher.decrypt(key, data)).Artifact و ArtifactCollection.PdfFileEditor.resizeContents() و ContentsResizeParameters.AnnotationRules و ActionRules.AESCipher لتشفير أقسام البيانات المدمجة في تدفقات المستند.Artifact التي تمثل العلامات المائية وزخارف الصفحات.ActionFixes and AnnotationFixes to make existing documents meet PDF/A-1b archival standards.أنشئ مستندًا جديدًا، أضف صفحة، وأرفق توضيح widget annotation مع تنسيق.
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
```java
try (Document doc = new Document()) {
Page page = doc.getPages().add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("output.pdf");
}
أضف مجموعة أزرار اختيار إلى نموذج مستند وحدد قيمة برمجيًا.
try (Document doc = new Document()) {
Page page = doc.getPages().add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("choice");
radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Option2");
doc.save("form.pdf");
}
الوصول إلى مستند موجود وقراءة أبعاد صندوق الوسائط للصفحة الأولى.
try (Document doc = new Document("input.pdf")) {
double width = doc.getPages().get(1).getMediaBox().getWidth();
double height = doc.getPages().get(1).getMediaBox().getHeight();
System.out.println("Page size: " + width + " x " + height);
}