توليد PDF في Java باستخدام iText

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو iText ولماذا هو مطلوب؟

iText هي مكتبة قوية لـ Java، مصممة لإنشاء ومعالجة مستندات PDF. تتيح إنشاء ملفات PDF برمجيًا، وإضافة النصوص والصور والجداول والنماذج والتعليقات التوضيحية. تُستخدم المكتبة على نطاق واسع في التطبيقات المؤسسية لأتمتة التقارير والفواتير والعقود والمستندات الأخرى. الميزة الرئيسية لـ iText هي التحكم الكامل في محتوى وهيكل PDF.

تثبيت iText

لإضافة iText في مشروع Maven، أضف التبعية في pom.xml:

<dependency>    <groupId>com.itextpdf</groupId>    <artifactId>itext7-core</artifactId>    <version>7.2.5</version>    <type>pom</type></dependency>

لـ Gradle:

implementation 'com.itextpdf:itext7-core:7.2.5'

الوظائف الأساسية لـ iText

  • إنشاء PDF من الصفر: إضافة الفقرات والجداول والصور.
  • العمل مع النماذج: ملء واستخراج البيانات من AcroForms.
  • التشفير والحماية: تعيين كلمات المرور، وتقييد الطباعة أو النسخ.
  • تحويل HTML إلى PDF: باستخدام الوحدة html2pdf.
  • دمج وتقسيم الصفحات: العمل مع عدة مستندات.

مثال على كود Java

لنقم بإنشاء PDF بسيط مع نص وجدول:

import com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;import com.itextpdf.layout.Document;import com.itextpdf.layout.element.Paragraph;import com.itextpdf.layout.element.Table;

public class PdfGenerator { public static void main(String[] args) throws Exception { String dest = "example.pdf"; PdfWriter writer = new PdfWriter(dest); PdfDocument pdf = new PdfDocument(writer); Document document = new Document(pdf);

// إضافة عنوان document.add(new Paragraph("مرحبًا بالعالم!"));

// إنشاء جدول 3x2 Table table = new Table(3); table.addCell("الاسم"); table.addCell("العمر"); table.addCell("المدينة"); table.addCell("آنا"); table.addCell("25"); table.addCell("موسكو"); table.addCell("إيفان"); table.addCell("30"); table.addCell("سانت بطرسبرغ");

document.add(table); document.close(); System.out.println("تم إنشاء PDF: " + dest); }}

متى تستخدم iText

المكتبة مثالية لـ:

  • توليد التقارير والفواتير في تطبيقات الويب (Spring Boot, Java EE).
  • أتمتة سير العمل للمستندات: العقود، الشهادات، الفواتير.
  • إنشاء نماذج PDF تفاعلية لملء البيانات من قبل المستخدمين.
  • تحويل قوالب HTML إلى PDF للطباعة أو الإرسال.

iText هو المعيار الفعلي للعمل مع PDF في Java. البدائل: Apache PDFBox (أكثر انخفاضًا في المستوى) و Aspose.PDF (تجاري).

توصيات