今天我在Chrome的打印行为中遇到了一个奇怪的错误。 当我尝试使用Chrome(也在Firefox )中打印动态创建的PDF时,PDF中的每个图像都会变小(8mm)。 这在Adobe Reader / Acrobat / MacOSX默认打印机对话框中都不会发生。
让我解释一下到目前为止我的代码:
我使用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中的图片大小为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) Chrome Printer Dialog
这些都没有做任何事情。 我浏览了Chromium的Bugreporters,找到了两个可能和我一样有同样问题的人:
最后一次被触及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
Github存储库,带有示例图像&amp; pdf生成器脚本 https://github.com/posixpascal/chrome-printing-bug
不幸的是,我无法改变图像的宽度(甚至不是像素)。 有人经历过同样的问题吗?
有什么想法吗?这是一个有趣的谜题我想......:x
当我使用Chrome打印普通图像或网站时,会出现“使用原始大小”字样。或者&#39; 100%大小&#39;打印PDF时我没有的选项。
我还尝试制作网页而不是PDF,并将图片宽度设置为213mm
,这也不起作用......
答案 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开发者对其进行了一些调整。