जावा में PDF रिपोर्ट जनरेशन: लाइब्रेरी और टूल्स का अवलोकन
PDF दस्तावेज़ बनाना कॉर्पोरेट Java विकास में सबसे आम कार्यों में से एक है। रिपोर्ट, चालान, इनवॉइस, विश्लेषणात्मक डैशबोर्ड - इन सभी के लिए एक लचीले और कुशल टूलसेट की आवश्यकता होती है। इस लेख में, हम Java में PDF जनरेशन के लिए चार प्रमुख लाइब्रेरीज़ पर चर्चा करेंगे: Apache PDFBox, iText, JasperReports और OpenPDF। हम उनकी ताकत, कोड उदाहरण और उपयोग के परिदृश्यों को देखेंगे।
1. Apache PDFBox - निम्न-स्तरीय निर्माण और संपादन
Apache PDFBox एक ओपन-सोर्स लाइब्रेरी (Apache 2.0 लाइसेंस) है जो आपको शुरू से PDF दस्तावेज़ बनाने, साथ ही संपादित करने, टेक्स्ट निकालने और फॉर्म भरने की अनुमति देती है। मुख्य लाभ सामग्री पर पूर्ण नियंत्रण है: आप सीधे दस्तावेज़ ऑब्जेक्ट के साथ काम करते हैं।
एक सरल PDF बनाने का उदाहरण:
import org.apache.pdfbox.pdmodel.*;import org.apache.pdfbox.pdmodel.font.PDType1Font;import java.io.IOException;
public class PdfBoxExample { public static void main(String[] args) throws IOException { try (PDDocument document = new PDDocument()) { PDPage page = new PDPage(); document.addPage(page);
try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) { contentStream.setFont(PDType1Font.HELVETICA_BOLD, 14); contentStream.beginText(); contentStream.newLineAtOffset(100, 700); contentStream.showText("नमस्ते, PDFBox वर्ल्ड!"); contentStream.endText(); }
document.save("output.pdf"); System.out.println("PDF बन गया!"); } }}कब उपयोग करें: जब आपको प्रत्येक तत्व पर सूक्ष्म नियंत्रण की आवश्यकता हो (उदाहरण के लिए, जटिल ग्राफ़ बनाने या फॉर्म भरने के लिए)। पूर्व-लेआउट के बिना बड़ी मात्रा में टेक्स्ट के लिए उपयुक्त नहीं है।
2. iText - जटिल रिपोर्ट के लिए व्यावसायिक शक्ति
iText उद्योग में एक डी-फैक्टो मानक है। यह दो संस्करणों में मौजूद है: iText 7 Community (AGPL) और iText 7 Commercial (वाणिज्यिक लाइसेंस)। लाइब्रेरी HTML-to-PDF, इंटरैक्टिव फॉर्म बनाना, डिजिटल हस्ताक्षर, एन्क्रिप्शन और बहुत कुछ सपोर्ट करती है।
तालिका के साथ PDF जनरेशन का उदाहरण:
import com.itextpdf.kernel.pdf.*;import com.itextpdf.layout.*;import com.itextpdf.layout.element.*;
public class ITextExample { public static void main(String[] args) throws Exception { PdfWriter writer = new PdfWriter("report.pdf"); PdfDocument pdfDoc = new PdfDocument(writer); Document document = new Document(pdfDoc);
document.add(new Paragraph("मासिक रिपोर्ट")); Table table = new Table(2); table.addCell("संकेतक"); table.addCell("मान"); table.addCell("आय"); table.addCell("1,250,000 रु."); table.addCell("व्यय"); table.addCell("890,000 रु."); document.add(table);
document.close(); System.out.println("रिपोर्ट तैयार है!"); }}कब उपयोग करें: वाणिज्यिक परियोजनाओं के लिए जहां उच्च प्रदर्शन, जटिल लेआउट समर्थन और कानूनी रूप से महत्वपूर्ण दस्तावेज़ों (हस्ताक्षर, एन्क्रिप्शन) की आवश्यकता होती है। ध्यान दें: AGPL संस्करण को वितरण पर कोड खोलने की आवश्यकता होती है।
3. JasperReports - JRXML टेम्पलेट्स पर आधारित जनरेशन
JasperReports सिर्फ एक लाइब्रेरी नहीं है, बल्कि रिपोर्ट बनाने के लिए एक संपूर्ण इकोसिस्टम है। आप XML प्रारूप में (या Jaspersoft Studio विज़ुअल एडिटर के माध्यम से) एक टेम्पलेट का वर्णन करते हैं, और लाइब्रेरी इसे डेटाबेस, कलेक्शन या JSON से डेटा से भरती है। परिणाम को PDF, Excel, HTML, CSV और अन्य प्रारूपों में निर्यात किया जा सकता है।
टेम्पलेट को प्रोग्रामेटिक रूप से भरने का उदाहरण:
import net.sf.jasperre पुस्तकालय में भी
Retrofit Java: पूरी गाइड उदाहरणों के साथ
PHP में XML के साथ काम करना: पार्सिंग और XML डॉक्यूमेंट बनाने की पूरी गाइड
Kotlin में PDF जनरेशन: लाइब्रेरी और टूल्स का अवलोकन
Swift में अंतर्राष्ट्रीयकरण (i18n): NSLocalizedString और String Catalog
TypeScript में डेटा वैलिडेशन: लाइब्रेरीज़, दृष्टिकोण और कोड उदाहरण