【问题标题】:Borders don't Print in Chrome PDF Viewer在 Chrome PDF 查看器中不打印边框
【发布时间】:2017-04-16 03:27:11
【问题描述】:

我正在使用 wkhtmltopdf 将 HTML 页面转换为 PDF 文件。然后客户端下载 PDF 并打印出来。

如果您使用 Adob​​e Reader 之类的工具打开 PDF 文件,此功能非常有用,但如果您使用 Chrome 的内置 PDF 查看器,则此功能将无法使用。

PDF 将在 Chrome PDF 查看器中(几乎)正确显示。 (所有边框实际上都是相同的厚度,我不知道为什么它显示中间边框更厚):

但是,如果您从 Chrome PDF 查看器打印 PDF,一些边框将消失:

我已经尝试过让边框比 1px 厚,我尝试用 pt 代替 px。

【问题讨论】:

  • 您可以发布您要转换为 PDF 的页面的 HTML/CSS 吗?

标签: html css google-chrome pdf wkhtmltopdf


【解决方案1】:

你设置的边框有多厚?下载 PDF,在 chrome 中打开,然后放大到 400% 左右。边框是否显示备份?如果是这样,那么您的问题在于 Chrome PDF 查看器如何处理细线渲染。这是for several years 的一个问题,由于自at least 2011 以来Chrome PDF 查看器在呈现表格边框时出现问题,这一事实更加复杂。

大多数消息来源说要禁用 Chrome PDF 查看器,以便它可以回退到 Adob​​e Reader。这可行,但这对我来说是一个不可用的选项,因为我们的服务器正在通过 PhantomJS 处理 PDF,并且修改 Chrome 在其中的操作方式将对我们提供的其他自定义 PDF 解决方案产生未知的影响。 This article 是让我指出它可能是细线渲染器的那个。似乎有 2px 的阈值厚度,Chrome PDF 查看器开始在表格边框上给出不一致的结果。您可以使用以下代码片段来证明这一点:

table, th, td {
    /* 1.965354px, this does not work */
    border: 0.52mm solid #ddd;
}

table, th, td {
    /* 2.00315px, this does work */
    border: 0.53mm solid #ddd;
}

将粗细设置为 2px 应该可以解决您的问题。这不是一个真正的解决方案(我的直觉告诉我,根源可能在于 Chrome PDF Preview 处理边框折叠的方式),但现在希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多