首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的libharu与.png图像过大?

为什么我的libharu与.png图像过大?
EN

Stack Overflow用户
提问于 2013-09-02 08:19:55
回答 2查看 2.2K关注 0票数 3

我正在使用C++中的libharu创建一个pdf (编译为.cgi),其中包含了.png图像。代码很好,但我的pdf太大了。每页都有一个约30 in的图像和大约4个文字字符在libharu的系统字体。如果我打开一个25 my的20页输出文件,并将它“打印”到我的操作系统中的一个文件中,它就变成256 no左右,图像没有任何可见的变化。

我认为这个问题与libharu有关,因为这个家伙也看到了,这里。他使用php,libharu作为编译的.cgi。(我的C++代码也编译了.cgi,链接到libharu)。

另一个在这里堆栈溢出也看到了libharu的大小问题,但是他的问题并没有提到与.png有任何关系,所以它可能是无关的。

供参考的代码:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-04 23:33:31

是的,我不知道如何删除一个问题,但也许这个信息将对其他人有用。

我可能和这里的同事有同样的问题,在这里我重复了这个答案。

我需要做的是启用对.pdf的压缩,而我还没有这样做。

文档链接

C代码:

代码语言:javascript
复制
HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);

这是因为我没有做足够的研究来知道.pdf格式本机不支持.png,或者如果它已经被更新了,那么libharu仍然不支持。因此,这个选项告诉libharu使用zlib压缩它能够压缩的所有东西,包括您的图像。

实现并不完美(如果压缩输出.pdf,仍然会看到大小差异),但对于我的用例来说,它是可以接受的。

票数 2
EN

Stack Overflow用户

发布于 2017-01-05 18:38:52

如果不需要PDF中的全尺寸图像,可以使用GDI+ API将图像缩小为缩略图,大小与希望图像在PDF中显示的大小相等。

将缩放的PNG保存到临时文件,并将缩略图PNG传递给Haru PDF。这将减少PDF文件的大小。

当观看者放大时,图像将被像素化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18568555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档