LibHaru
Biblioteka Open Source C++ dla dokumentów PDF
Generuj, edytuj, manipuluj i konwertuj pliki PDF za pomocą interfejsu API Open Source C++.
LibHaru to biblioteka C++ typu open source, która umożliwia programistom generowanie plików w formacie PDF, obecnie API nie pozwala na czytanie ani edytowanie istniejących dokumentów PDF. Za pomocą API możesz wygenerować plik PDF - dodać do niego tekst, linie i adnotacje. Co więcej, możesz także dodać do dokumentu obrazy w formacie PNG i JPEG. LibHaru umożliwia również kompresowanie dokumentu PDF w formacie deflate-decode i generowanie zaszyfrowanych dokumentów PDF.
LibHaru jest napisany w ANSI-C i może działać zarówno jako biblioteka statyczna, jak i biblioteka współdzielona. Aby używać go z programem C++, możesz skompilować go dowolnym kompilatorem C++ i użyć jako biblioteki statycznej.
Pierwsze kroki z LibHaru
LibHaru jest napisany w ANSI-C i aby używać go z C++, możesz skompilować go dowolnym zgodnym kompilatorem C++. Przede wszystkim możesz pobrać i rozpakować najnowszą wersję API. W katalogu skryptów istnieje kilka rodzajów plików makefile dla każdego kompilatora. Zbuduj bibliotekę z odpowiednim plikiem makefile.
W katalogu skryptów istnieje kilka rodzajów plików makefile dla każdego kompilatora. Zbuduj bibliotekę z odpowiednim plikiem makefile.
Zbuduj bibliotekę dla kompilatora
//Microsoft VC++ Compiler
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC
Biblioteka C++ do generowania formatu pliku PDF
LibHaru dostarczył zestaw funkcji, które umożliwiają programistom generowanie plików w formacie PDF. Za pomocą interfejsu API można utworzyć nowy dokument PDF, ustawić atrybuty obiektu dokumentu, utworzyć nową stronę, ustawić obiekt strony, ustawić opis strony i zapisać dokument w pliku lub strumieniu pamięci.
Osadzaj obrazy w PDF za pomocą C++
LibHaru umożliwia programistom osadzanie obrazów JPEG i PNG w dokumentach PDF. Korzystając z interfejsu API, możesz uzyskać rozmiar obrazu, szerokość, wysokość, bity na komponent i przestrzeń kolorów. Ponadto można ustawić maskę kolorów i obraz maski dla osadzonego obrazu.
Twórz zaszyfrowane pliki PDF za pomocą C++ API
Szyfrowanie jest bardzo przydatnym mechanizmem, który pozwala na zakodowanie informacji w tajny kod, który ukrywa prawdziwe znaczenie informacji. Biblioteka open source LibHaru umożliwia programistom tworzenie zaszyfrowanych plików PDF bez żadnych zewnętrznych zależności.
Twórz zaszyfrowane pliki PDF za pomocą 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;
}