LibHaru
Atvirojo kodo C++ biblioteka PDF dokumentams
Generuokite, redaguokite, manipuliuokite ir konvertuokite PDF failus naudodami atvirojo kodo C++ API.
LibHaru yra atvirojo kodo C++ biblioteka, leidžianti programinės įrangos kūrėjams generuoti PDF failo formatą, šiuo metu API neleidžia skaityti ar redaguoti esamų PDF dokumentų. Naudodami API galite generuoti PDF failą – pridėti teksto, eilučių ir komentarų. Be to, į dokumentą taip pat galite pridėti PNG ir JPEG formato vaizdų. LibHaru taip pat leidžia suspausti PDF dokumentą defliacijos iššifravimo formatu ir generuoja užšifruotus PDF dokumentus.
„LibHaru“ yra parašyta ANSI-C ir gali veikti tiek kaip statinė, tiek kaip bendrai naudojama biblioteka. Norėdami naudoti jį su C++ programa, galite jį kompiliuoti su bet kuriuo C++ kompiliatoriumi ir naudoti kaip statinę biblioteką.
Darbo su LibHaru pradžia
„LibHaru“ yra parašyta ANSI-C ir norėdami jį naudoti su C++, galite jį kompiliuoti naudodami bet kurį suderinamą C++ kompiliatorių. Visų pirma, galite atsisiųsti ir išskleisti naujausią API versiją. Scenarijų kataloge yra kelių rūšių makefile kiekvienam kompiliatoriui. Sukurkite biblioteką naudodami atitinkamą make-file.
Scenarijų kataloge yra kelių rūšių makefile kiekvienam kompiliatoriui. Sukurkite biblioteką naudodami atitinkamą make-file.
Sukurkite kompiliatoriaus biblioteką
//Microsoft VC++ Compiler
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC
C++ biblioteka PDF failo formatui generuoti
„LibHaru“ pateikė funkcijų rinkinį, leidžiantį programinės įrangos kūrėjams generuoti PDF failo formatą. Naudodami API galite sukurti naują PDF dokumentą, nustatyti dokumento objekto atributus, sukurti naują puslapį, nustatyti puslapio objektą, nustatyti puslapio aprašymą ir įrašyti dokumentą į failą arba atminties srautą.
Įterpkite vaizdus į PDF naudodami C++
LibHaru leidžia programinės įrangos kūrėjams įterpti JPEG ir PNG vaizdus į PDF dokumentus. Naudodami API galite gauti vaizdo dydį, plotį, aukštį, bitus kiekvienam komponentui ir spalvų erdvę. Be to, įterptam vaizdui galite nustatyti spalvų kaukę ir kaukės vaizdą.
Sukurkite užšifruotus PDF failus naudodami C++ API
Šifravimas yra labai naudingas mechanizmas, leidžiantis užkoduoti informaciją į slaptą kodą, kuris paslepia tikrąją informacijos prasmę. Atvirojo kodo biblioteka LibHaru leidžia programinės įrangos kūrėjams kurti užšifruotus PDF failus be jokių išorinių priklausomybių.
Sukurkite užšifruotus PDF failus naudodami 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;
}