C++ में PDF जनरेशन: लाइब्रेरीज़, टूल्स और कोड उदाहरण

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

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

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

C++ में PDF जनरेशन: लाइब्रेरीज़ और टूल्स का अवलोकन



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



C++ में PDF जनरेशन की आवश्यकता क्यों?

PDF (Portable Document Format) एक क्रॉस-प्लेटफ़ॉर्म प्रारूप है जो डिवाइस और ऑपरेटिंग सिस्टम की परवाह किए बिना दस्तावेज़ के लेआउट को संरक्षित करता है। C++ में, PDF जनरेशन की आवश्यकता निम्नलिखित के लिए होती है:

  • व्यावसायिक अनुप्रयोगों में रिपोर्ट और चालान बनाना
  • टेम्पलेट्स से दस्तावेज़ीकरण तैयार करना
  • डेटाबेस से डेटा निर्यात करना
  • लेखा प्रणालियों में रसीदें और चालान जनरेट करना


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



1. libharu (HARU PDF)

PDF जनरेशन के लिए सबसे लोकप्रिय और उपयोग में आसान लाइब्रेरीज़ में से एक। यह C में लिखी गई है, लेकिन इसमें एक उत्कृष्ट C++ इंटरफ़ेस है। यह शुरू से PDF दस्तावेज़ बनाने, टेक्स्ट, चित्र, रेखाएँ, आयत, एनोटेशन जोड़ने की अनुमति देता है।

विशेषताएँ:

  • छोटा आकार और उच्च प्रदर्शन
  • TrueType फ़ॉन्ट्स के लिए समर्थन
  • पृष्ठ संपीड़न
  • चित्रों के साथ काम (JPEG, PNG)
  • लाइसेंस: ZLIB/Libpng (मुफ्त)

सरल PDF जनरेशन का उदाहरण:

#include <hpdf.h>#include <stdio.h>

int main() { HPDF_Doc pdf = HPDF_New(NULL, NULL); HPDF_Page page = HPDF_AddPage(pdf); // A4 पृष्ठ आकार सेट करें HPDF_Page_SetSize(page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_LANDSCAPE); // टेक्स्ट जोड़ें HPDF_Page_BeginText(page); HPDF_Page_SetFontAndSize(page, HPDF_GetFont(pdf, "Helvetica", NULL), 24); HPDF_Page_TextOut(page, 100, 500, "नमस्ते, C++ पर PDF दुनिया!"); HPDF_Page_EndText(page); // दस्तावेज़ सहेजें HPDF_SaveToFile(pdf, "output.pdf"); HPDF_Free(pdf); return 0;}


2. PoDoFo

PDF के साथ काम करने के लिए एक आधुनिक ओपन-सोर्स C++ लाइब्रेरी। यह न केवल निर्माण बल्कि मौजूदा PDF फ़ाइलों के संपादन का भी समर्थन करता है। अच्छी तरह से प्रलेखित और सक्रिय रूप से समर्थित।

विशेषताएँ:

  • शुद्ध C++ कोड (आधुनिक मानक)
  • Unicode और सिरिलिक लिपि के लिए समर्थन
  • फ़ॉर्म, बुकमार्क, मेटाडेटा के साथ काम
  • PDF पढ़ना और लिखना
  • लाइसेंस: LGPL

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

#include <podofo/podofo.h>

using namespace PoDoFo;

int main() { PdfMemDocument document; PdfPage* page = document.CreatePage(PdfPage::CreateStandardPageSize(PdfPageSize::A4)); PdfPainter painter; painter.SetCanvas(*page); // तालिका बनाएँ painter.DrawRect(50, 700, 500, 30); painter.DrawText(60, 710, "तालिका शीर्षक"); // सहेजें painter.FinishPage(); document.Save("table.pdf"); return 0;}


3. wkhtmltopdf

शास्त्रीय अर्थों में लाइब्रेरी नहीं, बल्कि एक कमांड-लाइन उपयोगिता है जो HTML को PDF में बदलने के लिए WebKit इंजन का उपयोग करती है। C++ में, इसे system() के माध्यम से कॉल किया जा सकता है या रैपर लाइब्रेरी का उपयोग किया जा सकता है।

विशेषताएँ:

  • HTML टेम्पलेट्स से PDF जनरेशन के लिए आदर्श
  • CSS, JavaScript, SVG के लिए समर्थन
  • गुणवत्तापूर्ण लेआउट (ब्राउज़र की तरह)
  • हेडर/फुटर, विषय-सूची, पृष्ठ क्रमांकन
  • लाइसेंस: LGPLv3

C++ से कॉल करने का उदाहरण:

#include <cstdlib>

int main() { // HTML फ़ाइल को PDF में बदलें int result = std::system("w

अनुशंसाएँ