Go (Golang) में PDF जनरेशन: लाइब्रेरी और उदाहरण

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

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

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

Go (Golang) में PDF जनरेशन: लाइब्रेरी और टूल्स का अवलोकन

\n\n

PDF दस्तावेज़ बनाना वेब डेवलपमेंट में सामान्य कार्यों में से एक है। Go (Golang) इकोसिस्टम में कई परिपक्व लाइब्रेरी हैं जो सरल रिपोर्ट से लेकर तालिकाओं, ग्राफिक्स और फ़ॉन्ट्स के साथ जटिल बहु-पृष्ठ दस्तावेज़ों तक PDF जनरेट करने की अनुमति देती हैं। इस लेख में, हम मुख्य टूल्स, उनकी क्षमताओं की समीक्षा करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।

\n\n

PDF जनरेशन के लिए Go क्यों?

\n

Go एक कंपाइल्ड भाषा है जिसमें उत्कृष्ट प्रदर्शन और सरल कंकरेंसी मॉडल है। PDF जनरेशन कार्यों के लिए इसका अर्थ है:

\n
    \n
  • बड़ी मात्रा में डेटा का तेज़ प्रसंस्करण
  • \n
  • वेब सर्वर (net/http) के साथ आसान एकीकरण
  • \n
  • कई दस्तावेज़ों के जनरेशन को समानांतर करने की क्षमता
  • कोई बाहरी निर्भरता नहीं (बाइनरी में सब कुछ शामिल है)
\n\n

Go में PDF के साथ काम करने के लिए मुख्य लाइब्रेरी

\n\n

1. gofpdf — सरल और लोकप्रिय लाइब्रेरी

\n

gofpdf प्रसिद्ध PHP लाइब्रेरी FPDF का Go पोर्ट है। यह बुनियादी तत्वों: टेक्स्ट, लाइन्स, आयत, इमेज और टेबल के साथ PDF बनाने के लिए एक सरल API प्रदान करता है। लाइब्रेरी को बाहरी निर्भरता की आवश्यकता नहीं है और फ़ॉन्ट एम्बेड करके Unicode का समर्थन करती है।

\n\n

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

\n
package main\n\nimport (\n    "github.com/jung-kurt/gofpdf"\n)\n\nfunc main() {\n    pdf := gofpdf.New("P", "mm", "A4", "")\n    pdf.AddPage()\n    pdf.SetFont("Arial", "B", 16)\n    pdf.Cell(40, 10, "नमस्ते, दुनिया!")\n    pdf.OutputFileAndClose("hello.pdf")\n}\n
\n\n

gofpdf की मुख्य विशेषताएं:

\n
    \n
  • UTF-8 समर्थन (TrueType फ़ॉन्ट एम्बेड करना आवश्यक)
  • \n
  • स्वचालित पृष्ठ विराम
  • \n
  • वेक्टर ग्राफिक्स (लाइन्स, कर्व्स, फिल्स)
  • \n
  • इमेज एम्बेड करना (JPEG, PNG, GIF)
  • \n
  • डायनामिक डेटा के साथ तालिकाएं
  • \n
\n\n

2. UniPDF — वाणिज्यिक शक्तिशाली लाइब्रेरी

\n

UniPDF (पूर्व में FoxyUtils) Go में PDF के साथ काम करने के लिए एक पेशेवर समाधान है। लाइब्रेरी का स्रोत कोड खुला है, लेकिन वाणिज्यिक उपयोग के लिए लाइसेंस की आवश्यकता है। UniPDF न केवल PDF बनाने, बल्कि संपादन, रूपांतरण और डेटा निष्कर्षण का भी समर्थन करता है।

\n\n

UniPDF के साथ PDF बनाने का उदाहरण:

\n
package main\n\nimport (\n    "os"\n    "github.com/unidoc/unipdf/v3/creator"\n)\n\nfunc main() {\n    c := creator.New()\n    c.NewPage()\n    \n    // टेक्स्ट जोड़ना\n    text := c.NewStyledParagraph()\n    text.Append("UniPDF दस्तावेज़ का उदाहरण")\n    text.SetFontSize(18)\n    c.Draw(text)\n    \n    // सहेजना\n    c.WriteToFile("unipdf_example.pdf")\n}\n
\n\n

UniPDF की अनूठी विशेषताएं:

\n
    \n
  • मौजूदा PDF का पूर्ण पार्सिंग और संपादन
  • \n
  • फॉर्म, एनोटेशन और बुकमार्क का समर्थन
  • \n
  • HTML को PDF में रूपांतरण
  • \n
  • डिजिटल हस्ताक्षर के साथ काम करना
  • \n
  • टेक्स्ट और इमेज का निष्कर्षण
  • \n
\n\n

3. Maroto — विज़ुअल घटकों पर आधारित PDF जनरेटर

\n

Maroto gofpdf के ऊपर बनाया गया है और "ग्रिड" (grid) की अवधारणा का उपयोग करके एक उच्च-स्तरीय दृष्टिकोण प्रदान करता है। यह रिपोर्ट, चालान और अन्य संरचित दस्तावेज़ बनाने के लिए सुविधाजनक है।

\n\n

Maroto के साथ उदाहरण:

\n
package main\n\nimport (\n    "fmt"\n    "github.com/johnfercher/maroto/v2/pkg/consts/align"\n    "github.com/johnfercher/maroto/v2/pkg/consts/fontstyle"\n    "github.com/johnfercher/maroto/v2/pkg/core"\n    "github.com/johnfercher/maroto/v2/pkg/props"\n    "github.com/johnfercher/maroto/v2"\n)\n\nfunc main() {\n    m := maroto.New()\n    m.Row(20, func() {\n        m.Col(12, func() {\n            m.Text("चालान #123", props.Text{\n                Style: fontstyle.Bold,\n                Align: align.Center,\n            })\n        })\n    })\n    \n    document, err := m.Generate()\n    if err != nil {\n                    

अनुशंसाएँ