1. Produtos
  2.   PDF
  3.   C++
  4.   LibHaru

LibHaru

 
 

Biblioteca C++ de código aberto para documentos PDF

Gere, edite, manipule e converta arquivos PDF por meio da API C++ de código aberto.

LibHaru é uma biblioteca C++ de código aberto que permite aos desenvolvedores de software gerar o formato de arquivo PDF, atualmente, a API não permite a leitura ou edição de documentos PDF existentes. Usando a API, você pode gerar um arquivo PDF - adicione texto, linhas e anotações nele. Além disso, você também pode adicionar imagens de formato PNG e JPEG no documento. LibHaru também permite compactar o documento PDF com o formato de decodificação de deflação e gera documentos PDF criptografados.

LibHaru é escrito em ANSI-C e pode funcionar tanto como biblioteca estática quanto como biblioteca compartilhada. Para usá-lo com um programa C++, você pode compilá-lo com qualquer compilador C++ e usá-lo como uma biblioteca estática.

Previous Next

Introdução ao LibHaru

LibHaru é escrito em ANSI-C e para usá-lo com C++, você pode compilá-lo com qualquer compilador C++ compatível. Em primeiro lugar, você pode baixar e extrair a versão mais recente da API. Existem vários tipos de makefile, para cada compilador, no diretório de scripts. Construa a biblioteca com um makefile apropriado.

Existem vários tipos de makefile, para cada compilador, no diretório de scripts. Construa a biblioteca com um makefile apropriado.

Construir a biblioteca para compilador

 //Microsoft VC++ Compiler 
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC

Biblioteca C++ para gerar formato de arquivo PDF

O LibHaru forneceu um conjunto de recursos que permite que os desenvolvedores de software gerem o formato de arquivo PDF. Usando a API, você pode criar um novo documento PDF, definir os atributos do objeto do documento, criar uma nova página, definir o objeto da página, definir a descrição da página e salvar o documento em um arquivo ou fluxo de memória.

Incorporar imagens em PDF usando C++

LibHaru permite que desenvolvedores de software incorporem imagens JPEG e PNG em documentos PDF. Usando a API, você pode obter o tamanho da imagem, largura, altura, bits por componente e espaço de cores. Além disso, você pode definir uma máscara de cor e uma imagem de máscara para a imagem incorporada.

Crie arquivos PDF criptografados usando a API C++

A criptografia é um mecanismo muito útil que permite codificar informações em um código secreto que oculta o verdadeiro significado da informação. A biblioteca de código aberto LibHaru permite que os desenvolvedores de software criem arquivos PDF criptografados sem dependências externas.

Crie arquivos PDF criptografados via 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;
}
        
 Português