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

时间:2015-09-29 16:32:43

标签: macos google-chrome firefox printing pdf-generation

今天我在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

PDF中的嵌套图像:

嵌套在PDF中的图片大小为213mm x 70mm 300 DPI。在像素:2515x827。

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

预期结果:

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

实际结果:

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

到目前为止我尝试了什么

  • prawn page_size设置为低于A4的值(因为图像不像A4那样大......)。
  • 使用print_scaling(有3种模式,:none:AppDefault:something_except_the_other_ones (Read more about it here)
  • 给图像一个固定的高度(70毫米)
  • 使用Chrome Printer Dialog
  • 提供的各种设置
  • 在Windows Chrome下测试(那里有213毫米,很奇怪),也许它与MacOSX Chrome有关?
  • 不幸的是,在IE11(205毫米)下进行了测试。

这些都没有做任何事情。 我浏览了Chromium的Bugreporters,找到了两个可能和我一样有同样问题的人:

最后一次被触及2013年,但没有人说任何对我的案件有用的东西。

实施例

以下是300 DPI图像的示例,宽度为2515像素: Example Image 如果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

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

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

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

当我使用Chrome打印普通图像或网站时,会出现“使用原始大小”字样。或者&#39; 100%大小&#39;打印PDF时我没有的选项。

我还尝试制作网页而不是PDF,并将图片宽度设置为213mm,这也不起作用......

3 个答案:

答案 0 :(得分:1)

这是我使用Windows系统和Mac(约塞米蒂)所看到的测试结果

Windows:

在Chome打印PDF:完美 - 213 mm

IE中印刷:完美 - 213毫米。之前的情况较少(约为205-210)。因此更改了默认打印设置:

  

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

所以我搬到了Mac上。

Mac Findings:

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

这样做是这样的:Apple Print

很自然地,我测试了直接通过Chrome打印而不是通过OSX打开PDF - &gt;打印205毫米。

在大虾上用printcaling测试:appdefault - &gt;印刷在213毫米。

在Firefox上测试相同 - &gt;低于205 - 210毫米。

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

所以最终,这些是我在测试出代码后的结果。

答案 1 :(得分:1)

我在Windows上使用Chrome时遇到了类似的8毫米缩小。检查了我的所有打印机属性和设置,但找不到可以执行的操作。事实证明,我在Chrome打印(ctrl + p)屏幕上勾选了“适合页面”选项。取消勾选并重新打印一页,比较它们的宽度,它们都是8毫米。有时这是简单的事情......

答案 2 :(得分:0)

以我的经验,Chrome通常会打印较小的HTML。它可能与具有“智能收缩”功能的WebKit引擎有关。我遇到过here(文本搜索缩小)。或者,仅仅是因为过去的人们抱怨Chrome的开发人员不适合打印,Chrome开发者对其进行了一些调整。