LibHaru
Avoimen lähdekoodin C++-kirjasto PDF-dokumenteille
Luo, muokkaa, manipuloi ja muunna PDF-tiedostoja avoimen lähdekoodin C++ API:n kautta.
LibHaru on avoimen lähdekoodin C++-kirjasto, jonka avulla ohjelmistokehittäjät voivat luoda PDF-tiedostomuotoa. Tällä hetkellä API ei salli olemassa olevien PDF-dokumenttien lukemista tai muokkaamista. API:n avulla voit luoda PDF-tiedoston - lisätä siihen tekstiä, rivejä ja huomautuksia. Lisäksi voit lisätä asiakirjaan myös PNG- ja JPEG-muotoisia kuvia. LibHaru mahdollistaa myös PDF-dokumentin pakkaamisen deflate-decode-muodossa ja luo salattuja PDF-dokumentteja.
LibHaru on kirjoitettu ANSI-C ja se voi toimia sekä staattisena kirjastona että jaettuna kirjastona. Jos haluat käyttää sitä C++-ohjelman kanssa, voit kääntää sen millä tahansa C++-kääntäjällä ja käyttää sitä staattisena kirjastona.
LibHarun käytön aloittaminen
LibHaru on kirjoitettu ANSI-C:llä ja käyttääksesi sitä C++:n kanssa, voit kääntää sen millä tahansa yhteensopivalla C++-kääntäjällä. Ensinnäkin voit ladata ja purkaa API:n uusimman version. Skriptihakemistossa on useita erilaisia makefile-tiedostoja jokaiselle kääntäjälle. Rakenna kirjasto sopivalla make-tiedostolla.
Skriptihakemistossa on useita erilaisia makefile-tiedostoja jokaiselle kääntäjälle. Rakenna kirjasto sopivalla make-tiedostolla.
Rakenna Library for Compiler
//Microsoft VC++ Compiler
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC
C++-kirjasto PDF-tiedostomuodon luomiseen
LibHaru on toimittanut joukon ominaisuuksia, joiden avulla ohjelmistokehittäjät voivat luoda PDF-tiedostomuotoja. API:n avulla voit luoda uuden PDF-dokumentin, asettaa dokumenttiobjektin attribuutteja, luoda uuden sivun, asettaa sivuobjektin, asettaa sivun kuvauksen ja tallentaa asiakirjan tiedostoon tai muistivirtaan.
Upota kuvat PDF-tiedostoon C++:lla
LibHarun avulla ohjelmistokehittäjät voivat upottaa JPEG- ja PNG-kuvia PDF-dokumentteihin. API:n avulla saat kuvan koon, leveyden, korkeuden, bittejä komponenttikohtaisesti ja väriavaruuden. Lisäksi voit määrittää upotetulle kuvalle värimaskin ja maskikuvan.
Luo salattuja PDF-tiedostoja C++ API:lla
Salaus on erittäin hyödyllinen mekanismi, jonka avulla tiedot voidaan koodata salaiseksi koodiksi, joka piilottaa tiedon todellisen merkityksen. Avoimen lähdekoodin kirjasto LibHaru antaa ohjelmistokehittäjille mahdollisuuden luoda salattuja PDF-tiedostoja ilman ulkoisia riippuvuuksia.
Luo salattuja PDF-tiedostoja C++:n kautta
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;
}