1. Продукти
  2.   PDF
  3.   C++
  4.   LibHaru

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++ і використовувати як статичну бібліотеку.

Previous Next

Початок роботи з 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;
}
        
 Українська