LibHaru
PDF Sənədləri üçün Açıq Mənbəli C++ Kitabxanası
Açıq Mənbə C++ API vasitəsilə PDF Fayllarını Yaradın, Redaktə edin, Manipulyasiya edin və Konvertasiya edin.
LibHaru, proqram tərtibatçılarına PDF fayl formatını yaratmağa imkan verən açıq mənbəli C++ kitabxanasıdır, hazırda API mövcud PDF sənədlərini oxumağa və ya redaktə etməyə imkan vermir. API-dən istifadə edərək siz PDF faylı yarada bilərsiniz - ona mətn, sətir və qeydlər əlavə edin. Bundan əlavə, sənədə PNG və JPEG formatında şəkillər əlavə edə bilərsiniz. LibHaru həmçinin PDF sənədini deflate-decode formatı ilə sıxmağa imkan verir və şifrələnmiş PDF sənədləri yaradır.
LibHaru ANSI-C ilə yazılmışdır və həm statik kitabxana, həm də paylaşılan kitabxana kimi işləyə bilər. Onu C++ proqramı ilə istifadə etmək üçün onu istənilən C++ kompilyatoru ilə tərtib edib statik kitabxana kimi istifadə edə bilərsiniz.
LibHaru ilə işə başlamaq
LibHaru ANSI-C-də yazılmışdır və onu C++ ilə istifadə etmək üçün onu istənilən uyğun C++ kompilyatoru ilə tərtib edə bilərsiniz. Əvvəlcə API-nin ən son versiyasını yükləyə və çıxara bilərsiniz. Skript kataloqunda hər kompilyator üçün bir neçə növ makefile var. Kitabxananı müvafiq makefile ilə qurun.
Skript kataloqunda hər kompilyator üçün bir neçə növ makefile var. Kitabxananı müvafiq makefile ilə qurun.
Kompilyator üçün Kitabxana yaradın
//Microsoft VC++ Compiler
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC
PDF Fayl Formatını Yaratmaq üçün C++ Kitabxanası
LibHaru proqram tərtibatçılarına PDF fayl formatını yaratmağa imkan verən bir sıra funksiyalar təqdim etmişdir. API-dən istifadə edərək siz yeni PDF sənədi yarada, sənəd obyektinin atributlarını təyin edə, yeni səhifə yarada, səhifə obyekti təyin edə, səhifənin təsvirini təyin edə və sənədi faylda və ya yaddaş axınında saxlaya bilərsiniz.
C++ istifadə edərək Şəkilləri PDF-ə yerləşdirin
LibHaru proqram tərtibatçılarına JPEG və PNG şəkillərini PDF sənədlərinə yerləşdirməyə imkan verir. API-dən istifadə edərək, təsvir ölçüsünü, enini, hündürlüyünü, hər bir komponent üçün bitləri və rəng məkanını əldə edə bilərsiniz. Bundan əlavə, siz daxil edilmiş təsvir üçün rəngli maska və maska şəkli təyin edə bilərsiniz.
C++ API istifadə edərək Şifrələnmiş PDF Faylları yaradın
Şifrələmə məlumatın əsl mənasını gizlədən məxfi koda kodlaşdırmağa imkan verən çox faydalı mexanizmdir. Açıq mənbə kitabxanası LibHaru proqram tərtibatçılarına heç bir xarici asılılıq olmadan şifrələnmiş PDF faylları yaratmağa imkan verir.
C++ vasitəsilə Şifrələnmiş PDF Faylları yaradın
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;
}