Chrome:如何以原始尺寸打印 PDF(100%,否 scaling/shrinking)
Chrome: How to print PDF with original size (100%, no scaling/shrinking)
今天我在 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
提供的各种设置
- 在WindowsChrome下测试(那里是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 年触及的,但没有人说出任何对我的情况真正有用的东西。
例子
这是一个宽度为 2515 像素的 300 DPI 图像示例:
如果 Imgur 将分辨率更改为 72,您可以从存储库中提取示例图像 (link: https://github.com/posixpascal/chrome-printing-bug/blob/master/example.png)
这是一个示例 PDF
直接Link:Direct Link
GitHub PDF 查看器:https://github.com/posixpascal/chrome-printing-bug/blob/master/output.pdf
Github 包含示例图像和 pdf 生成器脚本的存储库
https://github.com/posixpascal/chrome-printing-bug
不幸的是我不能改变图像的宽度(连一个像素都不能)。
有人遇到过同样的问题吗?
有什么想法吗?我想这是一个有趣的谜题...:x
当我打印带有 Chrome 的纯图像或网站时,有一个 'Use Original Size' 或“100% 大小”选项,我在打印 PDF 时没有。
我也试过制作一个网页而不是 PDF 并将图像宽度设置为 213mm
也没有用...
这是我使用 windows 系统和 Mac ( Yosemite )
所见的测试结果
Windows :
在 Chome 中打印 PDF:完美 - 213 毫米
在 IE 中打印:完美 - 213 毫米。以前较少(大约 205-210ish)。所以更改了默认打印设置:
Selected the Print option -> Used Print Dialog -> Selected the printer -> Print Preferences -> Advanced -> Paper Size -> Changed scaling manually -> tested A4, A5 and so on.-> A5 ( for some reason gave me 213 )
所以我搬到了Mac。
Mac 结果:
更改了纸张尺寸并进行了相同的测试:尺寸为 213 毫米。
这是这样完成的:Apple Print
所以很自然地,我测试了直接通过 Chrome 打印它,而不是通过 OSX 打开 PDF -> 以 205 毫米打印。
在 :appdefault -> Printed at 213 mm 处对虾进行打印缩放测试。
在 Firefox 上进行了相同的测试 -> 低于 205 - 210 毫米。
所以我真的不知道它是否是一个 Chrome 问题,因为它在 Firefox 上对我来说很奇怪。
所以最终,这些是我在测试完代码后的发现。
我在 Windows 上使用 Chrome 时经历了类似的 8 毫米收缩。检查了我所有的打印机属性和设置,但找不到可能的原因。事实证明,我在 Chrome 打印 (ctrl+p) 屏幕中勾选了 "fit to page" 选项。取消勾选并重新打印一页,比较它们的宽度,它们相差 8 毫米。有时是简单的事情...
根据我的经验,Chrome 打印 html 通常较小。这可能与具有 "smart shrinking" 功能的 WebKit 引擎有关。我遇到过 here(文本搜索收缩)。或者,可能只是 Chrome 开发人员对它进行了一些调整,因为过去人们抱怨这些东西不适合印刷品。
今天我在 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
提供的各种设置
- 在WindowsChrome下测试(那里是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 年触及的,但没有人说出任何对我的情况真正有用的东西。
例子
这是一个宽度为 2515 像素的 300 DPI 图像示例:
这是一个示例 PDF
直接Link:Direct Link
GitHub PDF 查看器:https://github.com/posixpascal/chrome-printing-bug/blob/master/output.pdf
Github 包含示例图像和 pdf 生成器脚本的存储库 https://github.com/posixpascal/chrome-printing-bug
不幸的是我不能改变图像的宽度(连一个像素都不能)。 有人遇到过同样的问题吗?
有什么想法吗?我想这是一个有趣的谜题...:x
当我打印带有 Chrome 的纯图像或网站时,有一个 'Use Original Size' 或“100% 大小”选项,我在打印 PDF 时没有。
我也试过制作一个网页而不是 PDF 并将图像宽度设置为 213mm
也没有用...
这是我使用 windows 系统和 Mac ( Yosemite )
所见的测试结果Windows :
在 Chome 中打印 PDF:完美 - 213 毫米
在 IE 中打印:完美 - 213 毫米。以前较少(大约 205-210ish)。所以更改了默认打印设置:
Selected the Print option -> Used Print Dialog -> Selected the printer -> Print Preferences -> Advanced -> Paper Size -> Changed scaling manually -> tested A4, A5 and so on.-> A5 ( for some reason gave me 213 )
所以我搬到了Mac。
Mac 结果:
更改了纸张尺寸并进行了相同的测试:尺寸为 213 毫米。
这是这样完成的:Apple Print
所以很自然地,我测试了直接通过 Chrome 打印它,而不是通过 OSX 打开 PDF -> 以 205 毫米打印。
在 :appdefault -> Printed at 213 mm 处对虾进行打印缩放测试。
在 Firefox 上进行了相同的测试 -> 低于 205 - 210 毫米。
所以我真的不知道它是否是一个 Chrome 问题,因为它在 Firefox 上对我来说很奇怪。
所以最终,这些是我在测试完代码后的发现。
我在 Windows 上使用 Chrome 时经历了类似的 8 毫米收缩。检查了我所有的打印机属性和设置,但找不到可能的原因。事实证明,我在 Chrome 打印 (ctrl+p) 屏幕中勾选了 "fit to page" 选项。取消勾选并重新打印一页,比较它们的宽度,它们相差 8 毫米。有时是简单的事情...
根据我的经验,Chrome 打印 html 通常较小。这可能与具有 "smart shrinking" 功能的 WebKit 引擎有关。我遇到过 here(文本搜索收缩)。或者,可能只是 Chrome 开发人员对它进行了一些调整,因为过去人们抱怨这些东西不适合印刷品。