【问题标题】:Create small high quality PDF embedding optimized PNG?创建小型高质量 PDF 嵌入优化的 PNG?
【发布时间】:2017-03-01 11:25:53
【问题描述】:

我正在尝试创建一个小型 PDF 文件,在 3 页 PDF 上嵌入一个显示为页眉和页脚的优化 PNG 图像(相同的图像必须在 PDF 中出现 6 倍)

我优化的 PNG 图片只有 2.3KB。它看起来很锋利。

libreoffice 失败

当我仅将 2.3KB PNG 图像的一个实例插入到仅包含文本的 Libreoffice Writer 文档中,然后导出为 PDF 时,我可以看到图像被重新压缩为 JPG,生成的 PDF 文件在之后增长了大约 40KB添加图像。它也失去了质量,PNG 也得到了 JPG 的模糊边缘。

如果我右键单击图像并选择压缩,则无法禁用重新压缩图像(它已经比 libreoffice 优化得更好)我尝试将压缩级别设置为 0、1、9 等。选择JPG,没有调整大小,无损等,但没有改进。

wkhtmltopdf 失败

我也尝试制作一个测试页面并使用 wkhtml2pdf,但它做了同样的事情。添加低质量标志没有任何区别。

PDF 规范建议支持 PNG?

通过浏览PDF spec,似乎支持PNG图像。

即使是纯文本 PDF 文件也大得惊人

令人失望的是,当我获取一个 7KB 的 HTML 文件时,它基本上只是 <html><body><p>foo...</p><p>bar...</p>(只有大约 15 段),没有 CSS。生成的 2 页 PDF 文件为 30KB。为什么一个 7kb(几乎是纯文本)的文件会变成 30kb 的 PDF?

建议?

有人可以建议如何在 Linux 中制作一个小的 PDF 文件吗? 我需要包含 7KB 的文本并将一张 PNG 图片重复 6 次。

手动或编程。我会尽我所能。

【问题讨论】:

    标签: pdf-generation wkhtmltopdf export-to-pdf libreoffice-writer


    【解决方案1】:

    PDF 规范建议支持 PNG?

    PNG 本身不被支持; PDF 允许按原样嵌入 JPEG 图像,但不允许嵌入 PNG 图像。然而,PDF 确实借用了 PNG 格式的一组特性。

    rinohtype(完全披露:我是作者)尝试将尽可能多的 PNG 图像原样嵌入到 PDF 中。例如,这确实涉及一些比特处理以将 Alpha 通道与颜色数据分开,但不执行图像的重新编码。它(尚)不支持隔行扫描的 PNG。

    rinohtype 应该可以做你想做的事情。但请注意,它目前处于测试阶段,因此您可能会遇到一些错误。

    即使是纯文本 PDF 文件也大得惊人

    为使 PDF 尽可能小,请确保不要嵌入/子集任何字体。仅使用 PDF 阅读器提供的base 14 PDF fonts 中的字体。

    【讨论】:

      【解决方案2】:

      你想要的肯定是可以实现的。关于图像质量,我建议您将图像大小设置为您希望它在 PDF 中实际显示的大小的两倍,以使其看起来清晰。

      至于大小,我刚刚在我的 PDF 编写器模块 (WIP..) 中修改了一个测试,以在 PDF 中包含 7.2K png,200px x 70px,两次并且 PDF 以 6.8K 8) .包含的文字不多,但更多的文字只会增加它的价值+一小部分。

      你可以在这里看到模块和原始测试.. https://github.com/DoccaPDF/docca-pdf-writer/blob/master/src/tests/writer.js#L40 该测试在 PDF 中添加了约 112K 的图像,并生成了 103K 的 PDF。

      当然不是所有的图片都是一样的,所以你的里程可能会有所不同..

      *图像实际上只添加到 PDF 中一次,但会显示多次。

      【讨论】:

        猜你喜欢
        • 2017-06-11
        • 2013-10-01
        • 2020-10-12
        • 2022-07-29
        • 1970-01-01
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多