LibHaru
Open Source C++ Library för PDF-dokument
Generera, redigera, manipulera och konvertera PDF-filer via Open Source C++ API.
LibHaru är ett C++-bibliotek med öppen källkod som gör det möjligt för mjukvaruutvecklare att generera PDF-filformat, för närvarande tillåter API:et inte att läsa eller redigera befintliga PDF-dokument. Med hjälp av API:et kan du skapa PDF-filer - lägg till text, rader och kommentarer i den. Dessutom kan du också lägga till bilder i PNG- och JPEG-format i dokumentet. LibHaru tillåter också komprimering av PDF-dokumentet med deflate-decode-formatet och genererar krypterade PDF-dokument.
LibHaru är skrivet ANSI-C och kan fungera både som statiskt bibliotek och delat bibliotek. För att använda det med ett C++-program kan du kompilera det med vilken C++-kompilator som helst och använda det som ett statiskt bibliotek.
Komma igång med LibHaru
LibHaru är skriven i ANSI-C och för att använda den med C++ kan du kompilera den med vilken kompatibel C++-kompilator som helst. Först och främst kan du ladda ner och extrahera den senaste versionen av API:et. Det finns flera typer av make-filer, för varje kompilator, i skriptkatalogen. Bygg biblioteket med en lämplig makefil.
Det finns flera typer av make-filer, för varje kompilator, i skriptkatalogen. Bygg biblioteket med en lämplig makefil.
Bygg biblioteket för kompilatorn
//Microsoft VC++ Compiler
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC
C++-bibliotek för att generera PDF-filformat
LibHaru har tillhandahållit en uppsättning funktioner som gör det möjligt för mjukvaruutvecklare att generera PDF-filformat. Med hjälp av API:et kan du skapa ett nytt PDF-dokument, ställa in dokumentobjektattribut, skapa en ny sida, ställa in sidobjekt, ställa in sidbeskrivning och spara dokumentet till en fil eller en minnesström.
Bädda in bilder i PDF med C++
LibHaru gör det möjligt för mjukvaruutvecklare att bädda in JPEG- och PNG-bilder i PDF-dokument. Med hjälp av API:et kan du få bildstorlek, bredd, höjd, bitar per komponent och färgrymd. Dessutom kan du ställa in en färgmask och maskbild för den inbäddade bilden.
Skapa krypterade PDF-filer med C++ API
Kryptering är en mycket användbar mekanism som gör det möjligt att koda information till hemlig kod som döljer informationens sanna betydelse. Biblioteket med öppen källkod LibHaru gör det möjligt för mjukvaruutvecklare att skapa krypterade PDF-filer utan några externa beroenden.
Skapa krypterade PDF-filer via 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;
}