LibHaru

 
 

PDF दस्तावेज़ों के लिए ओपन सोर्स C++ लाइब्रेरी

ओपन सोर्स सी++ एपीआई के माध्यम से पीडीएफ फाइलों को जेनरेट, एडिट, मैनिपुलेट और कन्वर्ट करें।

LibHaru एक ओपन सोर्स C++ लाइब्रेरी है जो सॉफ्टवेयर डेवलपर्स को पीडीएफ फाइल फॉर्मेट जेनरेट करने में सक्षम बनाती है, वर्तमान में, एपीआई मौजूदा पीडीएफ दस्तावेजों को पढ़ने या संपादित करने की अनुमति नहीं देता है। एपीआई का उपयोग करके आप पीडीएफ फाइल जेनरेट कर सकते हैं - इसमें टेक्स्ट, लाइन्स और एनोटेशन जोड़ें। इसके अलावा, आप दस्तावेज़ में पीएनजी और जेपीईजी प्रारूप की छवियां भी जोड़ सकते हैं। LibHaru पीडीएफ दस्तावेज़ को डिफ्लेट-डीकोड प्रारूप के साथ संपीड़ित करने की अनुमति देता है और एन्क्रिप्टेड पीडीएफ दस्तावेज़ उत्पन्न करता है।

LibHaru को ANSI-C लिखा गया है और यह स्टैटिक-लाइब्रेरी और शेयर्ड-लाइब्रेरी दोनों के रूप में काम कर सकता है। इसे C++ प्रोग्राम के साथ उपयोग करने के लिए आप इसे किसी भी C++ कंपाइलर के साथ संकलित कर सकते हैं और इसे स्टैटिक-लाइब्रेरी के रूप में उपयोग कर सकते हैं।

Previous Next

LibHaru के साथ शुरुआत करना

LibHaru ANSI-C में लिखा गया है और इसे C++ के साथ उपयोग करने के लिए, आप इसे किसी भी अनुरूप C++ कंपाइलर के साथ संकलित कर सकते हैं। सबसे पहले, आप एपीआई के नवीनतम संस्करण को डाउनलोड और निकाल सकते हैं। स्क्रिप्ट निर्देशिका में प्रत्येक कंपाइलर के लिए कई प्रकार के मेकफ़ाइल होते हैं। लाइब्रेरी को उपयुक्त मेकफ़ाइल के साथ बनाएं।

स्क्रिप्ट निर्देशिका में प्रत्येक कंपाइलर के लिए कई प्रकार के मेकफ़ाइल होते हैं। लाइब्रेरी को उपयुक्त मेकफ़ाइल के साथ बनाएं।

कंपाइलर के लिए लाइब्रेरी बनाएँ

 //Microsoft VC++ Compiler 
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC

पीडीएफ फाइल फॉर्मेट जेनरेट करने के लिए सी ++ लाइब्रेरी

LibHaru ने सुविधाओं का एक सेट प्रदान किया है जो सॉफ्टवेयर डेवलपर्स को पीडीएफ फाइल प्रारूप उत्पन्न करने में सक्षम बनाता है। एपीआई का उपयोग करके आप एक नया पीडीएफ दस्तावेज़ बना सकते हैं, दस्तावेज़ ऑब्जेक्ट विशेषताएँ सेट कर सकते हैं, एक नया पेज बना सकते हैं, पेज ऑब्जेक्ट सेट कर सकते हैं, पेज विवरण सेट कर सकते हैं और दस्तावेज़ को फ़ाइल या मेमोरी स्ट्रीम में सहेज सकते हैं।

C++ का उपयोग करके PDF में छवियाँ एम्बेड करें

LibHaru सॉफ्टवेयर डेवलपर्स को पीडीएफ दस्तावेजों में जेपीईजी और पीएनजी छवियों को एम्बेड करने में सक्षम बनाता है। एपीआई का उपयोग करके आप छवि का आकार, चौड़ाई, ऊंचाई, बिट्स प्रति घटक और रंग स्थान प्राप्त कर सकते हैं। इसके अलावा, आप एम्बेडेड छवि के लिए एक रंगीन मुखौटा और मुखौटा छवि सेट कर सकते हैं।

सी ++ एपीआई का उपयोग करके एन्क्रिप्टेड पीडीएफ फाइलें बनाएं

एन्क्रिप्शन एक बहुत ही उपयोगी तंत्र है जो जानकारी को गुप्त कोड में एन्कोड करने की अनुमति देता है जो सूचना के सही अर्थ को छुपाता है। ओपन सोर्स लाइब्रेरी LibHaru सॉफ्टवेयर डेवलपर्स को बिना किसी बाहरी निर्भरता के एन्क्रिप्टेड पीडीएफ फाइल बनाने में सक्षम बनाती है।

सी ++ के माध्यम से एन्क्रिप्टेड पीडीएफ फाइलें बनाएं

 const static char* text = "This is an encrypt document example.";
const static char* owner_passwd = "owner";
const static char* user_passwd = "user";
jmp_buf env;
#ifdef HPDF_DLL
void __stdcall
#else
void
#endif
error_handler (HPDF_STATUS  error_no,
        HPDF_STATUS  detail_no,
        void     *user_data)
{
  printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
        (HPDF_UINT)detail_no);
  longjmp(env, 1);
}
int
main (int argc, char **argv)
{
  HPDF_Doc pdf;
  HPDF_Font font;
  HPDF_Page page;
  char fname[256];
  HPDF_REAL tw;
  strcpy (fname, argv[0]);
  strcat (fname, ".pdf");
  pdf = HPDF_New (error_handler, NULL);
  if (!pdf) {
    printf ("error: cannot create PdfDoc object\n");
    return 1;
  }
  if (setjmp(env)) {
    HPDF_Free (pdf);
    return 1;
  }
  /* create default-font */
  font = HPDF_GetFont (pdf, "Helvetica", NULL);
  /* add a new page object. */
  page = HPDF_AddPage (pdf);
  HPDF_Page_SetSize (page, HPDF_PAGE_SIZE_B5, HPDF_PAGE_LANDSCAPE);
  HPDF_Page_BeginText (page);
  HPDF_Page_SetFontAndSize (page, font, 20);
  tw = HPDF_Page_TextWidth (page, text);
  HPDF_Page_MoveTextPos (page, (HPDF_Page_GetWidth (page) - tw) / 2,
        (HPDF_Page_GetHeight (page) - 20) / 2);
  HPDF_Page_ShowText (page, text);
  HPDF_Page_EndText (page);
  HPDF_SetPassword (pdf, owner_passwd, user_passwd);
  /* save the document to a file */
  HPDF_SaveToFile (pdf, fname);
  /* clean up */
  HPDF_Free (pdf);
  return 0;
}
        
 हिन्दी