【问题标题】:wkhtmltopdf generates from PDF format on Ubuntu without X Serverwkhtmltopdf 在没有 X Server 的 Ubuntu 上从 PDF 格式生成
【发布时间】:2015-12-28 12:13:39
【问题描述】:


可以在wkhtmltopdf中设置生成PDF的格式吗?
从我的电脑wkhtmltopdf 生成格式"PDF-1.4"

但是远程 Ubuntu 14.04 服务器使用“虚拟”X 服务器生成 pdf,使用 xvfb 提供格式 PDF-0:


唯一的问题是在 Chrome 中打开生成的 pdf 文件 :)
Chrome 无法打开PDF-0

谢谢

【问题讨论】:

  • wkhtmltopdf 仅从版本 0.12.1 开始正确设置 creator 字段(特别是自 this 提交)。所以我怀疑您必须在远程服务器上运行旧版本。有机会更新吗? - 不过,我相信根本原因实际上是在QPrinter 内部,所以您的问题也可能源于您正在运行的不同 QT 版本。您能否发布生成的 PDF 的第一行,因为它在文本编辑器中显示?它对 PDF 版本进行编码。
  • 我的本地机器和服务器上运行的版本是一样的。 0.12.2.4 正好
  • 这使我们得出结论,您的问题很可能植根于 QT 内部(或者甚至在更下游的某个地方)。您可以更新服务器上的 QT 库并重试吗?
  • 您能否为您的问题创建一个简短的答案,以便我提供赏金。最终在服务器上安装了错误的版本。我的错。
  • 我不会认为这是你的“错误”。正如我在下面的answer 中所述,wkhtmltopdf 有责任向您唠叨关于拥有旧 QT 版本的工具...

标签: google-chrome pdf wkhtmltopdf pdfkit


【解决方案1】:

看起来从 xvfb 生成的 PDF 可能不是 100% 正确。元数据存在一些问题。例如,它缺少创建者。此外,PDF-0 似乎不是有效的 PDF 版本。文档可能还有其他问题。这可能是生成的文件没有出现在 Chrome 中的一个原因。

检查文档的一个好方法是使用 Acrobat 的预检工具。它将检查文档是否存在潜在问题,这可以为正在发生的事情提供线索。该工具位于 Acrobat 的“印刷制作”下。要运行的配置文件称为“报告 PDF 语法问题”。我确信还有其他工具也可以解释文档的问题。

本节应该提供问题的解决方案。 正如下面的 cmets 所述,将 QT 版本从 4.8.6 更新到更新的版本应该可以解决问题。工作设置似乎正在运行 5.3.2,而非工作设置在 QT 4.8.6 下。

【讨论】:

  • 谢谢。是的,xvfb 生成 pdf 肯定有问题。事实上,我确实用 Acrobat 检查了 pdf,结果图像是个问题。您能帮忙找出 xvfb 生成错误 pdf 的原因,而在我的本地计算机中生成 PDF 是好的。
  • 我可以试一试。你能否给我一些关于你的设置的更多细节,或者用它来更新你的 OP?在您的本地机器上,您正在运行 wkhtmltopdf 来生成 PDF 文件。你的本地运行是什么?然后在运行 Ubuntu 的远程机器上,使用 wkhtmltopdf 生成 PDF 文件。您使用 xvfb 远程连接到它。这个假设正确吗?您是否有机会尝试在本地登录服务器,只是为了消除 xvfb 的画面?如果我对您的设置的假设是错误的,请纠正我。
  • 我使用this configuration 在服务器 pc 上运行 wkhtmltopdf 而无需 X Server。
  • 您是否尝试在服务器本地运行 wkhtmltopdf,而不使用 X Server?它奏效了吗?我试图弄清楚使用 xvfb 远程登录是否会以某种方式搞砸这个过程。
  • 对不起,如果我提出了不清楚的问题。我没有使用 xvfb 登录到服务器。 wkhtmltopdf 需要它来生成 PDF。因此,基本上 PDF 生成在没有显示器(视频卡)的 PC 中无法正常工作:)
【解决方案2】:

我可以推荐 phantomjs 作为 xkhtmltopdf 的替代品(无头工具,根本不需要服务器 x)。

HTML 到 PDF 的呈现非常简单(例如 http://phantomjs.org/screen-capture.html

【讨论】:

    【解决方案3】:

    赏金回答:

    显然,QT 4 和 QT 5 在打印到 PDF 时表现不同。因此,您可以通过升级服务器上的 QT 库来解决您的问题。

    您可以考虑针对wkhtmltopdf 提交错误,因为您所描述的行为显然使其与 QT 4 不兼容。

    另见原始评论here

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 1970-01-01
      • 2012-08-25
      • 2010-11-22
      • 1970-01-01
      • 2014-01-10
      • 2014-07-03
      • 2014-10-20
      • 2016-10-12
      相关资源
      最近更新 更多