【发布时间】:2013-01-23 04:38:05
【问题描述】:
我搜索了但找不到类似的帖子,所以如果我错过了,我深表歉意。
我在我的 PHP 脚本的命令行中使用 WKHTMLTOPDF,它运行良好,但有一个小问题。
我的项目背景:将假医疗表格生成html页面,并将html页面转换为pdf。 html 是一个基于简单医疗表格的简单表格(就像您在医生办公室填写的表格一样)。 html 页面是表格中的所有文本,没有图像。
我的html页面成功输出到pdf文件,但是当我检查标题信息时:
obj
/Type /Catalog
/Pages 2 0 R
/Outlines 9 0 R
/PageMode /UseOutlines
/Dests <<
/__WKANCHOR_2 8 0 R
endobj
5 0 obj
<<
/Type /Page
/Parent 2 0 R
/Contents 12 0 R
/Resources 14 0 R
/Annots 15 0 R
/MediaBox [0 0 595 842]
>>
endobj
我真正需要的是将我的 HTML 作为图像存储在 PDF 中,以便标题返回为:
/Type /XObject
/Subtype /Image
/Name /Im0
/Filter [ /DCTDecode ]
/Width 1275
/Height 467
/ColorSpace 10 0 R
/BitsPerComponent 8
/Length 9 0 R
虽然我的 HTML 都是文本,但是否可以使用 WKHTMLTOPDF(或任何其他库)将我的 HTML 页面存储为 PDF 中的图像? PDF 需要专门以这种方式工作,因为我们的软件会从 PDF 中提取图像以显示为缩略图。
此时我已经编写了一个小代码 sn-p 来将我的 HTML 转换为 JPEG,然后再转换为 PDF,但我在该过程中遇到了一个完全不同的问题。
非常感谢任何帮助。我完全被困在这一点上,我乞求希望能解决这个问题。我已经阅读了 WKHTMLTOPDF 文档,但没有找到任何可行的信息。
【问题讨论】:
-
HTML-to-PDF 转换器通常不在创建 PDF 之前创建 html 的位图图像,因为这会丢失很多信息和质量。因此,恐怕您将不得不使用其他路线,分别从 html 创建一个位图,然后创建一个仅包含该位图的 PDF。
-
@mkl 感谢您的意见。这就是我害怕的,但完全理解为什么会这样。走另一条路只是一个问题,因为我失去了 8.5 x 11 的字母大小,并且需要开发一种在转换为 PDF 时调整 jpeg 大小的方法。
-
虽然非常圆润,但您可以做的另一件事是使用 GhostScript 将 PDF 转换为图像 (
> convert file.pdf file.jpg),然后将图像转换为 PDF。不确定这是否可行,或者您是否有权在服务器上安装 GS。可以肯定的是,图像的质量不会像您目前获得的 PDF 那样好。 -
另外,wkhtmltopdf 有一个兄弟; wkhtmltoimage。输出应该非常相似,但是另一个会吐出图像,而另一个会吐出 PDF 文件。因此,您可以将相同的 HTML 提供给兄弟姐妹,他们会为您吐出这两个文件 - 也就是说,如果您可以解决“我们的软件将图像从 PDF 中拉出”的问题,并让它从备用文件中拉出。如果它是您的自制软件,请让开发人员添加一些从备用来源提取图像的方法:)
-
@Nenotlep 感谢您的意见。我采取了“兄弟”路线,现在让我的脚本使用 wkhtmltoimage 将 html 转换为 jpeg,然后再转换为 pdf。输出没有太大损失——如果有的话。无论如何,我已经让我的脚本来做需要的事情。感谢大家的意见。
标签: php image pdf http-headers wkhtmltopdf