我正在使用 C++ 中的 libharu(编译为 .cgi)创建一个包含 .png 图像的 pdf。代码很好,但我的 pdf 文件太大了。每页包含一个大约 30kb 的图像和大约 4 个 libharu 系统字体的文本字符。如果我打开一个 25mb 的 20 页输出文件并将其“打印”到我的操作系统中的一个文件中,它会变成 256kb 左右,而图像没有可见的变化。
我认为这个问题与 libharu 有关,因为这个人在这里也看到了。他使用php所以,libharu作为编译的.cgi。(我的 C++ 代码也编译为 .cgi,链接到 libharu)。
堆栈溢出的另一个人也看到了 libharu 的大小问题,但他的问题没有提到与 .png 有任何关系,因此它可能无关。
参考代码:
WorkingGraphic = HPDF_LoadPngImageFromMem ( *gPdfPtr,
PngAssets[AssetIndex], //Image data ptr
PngSizes[AssetIndex]); //data length
//Render Appropriate
HPDF_Page_DrawImage (*BlitParams->page,
WorkingGraphic,
BlitParams->OutputRect->X,
BlitParams->OutputRect->Y,
BlitParams->OutputRect->Width,
BlitParams->OutputRect->Height);
有谁知道如何驱动 libharu,以便在您使用 .png 图像时创建大小合适的 pdf?