Kotlin पर PDF रिपोर्ट जनरेशन: लाइब्रेरीज़ और उदाहरण

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

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

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

Kotlin पर PDF रिपोर्ट जनरेशन: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण



Kotlin, JVM के लिए एक आधुनिक भाषा होने के नाते, डेवलपर्स को PDF दस्तावेज़ बनाने के लिए शक्तिशाली उपकरण प्रदान करती है। चाहे आप वित्तीय रिपोर्ट, चालान, विश्लेषणात्मक डैशबोर्ड बना रहे हों या केवल डेटा निर्यात कर रहे हों, Kotlin में कई परिपक्व लाइब्रेरीज़ हैं जो इस कार्य को हल करने में सक्षम हैं। इस लेख में, हम Kotlin पर PDF जनरेशन के लिए मुख्य लाइब्रेरीज़ पर विचार करेंगे, उनकी क्षमताओं की तुलना करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।



1. iText 7 — शक्तिशाली और लचीला उपकरण



iText जावा और Kotlin की दुनिया में PDF के साथ काम करने के लिए सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। यह दस्तावेज़ की सामग्री पर पूर्ण नियंत्रण प्रदान करता है: टेक्स्ट, टेबल, इमेज, एनोटेशन, बुकमार्क और भी बहुत कुछ। iText 7 बेहतर आर्किटेक्चर के साथ एक पुनर्निर्मित संस्करण है।



स्थापना (Gradle)

implementation("com.itextpdf:itext7-core:8.0.2")


उदाहरण: एक सरल PDF रिपोर्ट बनाना

import com.itextpdf.kernel.pdf.PdfDocumentimport com.itextpdf.kernel.pdf.PdfWriterimport com.itextpdf.layout.Documentimport com.itextpdf.layout.element.Paragraphimport com.itextpdf.layout.element.Tableimport java.io.FileOutputStream

fun generateReport(fileName: String, data: List<Pair<String, Int>>) { val writer = PdfWriter(FileOutputStream(fileName)) val pdf = PdfDocument(writer) val document = Document(pdf)

// शीर्षक document.add(Paragraph("बिक्री रिपोर्ट").setFontSize(20).setBold())

// तालिका val table = Table(2) table.addCell("उत्पाद") table.addCell("मात्रा") data.forEach { (product, quantity) -> table.addCell(product) table.addCell(quantity.toString()) } document.add(table)

document.close() println("PDF बनाया गया: $fileName")}

// उपयोगfun main() { val salesData = listOf( "लैपटॉप" to 150, "मॉनिटर" to 230, "कीबोर्ड" to 340 ) generateReport("report_itext.pdf", salesData)}


iText फ़ॉर्मेटिंग के लिए एक समृद्ध API प्रदान करता है: आप फ़ॉन्ट, रंग, मार्जिन, संरेखण सेट कर सकते हैं, इमेज जोड़ सकते हैं और यहाँ तक कि फ़ॉन्ट (जैसे, सिरिलिक) एम्बेड भी कर सकते हैं। हालाँकि, iText की लाइसेंसिंग सीमाएँ हैं: व्यावसायिक उपयोग के लिए लाइसेंस खरीदना आवश्यक है (ओपन-सोर्स प्रोजेक्ट के लिए AGPL)।



2. Apache PDFBox — मुफ़्त विकल्प



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



स्थापना (Gradle)

implementation("org.apache.pdfbox:pdfbox:3.0.1")


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

import org.apache.pdfbox.pdmodel.PDDocumentimport org.apache.pdfbox.pdmodel.PDPageimport org.apache.pdfbox.pdmodel.PDPageContentStreamimport org.apache.pdfbox.pdmodel.font.PDType1Fontimport java.awt.Color

fun createPdfBoxReport(fileName: String, data: List<Pair<String, Int>>) { val document = PDDocument() val page = PDPage() document.addPage(page)

val contentStream = PDPageContentStream(document, page) contentStream.beginText() contentStream.setFont(PDType1Font.HELVETICA_BOLD, 18f) contentStream.newLineAtOffset(50f, 750f) contentStream.showText("बिक्री रिपोर्ट (PDFBox)") contentStream.endText()

// मैन्युअल रूप से तालिका बनाएं var y = 700f contentStream.setFont(PDType1Font.HELVETICA, 12f) contentStream.setNonStrokingColor(Color.BLACK) data.forEach { (product, quantity) -> contentStream.beginText() contentStream.newLineAtOffset(50f, y) contentStream.showText("$product — $quantity पीस.") contentStream.endText()

अनुशंसाएँ