在 Chrome 中通过“另存为 PDF”打印时,如何使页面大小适合网页尺寸?
我尝试生成 PDF 的页面上有很多图表,我不打算将其打印到纸上 - 我只想生成一份可展示的文档。但是,当我将其打印为 PDF 时,我的图表总是从所有页面中分割出来。我想简单地将所有内容打印在一页上。这可能吗?
答案1
注意:此方法已部分弃用
Chrome确实具有在打印部分自定义页面大小的功能,令人印象深刻。
因此,您可以自定义打印尺寸。当我需要将 32 英寸 x 80 英寸的网页打印为 PDF 时,这确实帮我省了不少事。
以下是说明(请记住,我们正在修改页面的前端,因此这有点技术性,并且涉及一些 HTML 修改)
- Ctrl + p 打开打印对话框
- 点击“更多设置”展开下部部分
右键单击“纸张尺寸”下拉菜单,然后单击“检查”
(注意:这将打开 Chrome 的开发工具)在开发工具中,
<select class="md-select">...</select>
将会突出显示,单击旁边的箭头即可展开该部分。- 一旦展开,第一个选项将是:
<option value="{"height_microns":1189000,"name":"ISO_A0","width_microns":841000,"custom_display_name":"A0"}">A0</option>
- 右击该选项,然后选择“以 HTML 格式编辑”。将打开一个文本编辑部分,其中上一个选项的文本全部突出显示。
此时,您需要做的就是在现有选项之后将自定义选项插入此列表。这意味着粘贴您自己的选项。不幸的是,我无法构建一个工具来制作代码片段供您粘贴,因为超级用户不允许 stacksnippets。
您只需修改几个值。我已将下面的名称更改为 CUSTOM。
您会注意到,在下面的文本中,有 HHHHHHHHHH 和 WWWWWWWWWW。必须手动将这些更改为与所需尺寸相关的微米值。此网站提供了一个不错的免费微米计算器:https://www.calculateme.com/length/inches/to-microns/
对于我的身高来说,它是:80 英寸 = 2,032,000 微米,所以对于 HHHHHHHHHH,我将其替换为 2032000
对于我的宽度,它是 32 英寸 = 812,800 微米,因此对于 WWWWWWWWWW,我将其替换为 812800
请找到您自己的关联值并对下面的文本执行相同操作。
<option value="{"height_microns":HHHHHHHHHH,"name":"ISO_CUSTOM","width_microns":WWWWWWWWWW,"custom_display_name":"CUSTOM"}">CUSTOM</option>
文本准备好后,将其直接放在“以 HTML 格式编辑”文本编辑器中的部分后面。完成后,单击文本编辑区域外的任意位置即可呈现更改。
此时,您可以点击下拉菜单,查看您的自定义选项,然后选择它。
我知道这听起来很艰巨,但它实际上非常简单,如果你从一些真正定制的东西制作 PDF,它可以为你节省很多时间。
严重更新
在某些时候,Google Chrome 的打印预览似乎已更新为更注重测试。因此,添加自定义值违反了测试条件,因此什么也没发生。这种方法不再有效。
这里的要求是使用调试器逐字拦截值,以绕过测试断言的预防。抱歉,这里写得太深了。此外,我担心发布当前有效的修复程序后,可能会因为某种原因而受到保护。
亲爱的 Google,如果您确实在查看这些帖子,或许可以允许自定义微米选项?我们将不胜感激!
答案2
目前,我找到了一个适合我所做工作的 Chrome 扩展程序。它允许我截取整个页面的快照,然后将其保存为 PDF 或图像。这种方法的唯一缺点是页面(即使是 PDF)整体上是一张图片。因此文本不可选择或矢量缩放。
如果这对其他人有帮助的话,这是扩展: 完整截取网页截图 - FireShot
答案3
现代且唯一的解决方案:
在页面源代码的任何位置注入以下 CSS(或页面本身使用的 CSS 文件)并将尺寸更改为您喜欢的任何值。
@page {
size: 4.0in 25.5in; /* <- You can change these dimensions */
margin: 0;
}
现在尝试“另存为 PDF”选项,您将看到页面将采用这些尺寸。