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

LibHaru

 
 

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

Genere, edite, manipule y convierta archivos PDF a través de la API C++ de código abierto.

LibHaru es una biblioteca C++ de código abierto que permite a los desarrolladores de software generar archivos en formato PDF. Actualmente, la API no permite leer ni editar documentos PDF existentes. Con la API, puede generar un archivo PDF: agregue texto, líneas y anotaciones en él. Además, también puede agregar imágenes de formato PNG y JPEG en el documento. LibHaru también permite comprimir el documento PDF con el formato deflate-decode y genera documentos PDF encriptados.

LibHaru está escrito en ANSI-C y puede funcionar como biblioteca estática y biblioteca compartida. Para usarlo con un programa de C++, puede compilarlo con cualquier compilador de C++ y usarlo como una biblioteca estática.

Previous Next

Primeros pasos con LibHaru

LibHaru está escrito en ANSI-C y para usarlo con C++, puede compilarlo con cualquier compilador de C++ compatible. En primer lugar, puede descargar y extraer la última versión de la API. Hay varios tipos de archivos MAKE, para cada compilador, en el directorio del script. Cree la biblioteca con un archivo MAKE apropiado.

Hay varios tipos de archivos MAKE, para cada compilador, en el directorio del script. Cree la biblioteca con un archivo MAKE adecuado.

Construya la biblioteca para el compilador

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

Biblioteca C++ para generar formato de archivo PDF

LibHaru ha proporcionado un conjunto de funciones que permite a los desarrolladores de software generar archivos en formato PDF. Con la API, puede crear un nuevo documento PDF, establecer los atributos del objeto del documento, crear una nueva página, establecer el objeto de la página, establecer la descripción de la página y guardar el documento en un archivo o en un flujo de memoria.

Incrustar imágenes en PDF usando C++

LibHaru permite a los desarrolladores de software incrustar imágenes JPEG y PNG en documentos PDF. Con la API, puede obtener el tamaño de la imagen, el ancho, la altura, los bits por componente y el espacio de color. Además, puede establecer una máscara de color y una imagen de máscara para la imagen incrustada.

Cree archivos PDF cifrados con la API de C++

El cifrado es un mecanismo muy útil que permite codificar información en un código secreto que oculta el verdadero significado de la información. La biblioteca de código abierto LibHaru permite a los desarrolladores de software crear archivos PDF cifrados sin dependencias externas.

Crear archivos PDF cifrados a través de 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;
}
        
 Español