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++ ולהשתמש בו כספרייה סטטית.
תחילת העבודה עם 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;
}