1. Des produits
  2.   PDF
  3.   C++
  4.   LibHaru

LibHaru

 
 

Bibliothèque C++ Open Source pour les documents PDF

Générez, modifiez, manipulez et convertissez des fichiers PDF via l'API Open Source C++.

LibHaru est une bibliothèque C++ open source qui permet aux développeurs de logiciels de générer un format de fichier PDF. Actuellement, l'API ne permet pas de lire ou de modifier des documents PDF existants. À l'aide de l'API, vous pouvez générer un fichier PDF - y ajouter du texte, des lignes et des annotations. De plus, vous pouvez également ajouter des images au format PNG et JPEG dans le document. LibHaru permet également de compresser le document PDF avec le format deflate-decode et génère des documents PDF cryptés.

LibHaru est écrit ANSI-C et peut fonctionner à la fois comme bibliothèque statique et comme bibliothèque partagée. Pour l'utiliser avec un programme C++, vous pouvez le compiler avec n'importe quel compilateur C++ et l'utiliser comme bibliothèque statique.

Previous Next

Premiers pas avec LibHaru

LibHaru est écrit en ANSI-C et pour l'utiliser avec C++, vous pouvez le compiler avec n'importe quel compilateur C++ compatible. Tout d'abord, vous pouvez télécharger et extraire la dernière version de l'API. Il existe plusieurs types de makefile, pour chaque compilateur, dans le répertoire des scripts. Construisez la bibliothèque avec un makefile approprié.

Il existe plusieurs types de makefile, pour chaque compilateur, dans le répertoire des scripts. Construisez la bibliothèque avec un makefile approprié.

Construire la bibliothèque pour le compilateur

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

Bibliothèque C++ pour générer le format de fichier PDF

LibHaru a fourni un ensemble de fonctionnalités permettant aux développeurs de logiciels de générer un format de fichier PDF. À l'aide de l'API, vous pouvez créer un nouveau document PDF, définir des attributs d'objet de document, créer une nouvelle page, définir un objet de page, définir une description de page et enregistrer le document dans un fichier ou un flux de mémoire.

Incorporer des images dans un PDF à l'aide de C++

LibHaru permet aux développeurs de logiciels d'intégrer des images JPEG et PNG dans des documents PDF. En utilisant l'API, vous pouvez obtenir la taille, la largeur, la hauteur, les bits par composant et l'espace colorimétrique de l'image. De plus, vous pouvez définir un masque de couleur et une image de masque pour l'image intégrée.

Créer des fichiers PDF cryptés à l'aide de l'API C++

Le cryptage est un mécanisme très utile qui permet d'encoder des informations dans un code secret qui masque la véritable signification de l'information. La bibliothèque open source LibHaru permet aux développeurs de logiciels de créer des fichiers PDF cryptés sans aucune dépendance externe.

Créer des fichiers PDF cryptés 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;
}
        
 Français