Chrome:如何以原始尺寸打印PDF(100%,无缩放/收缩)

Pas*_*zyk 10 printing macos firefox pdf-generation google-chrome

今天我在Chrome的打印行为中遇到了一个奇怪的错误.当我尝试使用Chrome(也在Firefox中)打印动态创建的PDF时,PDF 中的每个图像都会变小(8mm).在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
Run Code Online (Sandbox Code Playgroud)

PDF中的嵌套图像:

嵌套在PDF内的图像的大小为213mm x 70mm300 DPI.在像素:2515x827.

我用RMagick创建了Image,但是到目前为止大小,dpi和所有内容似乎都没问题.所以目前没有进一步的解释.

预期结果:

打印的PDF将显示213厘米宽的图像.

实际结果:

打印的PDF将显示205mm宽的图像.

到目前为止我尝试了什么

  • 设置prawn page_size为低于A4的值(因为图像不像A4那样大......).
  • 与玩耍print_scaling(有3种模式,:none,:AppDefault,:something_except_the_other_ones (了解更多关于它在这里)
  • 给图像一个固定的高度(70毫米)
  • 玩弄提供的各种设置 Chrome Printer Dialog
  • 在Windows Chrome下测试(那里有213毫米,很奇怪),也许它与MacOSX Chrome有关?
  • 不幸的是,在IE11(205mm)下测试.

这些都没有做任何事情.我浏览了Chromium的Bugreporters,发现有2个人可能和我一样有同样的问题:

最后一个被触及2013年,但没有人说任何实际适用于我的情况.


例子

以下是300 DPI图像的示例,宽度为2515像素: 示例图像 如果Imgur将分辨率更改为72,则可以从存储库中提取示例图像(链接:https://github.com/posixpascal/chrome-printing-bug/blob/master/example.png)

这是一个示例PDF

直接链接:直接链接

GitHub PDF查看器:https://github.com/posixpascal/chrome-printing-bug/blob/master/output.pdf


Github存储库,带有示例图像和pdf生成器脚本 https://github.com/posixpascal/chrome-printing-bug

不幸的是我无法改变图像的宽度(甚至不是像素).有人经历过同样的问题吗?

有任何想法吗?这是一个有趣的谜题我想......:x


当我使用Chrome打印普通图像或网站时,打印PDF时我没有"使用原始尺寸"或"100%尺寸"选项.

我也尝试制作一个网页而不是PDF,并将图像宽度设置为213mm无效...

小智 1

这是我使用Windows系统和Mac(Yosemite)看到的测试结果

窗户:

在 Chome 打印 PDF:完美 - 213 毫米

在 IE 中打印:完美 - 213 毫米。之前这个数字较少(大约 205-210 左右)。因此更改了默认打印设置:

选择打印选项 -> 使用的打印对话框 -> 选择打印机 -> 打印首选项 -> 高级 -> 纸张尺寸 -> 手动更改缩放比例 -> 测试 A4、A5 等。-> A5 (出于某种原因给了我 213 )

所以我转向了Mac。

Mac 调查结果:

更改纸张尺寸并进行相同测试:尺寸为 213 毫米。

这是这样完成的:Apple Print

所以很自然地,我测试了直接通过 Chrome 打印它,而不是通过 OSX 打开 PDF -> 以 205 毫米打印。

在 :appdefault -> 以 213 毫米打印的虾上使用 printscaling 进行测试。

在 Firefox 上进行了相同的测试 -> 低于 205 - 210 毫米。

所以我真的不知道这是否是 Chrome 的问题,因为它在 Firefox 上对我来说表现得很奇怪。

所以最终,这些是我在测试代码后的发现。