0

我正在尝试创建一个小型 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 规范,看起来支持 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 次。

手动或编程。在这一点上,我会尽我所能。

4

2 回答 2

2

PDF 规范建议支持 PNG?

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

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

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

即使是纯文本 PDF 文件也非常大

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

于 2017-03-01T21:49:23.473 回答
1

你想要的肯定是可以实现的。关于图像质量,我建议您将图像大小设置为您希望它在 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-03-13T13:42:46.677 回答