LibHaru
Библиотека C++ с открытым исходным кодом для PDF-документов
Создавайте, редактируйте, манипулируйте и конвертируйте PDF-файлы с помощью C++ API с открытым исходным кодом.
LibHaru — это библиотека C++ с открытым исходным кодом, которая позволяет разработчикам программного обеспечения создавать файлы в формате PDF. В настоящее время API не позволяет читать или редактировать существующие PDF-документы. Используя API, вы можете создать PDF-файл — добавить в него текст, строки и аннотации. Кроме того, вы также можете добавлять в документ изображения в формате PNG и JPEG. LibHaru также позволяет сжимать PDF-документ в формате deflate-decode и создавать зашифрованные PDF-документы.
LibHaru написана на ANSI-C и может работать как со статической библиотекой, так и с разделяемой библиотекой. Чтобы использовать его с программой C++, вы можете скомпилировать его с помощью любого компилятора C++ и использовать как статическую библиотеку.
Начало работы с LibHaru
LibHaru написан на ANSI-C, и чтобы использовать его с C++, вы можете скомпилировать его с помощью любого совместимого компилятора C++. Прежде всего, вы можете загрузить и извлечь последнюю версию API. Для каждого компилятора в каталоге сценариев есть несколько типов make-файлов. Соберите библиотеку с соответствующим make-файлом.
Для каждого компилятора в каталоге сценариев есть несколько типов make-файлов. Соберите библиотеку с соответствующим make-файлом.
Соберите библиотеку для компилятора
//Microsoft VC++ Compiler
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC
Библиотека C++ для создания формата файла PDF
LibHaru предоставляет набор функций, которые позволяют разработчикам программного обеспечения создавать файлы в формате PDF. Используя API, вы можете создать новый PDF-документ, установить атрибуты объекта документа, создать новую страницу, установить объект страницы, установить описание страницы и сохранить документ в файл или поток памяти.
Встраивание изображений в PDF с помощью C++
LibHaru позволяет разработчикам программного обеспечения встраивать изображения JPEG и PNG в документы PDF. Используя API, вы можете получить размер изображения, ширину, высоту, количество бит на компонент и цветовое пространство. Кроме того, вы можете установить цветовую маску и маску изображения для встроенного изображения.
Создавайте зашифрованные PDF-файлы с помощью C++ API
Шифрование — очень полезный механизм, позволяющий кодировать информацию в секретный код, скрывающий истинное значение информации. Библиотека с открытым исходным кодом LibHaru позволяет разработчикам программного обеспечения создавать зашифрованные PDF-файлы без каких-либо внешних зависимостей.
Создание зашифрованных PDF-файлов с помощью 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;
}