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.
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;
}