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. Има няколко вида makefile, за всеки компилатор, в директорията на скрипта. Създайте библиотеката с подходящ makefile.

Има няколко вида makefile, за всеки компилатор, в директорията на скрипта. Създайте библиотеката с подходящ makefile.

Създайте библиотеката за компилатор

 //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;
}
        
 Български