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

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

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

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

जावा में PDF जनरेशन: सर्वश्रेष्ठ लाइब्रेरीज़ का अवलोकन



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



1. iText - शक्तिशाली और व्यावसायिक मानक



iText जावा में PDF बनाने के लिए डी-फैक्टो मानक है। यह लाइब्रेरी 2000 से अस्तित्व में है और सबसे व्यापक कार्यक्षमता प्रदान करती है: सरल टेक्स्ट से लेकर जटिल फॉर्म, वॉटरमार्क, डिजिटल हस्ताक्षर और PDF/A के साथ काम करने तक।



लाइसेंसिंग: iText दोहरे लाइसेंस के तहत वितरित किया जाता है। ओपन-सोर्स प्रोजेक्ट्स (AGPL) के लिए मुफ्त, व्यावसायिक उपयोग के लिए लाइसेंस खरीदना आवश्यक है।



उदाहरण: तालिका के साथ एक सरल PDF बनाना



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

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

// शीर्षक जोड़ें document.add(new Paragraph("बिक्री रिपोर्ट"));

// तालिका बनाएँ Table table = new Table(UnitValue.createPercentArray(3)).useAllAvailableWidth(); table.addHeaderCell(new Cell().add(new Paragraph("उत्पाद"))); table.addHeaderCell(new Cell().add(new Paragraph("मात्रा"))); table.addHeaderCell(new Cell().add(new Paragraph("मूल्य")));

table.addCell(new Cell().add(new Paragraph("लैपटॉप"))); table.addCell(new Cell().add(new Paragraph("10"))); table.addCell(new Cell().add(new Paragraph("1200 $")));

table.addCell(new Cell().add(new Paragraph("माउस"))); table.addCell(new Cell().add(new Paragraph("50"))); table.addCell(new Cell().add(new Paragraph("25 $")));

document.add(table); document.close();

System.out.println("PDF बनाया गया: " + dest); }}


iText के लाभ: विशाल समुदाय, उत्कृष्ट दस्तावेज़ीकरण, जटिल परिदृश्यों (हस्ताक्षर, फॉर्म, PDF/UA) का समर्थन। नुकसान: व्यावसायिक लाइसेंस की उच्च लागत।



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



Apache PDFBox Apache 2.0 लाइसेंस के साथ पूरी तरह से मुफ्त लाइब्रेरी है। यह न केवल शुरू से PDF बनाने की अनुमति देता है, बल्कि मौजूदा दस्तावेज़ों को संपादित करने, टेक्स्ट निकालने, फॉर्म और इमेज के साथ काम करने की भी अनुमति देता है।



उदाहरण: टेक्स्ट और इमेज के साथ दस्तावेज़ बनाना



import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPage;import org.apache.pdfbox.pdmodel.PDPageContentStream;import org.apache.pdfbox.pdmodel.font.PDType0Font;import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

import java.io.File;

public class PdfBoxExample { public static void main(String[] args) throws Exception { PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page);

PDPageContentStream contentStream = new PDPageContentStream(document, page);

// फ़ॉन्ट लोड करें (फ़ॉन्ट फ़ाइल आवश्यक है) PDType0Font font = PDType0Font.load(document, new File("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf")); contentStream.setFont(font, 14); contentStream.beginText(); contentStream.newLineAtOffset(50, 700); conte

अनुशंसाएँ