1. المنتجات
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS لـ Java

إنشاء وتعديل مستندات PDF من Java — مع التعليقات التوضيحية، حقول النماذج، تعديل الصفحات، والامتثال لـ PDF/A. مرخصة تحت MIT.

مكتبة Java مجانية مرخصة MIT لإنشاء وتعديل PDF

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 API: استخدم الفئة Document لإنشاء مستندات PDF جديدة. يمكن الوصول إلى المستندات الموجودة عبر مُنشئ Document(filePath) أو Document(stream).
  • إدارة الصفحات: إضافة، الوصول، وتعديل الصفحات عبر PageCollection. كل Page يكشف عن MediaBox، CropBox، الدوران، الموارد، ومشغلات المحتوى.
  • Metadata: قراءة وكتابة بيانات تعريف المستند عبر DocumentInfo و XmpMetadata.
  • PDF structure: الوصول إلى كائنات PDF الأساسية عبر getParser()، getCatalog()، وgetTrailer().
  • الملفات المضمنة: إدارة مجموعات الملفات المضمنة باستخدام getEmbeddedFiles().

سيناريوهات معالجة المستندات الشائعة

  • إنشاء PDF: قم بإنشاء المستندات برمجياً عن طريق إنشاء Document وتعبئة الصفحات.
  • تحليل المستند: الوصول إلى الملفات الموجودة لتفقد البيانات الوصفية أو تعداد حقول النموذج.
  • تعديل الصفحات: تغيير الحجم أو الدوران أو إعادة ترتيب الصفحات باستخدام PdfFileEditor وPage API.
  • تدفقات العمل الدفعي: تطبيق تحويلات متسقة عبر مستندات متعددة في خطوط أنابيب على جانب الخادم.

التعليقات التوضيحية وحقول النماذج

  • تسلسل التعليقات التوضيحية: الفئة المجردة Annotation هي الأساس لجميع التعليقات التوضيحية؛ الأنواع الملموسة تشمل WidgetAnnotation وFreeTextAnnotation وHighlightAnnotation وUnderlineAnnotation.
  • النماذج التفاعلية: الوصول إلى نموذج المستند عبر Document.getForm() لتعداد أو إنشاء مثيلات ButtonField، CheckboxField، وRadioButtonField.
  • مظهر الودجت: التحكم في الخصائص البصرية عبر AppearanceCharacteristics — لون الحدود، الخلفية، الدوران، والتعليقات.
  • تحرير النموذج: استخدم FormEditor و FormElement للتعامل مع النموذج على مستوى أعلى.

مراجعة المستندات والتعاون

  • تعليقات التوسيم: أضف تعليقات تمييز، تسطير، أو نص حر إلى المستندات لتدفقات العمل الخاصة بالمراجعة.
  • نماذج تفاعلية: إنشاء مستندات قابلة للملء بأزرار اختيار، ومربعات اختيار، وأزرار دفع لالتقاط البيانات.
  • استخراج بيانات النموذج: قراءة قيم حقول النموذج المرسلة لأنابيب الخادم الجانبية.
  • الامتثال الأرشيفي: تحقق وصحّح المستندات للأرشفة طويلة الأمد باستخدام ActionRules و ActionFixes.

الأمن وعمليات المحتوى

  • تشفير AES: تشفير وفك تشفير مصفوفات بايت البيانات باستخدام AESCipher في وضع CBC (AESCipher.encrypt(key, data) و AESCipher.decrypt(key, data)).
  • إدارة القطع الأثرية: تحديد ومعالجة رؤوس وتذييلات الصفحات والعلامات المائية وصور الخلفية عبر واجهات برمجة التطبيقات Artifact و ArtifactCollection.
  • تغيير حجم المحتوى: ضبط تخطيط محتوى الصفحة باستخدام PdfFileEditor.resizeContents() و ContentsResizeParameters.
  • التحقق من الامتثال: تحقق من قواعد التعليقات والإجراءات وفقًا لمعايير PDF/A باستخدام AnnotationRules و ActionRules.

حالات استخدام أمان المستندات

  • الحمولات المشفرة: استخدم AESCipher لتشفير أقسام البيانات المدمجة في تدفقات المستند.
  • حماية المستند: تطبيق إعدادات الأمان للتحكم في الوصول في سير عمل الامتثال.
  • العلامات المائية: اكتشاف وإدارة كائنات Artifact التي تمثل العلامات المائية وزخارف الصفحات.
  • الامتثال للأرشفة: Run ActionFixes and AnnotationFixes to make existing documents meet PDF/A-1b archival standards.

إنشاء مستند مع تعليقات توضيحية للـWidget

أنشئ مستندًا جديدًا، أضف صفحة، وأرفق توضيح 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);
}
  

الدعم وموارد التعلم

 العربية