जावा में PDF जनरेशन: सर्वश्रेष्ठ लाइब्रेरियों का अवलोकन (iText, Apache PDFBox, OpenPDF)

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा में PDF जनरेशन: iText, Apache PDFBox और OpenPDF लाइब्रेरियों का अवलोकन

\n

PDF दस्तावेज़ बनाना जावा में कॉर्पोरेट और वेब अनुप्रयोगों में एक सामान्य कार्य है: रिपोर्ट और चालान बनाने से लेकर डेटा निर्यात और ई-पुस्तकें बनाने तक। जावा में कई परिपक्व लाइब्रेरीज़ हैं, जिनमें से प्रत्येक की अपनी ताकत है। इस लेख में हम तीन मुख्य लाइब्रेरियों पर विचार करेंगे: iText, Apache PDFBox और OpenPDF, कोड उदाहरण देंगे और उपयुक्त उपकरण चुनने में मदद करेंगे।

\n\n

1. iText — शक्तिशाली, लेकिन वाणिज्यिक लाइसेंस के साथ

\n

iText PDF के साथ काम करने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह सामग्री पर पूर्ण नियंत्रण प्रदान करती है: टेक्स्ट, चित्र, तालिकाएँ, फ़ॉर्म, वॉटरमार्क, हस्ताक्षर। संस्करण 5.5.x से शुरू होकर, iText दोहरे लाइसेंस AGPL (ओपन-सोर्स परियोजनाओं के लिए मुफ्त) और वाणिज्यिक (मालिकाना सॉफ्टवेयर के लिए) के तहत वितरित किया जाता है। संस्करण 7.x (iText 7) अधिक आधुनिक, मॉड्यूलर और उच्च प्रदर्शन वाला है।

\n\n

उदाहरण: टेक्स्ट के साथ एक सरल PDF बनाना (iText 7)

\n
\nimport com.itextpdf.kernel.pdf.PdfDocument;\nimport com.itextpdf.kernel.pdf.PdfWriter;\nimport com.itextpdf.layout.Document;\nimport com.itextpdf.layout.element.Paragraph;\n\npublic class CreatePdfWithIText {\n    public static void main(String[] args) throws Exception {\n        String dest = "output_itext.pdf";\n        PdfWriter writer = new PdfWriter(dest);\n        PdfDocument pdf = new PdfDocument(writer);\n        Document document = new Document(pdf);\n        document.add(new Paragraph("नमस्ते, PDF दुनिया!"));\n        document.add(new Paragraph("यह iText 7 का उपयोग करके बनाया गया है।"));\n        document.close();\n        System.out.println("PDF सफलतापूर्वक बनाया गया: " + dest);\n    }\n}\n
\n\n

iText के लाभ:

\n
    \n
  • अधिकतम लचीलापन: तालिकाओं, सूचियों, शैलियों, फ़ॉन्ट, चित्रों का समर्थन।
  • \n
  • PDF/A, एन्क्रिप्शन, डिजिटल हस्ताक्षर के साथ काम करना।
  • \n
  • उच्च प्रदर्शन और रेंडरिंग गुणवत्ता।
  • \n
\n

नुकसान:

\n
    \n
  • जटिल लाइसेंस (AGPL) — वाणिज्यिक उपयोग के लिए खरीदारी आवश्यक है।
  • \n
  • काफी बड़ा API, जिसे सीखने की आवश्यकता है।
  • \n
\n\n

2. Apache PDFBox — मुफ्त और ओपन-सोर्स

\n

Apache PDFBox एक ओपन-सोर्स लाइब्रेरी (Apache 2.0 लाइसेंस) है जो PDF बनाने, संपादित करने और सामग्री निकालने की अनुमति देती है। iText के विपरीत, PDFBox को मालिकाना परियोजनाओं के लिए वाणिज्यिक लाइसेंस की आवश्यकता नहीं है। यह फ़ॉर्म, एन्क्रिप्शन, फ़ॉन्ट एम्बेडिंग के साथ काम करने का भी समर्थन करता है।

\n\n

उदाहरण: टेक्स्ट के साथ PDF बनाना (PDFBox 2.x)

\n
\nimport org.apache.pdfbox.pdmodel.PDDocument;\nimport org.apache.pdfbox.pdmodel.PDPage;\nimport org.apache.pdfbox.pdmodel.PDPageContentStream;\nimport org.apache.pdfbox.pdmodel.font.PDType1Font;\n\nimport java.io.IOException;\n\npublic class CreatePdfWithPdfBox {\n    public static void main(String[] args) throws IOException {\n        try (PDDocument document = new PDDocument()) {\n            PDPage page = new PDPage();\n            document.addPage(page);\n            try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {\n                contentStream.beginText();\n                contentStream.setFont(PDType1Font.HELVETICA, 14);\n                contentStream.newLineAtOffset(50, 700);\n                contentStream.showText("नमस्ते, PDF दुनिया!");\n                contentStream.newLineAtOffset(0, -20);\n                contentStream.showText("यह Apache PDFBox का उपयोग करके बनाया गया है।");\n                contentStream.endText();\n            }\n            document.save("output_pdfbox.pdf");\n            System.out.println("PDF सफलतापूर्वक बनाया गया: output_pdfbox.pdf");\n        }\n    }\n}\n
\n\n

Apache PDFBox के लाभ:

\n
    \n
  • पूरी तरह से मुफ्त (Apache 2.0 लाइसेंस) — किसी भी परियोजना के लिए उपयुक्त।
  • \n
  • टेक्स्ट, चित्र, मेटाडेटा निकालने का समर्थन।

अनुशंसाएँ