जावा में PDF रिपोर्ट जनरेशन: लाइब्रेरीज़ का अवलोकन और कोड उदाहरण
PDF दस्तावेज़ बनाना कॉर्पोरेट जावा अनुप्रयोगों में एक सामान्य कार्य है: चालान और प्रमाणपत्र बनाने से लेकर ग्राफ़ के साथ जटिल विश्लेषणात्मक रिपोर्ट तैयार करने तक। इस लेख में, हम जावा पर PDF जनरेशन के लिए तीन मुख्य लाइब्रेरीज़ — iText, Apache PDFBox और JasperReports — पर चर्चा करेंगे, उनकी क्षमताओं की तुलना करेंगे और कार्यशील कोड उदाहरण प्रस्तुत करेंगे।
1. iText — शक्तिशाली और लचीली लाइब्रेरी
iText (अब iText 8.x) जावा पर PDF के साथ काम करने के लिए सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। यह शुरू से दस्तावेज़ बनाने, मौजूदा दस्तावेज़ों को संपादित करने, चित्र, तालिकाएँ, बुकमार्क, वॉटरमार्क जोड़ने, साथ ही फ़ॉर्म और डिजिटल हस्ताक्षरों के साथ काम करने का समर्थन करता है।
लाइसेंसिंग: 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.Paragraph;import com.itextpdf.layout.element.Table;import com.itextpdf.layout.element.Cell;
public class ItextPdfExample { public static void main(String[] args) throws Exception { String dest = "report.pdf"; PdfWriter writer = new PdfWriter(dest); PdfDocument pdf = new PdfDocument(writer); Document document = new Document(pdf);
// शीर्षक document.add(new Paragraph("बिक्री रिपोर्ट").setBold().setFontSize(18));
// तालिका Table table = new Table(3); table.addCell(new Cell().add(new Paragraph("उत्पाद"))); table.addCell(new Cell().add(new Paragraph("मात्रा"))); table.addCell(new Cell().add(new Paragraph("राशि"))); table.addCell("लैपटॉप"); table.addCell("5"); table.addCell("₹4,50,000"); table.addCell("माउस"); table.addCell("12"); table.addCell("₹6,000");
document.add(table); document.close(); System.out.println("PDF बन गया!"); }}यह कोड "बिक्री रिपोर्ट" शीर्षक और तीन कॉलम वाली तालिका के साथ एक PDF बनाता है। iText स्वचालित रूप से लाइन ब्रेक और पेज ब्रेक को संभालता है।
2. Apache PDFBox — हल्का और मुफ्त विकल्प
Apache PDFBox एक ओपन-सोर्स लाइब्रेरी (Apache 2.0 लाइसेंस) है जो PDF फ़ाइलों को बनाने, संपादित करने और उनसे टेक्स्ट निकालने की अनुमति देती है। PDFBox को किसी तीसरे पक्ष की निर्भरता की आवश्यकता नहीं है और यह सरल कार्यों के लिए उपयुक्त है: टेक्स्ट दस्तावेज़ जनरेशन, फ़ॉर्म भरना, डेटा निकालना।
कमी: तालिकाओं और जटिल लेआउट के साथ काम करने के लिए iText की तुलना में अधिक मैन्युअल कोड की आवश्यकता होती है।
उदाहरण: टेक्स्ट और चित्र के साथ 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 java.io.File;
public class PdfBoxExample { public static void main(String[] args) throws Exception { try (PDDocument document = new PDDocument()) { PDPage page = new PDPage(); document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page); // फ़ॉन्ट लोड करना (अनिवार्य!) PDType0Font font = PDType0Font.load(document, new File("LiberationSans-Regular.ttf")); contentStream.setFont(font, 14); contentStream.beginText(); contentStream.newLineAtOffset(50, 700); contentStream.showText("नमस्ते, PDFBox की दुनिया!"); contentStream.endText(); contentStream.close();