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

LibHaru

 
 

Open Source C++-bibliotheek voor pdf-documenten

Genereer, bewerk, manipuleer en converteer PDF-bestanden via de Open Source C++ API.

LibHaru is een open source C++-bibliotheek waarmee softwareontwikkelaars PDF-bestandsindelingen kunnen genereren. Momenteel staat de API het lezen of bewerken van bestaande PDF-documenten niet toe. Met behulp van de API kunt u een PDF-bestand genereren - tekst, regels en annotaties erin toevoegen. Verder kunt u ook afbeeldingen in PNG- en JPEG-indeling aan het document toevoegen. LibHaru maakt het ook mogelijk het PDF-document te comprimeren met het deflate-decode-formaat en genereert versleutelde PDF-documenten.

LibHaru is ANSI-C geschreven en kan zowel als statische bibliotheek als gedeelde bibliotheek werken. Om het te gebruiken met een C++ programma kun je het compileren met elke C++ compiler en het gebruiken als een statische bibliotheek.

Previous Next

Aan de slag met LibHaru

LibHaru is geschreven in ANSI-C en om het met C++ te gebruiken, kunt u het compileren met elke compatibele C++-compiler. Allereerst kunt u de nieuwste versie van de API downloaden en uitpakken. Er zijn verschillende soorten makefile, voor elke compiler, in de scriptmap. Bouw de bibliotheek met een geschikte makefile.

Er zijn verschillende soorten makefile, voor elke compiler, in de scriptmap. Bouw de bibliotheek met een geschikte makefile.

Bouw de bibliotheek voor compiler

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

C++-bibliotheek om PDF-bestandsindeling te genereren

LibHaru heeft een reeks functies geleverd waarmee softwareontwikkelaars PDF-bestandsindelingen kunnen genereren. Met behulp van de API kunt u een nieuw PDF-document maken, documentobjectkenmerken instellen, een nieuwe pagina maken, paginaobject instellen, paginabeschrijving instellen en het document opslaan in een bestand of een geheugenstroom.

Afbeeldingen insluiten in PDF met C++

LibHaru stelt softwareontwikkelaars in staat om JPEG- en PNG-afbeeldingen in PDF-documenten in te sluiten. Met behulp van de API kunt u afbeeldingsgrootte, breedte, hoogte, bits per component en kleurruimte krijgen. Verder kunt u een kleurmasker en maskerafbeelding instellen voor de ingesloten afbeelding.

Maak gecodeerde PDF-bestanden met behulp van C++ API

Versleuteling is een zeer nuttig mechanisme waarmee informatie kan worden gecodeerd in geheime code die de ware betekenis van de informatie verbergt. Met de open source bibliotheek LibHaru kunnen softwareontwikkelaars versleutelde PDF-bestanden maken zonder externe afhankelijkheden.

Maak gecodeerde PDF-bestanden 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;
}
        
 Dutch