1. מוצרים
  2.   PDF
  3.   C++
  4.   LibHaru

LibHaru

 
 

ספריית C++ בקוד פתוח עבור מסמכי PDF

צור, ערוך, עשה מניפולציה והמרה של קובצי PDF באמצעות API של קוד פתוח C++.

LibHaru היא ספריית קוד פתוח C++ המאפשרת למפתחי תוכנה ליצור פורמט קובץ PDF, נכון לעכשיו, ה-API אינו מאפשר קריאה או עריכה של מסמכי PDF קיימים. באמצעות ה-API תוכלו ליצור קובץ PDF - להוסיף בתוכו טקסט, שורות והערות. יתר על כן, אתה יכול גם להוסיף תמונות בפורמט PNG ו-JPEG במסמך. LibHaru מאפשרת גם דחיסת מסמך PDF בפורמט defle-decode ויצירת מסמכי PDF מוצפנים.

LibHaru כתוב ANSI-C ויכול לעבוד גם כספרייה סטטית וגם כספרייה משותפת. כדי להשתמש בו עם תוכנית C++ אתה יכול לקמפל אותו עם כל מהדר C++ ולהשתמש בו כספרייה סטטית.

Previous Next

תחילת העבודה עם LibHaru

LibHaru כתוב ב-ANSI-C וכדי להשתמש בו עם C++, אתה יכול להדר אותו עם כל מהדר C++ תואם. קודם כל, אתה יכול להוריד ולחלץ את הגרסה העדכנית ביותר של ה-API. ישנם מספר סוגים של makefile, עבור כל מהדר, בספריית הסקריפטים. בנה את הספרייה עם makefile מתאים.

ישנם מספר סוגים של makefile, עבור כל מהדר, בספריית הסקריפטים. בנה את הספרייה עם makefile מתאים.

בנה את הספרייה עבור המהדר

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

ספריית C++ ליצירת פורמט קובץ PDF

LibHaru סיפקה סט של תכונות המאפשרות למפתחי תוכנה ליצור פורמט קובץ PDF. באמצעות ה-API תוכלו ליצור מסמך PDF חדש, להגדיר תכונות של אובייקט מסמך, ליצור עמוד חדש, להגדיר אובייקט עמוד, להגדיר תיאור עמוד ולשמור את המסמך בקובץ או בזרם זיכרון.

הטמע תמונות ב-PDF באמצעות C++

LibHaru מאפשרת למפתחי תוכנה להטמיע תמונות JPEG ו-PNG במסמכי PDF. באמצעות ה-API תוכלו לקבל גודל תמונה, רוחב, גובה, סיביות לכל רכיב ומרחב צבע. יתר על כן, אתה יכול להגדיר מסכת צבע ותמונת מסכה עבור התמונה המוטבעת.

צור קבצי PDF מוצפנים באמצעות C++ API

הצפנה היא מנגנון שימושי מאוד המאפשר קידוד מידע לקוד סודי המסתיר את המשמעות האמיתית של המידע. ספריית הקוד הפתוח LibHaru מאפשרת למפתחי תוכנה ליצור קבצי PDF מוצפנים ללא כל תלות חיצונית.

צור קבצי PDF מוצפנים באמצעות C++

 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;
}
        
 עִברִית