1. 产品
  2.   PDF格式
  3.   C++
  4.   LibHaru

LibHaru

 
 

用于 PDF 文档的开源 C++ 库

通过开源 C++ API 生成、编辑、操作和转换 PDF 文件。

LibHaru 是一个开源 C++ 库,使软件开发人员能够生成 PDF 文件格式,目前,该 API 不允许读取或编辑现有的 PDF 文档。使用 API,您可以生成 PDF 文件 - 在其中添加文本、行和注释。此外,您还可以在文档中添加 PNG 和 JPEG 格式的图像。 LibHaru 还允许使用 deflate-decode 格式压缩 PDF 文档并生成加密的 PDF 文档。

LibHaru 是 ANSI-C 编写的,可以用作静态库和共享库。要将它与 C++ 程序一起使用,您可以使用任何 C++ 编译器对其进行编译并将其用作静态库。

Previous Next

开始使用 LibHaru

LibHaru 是用 ANSI-C 编写的,要与 C++ 一起使用,您可以使用任何兼容的 C++ 编译器对其进行编译。首先,您可以下载并提取最新版本的 API。对于每个编译器,在脚本目录中有几种生成文件。使用适当的 makefile 构建库。

对于每个编译器,在脚本目录中有几种生成文件。使用适当的 makefile 构建库。

为编译器构建库

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

生成 PDF 文件格式的 C++ 库

LibHaru 提供了一组功能,使软件开发人员能够生成 PDF 文件格式。使用 API,您可以创建新的 PDF 文档、设置文档对象属性、创建新页面、设置页面对象、设置页面描述并将文档保存到文件或内存流。

使用 C++ 在 PDF 中嵌入图像

LibHaru 使软件开发人员能够在 PDF 文档中嵌入 JPEG 和 PNG 图像。使用 API,您可以获得图像大小、宽度、高度、每个组件的位数和颜色空间。此外,您可以为嵌入图像设置颜色蒙版和蒙版图像。

使用 C++ API 创建加密的 PDF 文件

加密是一种非常有用的机制,它允许将信息编码为隐藏信息真实含义的密码。开源库 LibHaru 使软件开发人员能够创建加密的 PDF 文件,而无需任何外部依赖。

通过 C++ 创建加密的 PDF 文件

 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;
}
        
 中国人