【发布时间】:2015-12-27 05:54:50
【问题描述】:
今天我在 Chrome 的打印行为中遇到了一个奇怪的错误。 当我尝试使用 Chrome(也在 Firefox 中)打印动态创建的 PDF 时,PDF 中的每个图像都会变小一点(8 毫米)。 这在 Adobe Reader/Acrobat/MacOSX 默认打印机对话框中都不会发生。
让我解释一下到目前为止我的代码:
动态PDF:
我使用prawn 使用此代码动态创建 PDF A4(横向格式):
require 'prawn'
require "prawn/measurement_extensions"
class CustomPdf < Prawn::Document
def initialize(label) # A4
super({
:page_size => "A4",
:page_layout => :landscape,
:margin => 0,
:print_scaling => :none})
image "my_image.png", :width => 213.mm, :at => [3.mm, 3.mm]
end
end
PDF 内的嵌套图像:
嵌套在 PDF 中的图像大小为 213mm x 70mm,其中
300 DPI。像素:2515x827。
我使用 RMagick 创建图像,但尺寸、dpi 和到目前为止的一切似乎都还不错。所以暂时没有进一步的解释。
预期结果:
打印的 PDF 将显示宽度为 213 厘米的图像。
实际结果:
打印的 PDF 将显示 205 毫米宽的图像。
到目前为止我尝试了什么
- 将
prawn page_size设置为低于 A4 的值(因为图像也没有 A4 大...)。 - 玩转
print_scaling(有3种模式,:none,:AppDefault,:something_except_the_other_ones(Read more about it here) - 给图片一个固定的高度(70mm)
- 玩转
Chrome Printer Dialog提供的各种设置 - 在 Windows Chrome 下测试(那里是 213mm,奇怪),可能与 MacOSX Chrome 有关?
- 不幸的是在 IE11 (205mm) 下测试。
这些都没有做任何事情。 我查看了 Chromium 的 Bugreporters,发现有 2 个人可能和我有同样的问题:
- https://code.google.com/p/chromium/issues/detail?id=97972
- https://code.google.com/p/chromium/issues/detail?id=67091
最后一个是在 2013 年触及的,但没有人说任何对我的情况真正有用的话。
示例
这是一个示例 300 DPI 图像,宽度为 2515 像素: 如果 Imgur 将分辨率更改为 72,您可以从存储库中拉取示例图像(链接:https://github.com/posixpascal/chrome-printing-bug/blob/master/example.png)
这是一个 PDF 示例
直接链接:Direct Link
GitHub PDF 查看器:https://github.com/posixpascal/chrome-printing-bug/blob/master/output.pdf
带有示例图像和 pdf 生成器脚本的 Github 存储库 https://github.com/posixpascal/chrome-printing-bug
不幸的是,我无法更改图像的宽度(甚至不是像素)。 有人遇到过同样的问题吗?
有什么想法吗?我猜这是一个有趣的谜题... :x
当我使用 Chrome 打印普通图像或网站时,有一个“使用原始大小”或“100% 大小”选项,而我在打印 PDF 时没有。
我还尝试制作网页而不是 PDF,并将图像宽度设置为 213mm 也不起作用...
【问题讨论】:
-
来吧,为什么不引起注意,我错过了一些关键数据吗?你们中的一个人至少可以重现它,所以我确定不是我的打印机或操作系统导致了这个错误吗?
-
您是否尝试过使用其他库来生成 pdf?如果是这样,它还会缩小吗?这样,您可以在一定程度上确定问题的根源。
-
我会试试的,谢谢。今天晚些时候会提供一些更新。
-
我还要对虾做一些测试。之后我会告诉你结果。
-
您说“嵌套在 PDF 中的图像尺寸为 213 毫米 x 70 毫米,300 DPI。像素:2515x827””但github.com/posixpascal/chrome-printing-bug/blob/master/… 处的图像为 2515x48 . 你真正使用的是哪一个?
标签: macos google-chrome firefox printing pdf-generation