我正在使用C++中的libharu创建一个pdf (编译为.cgi),其中包含了.png图像。代码很好,但我的pdf太大了。每页都有一个约30 in的图像和大约4个文字字符在libharu的系统字体。如果我打开一个25 my的20页输出文件,并将它“打印”到我的操作系统中的一个文件中,它就变成256 no左右,图像没有任何可见的变化。
我认为这个问题与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?
发布于 2013-09-04 23:33:31
发布于 2017-01-05 18:38:52
如果不需要PDF中的全尺寸图像,可以使用GDI+ API将图像缩小为缩略图,大小与希望图像在PDF中显示的大小相等。
将缩放的PNG保存到临时文件,并将缩略图PNG传递给Haru PDF。这将减少PDF文件的大小。
当观看者放大时,图像将被像素化。
https://stackoverflow.com/questions/18568555
复制相似问题