如何把 A4 格式的 PDF 按 A3 进行打印

背景介绍

给学生打印试卷经常需要用到把 A4 页面的 PDF 按照 A3 页面尺寸来进行打印,尤其 A Level 试卷都是很多页的。但是普通的打印店人员根本不懂怎么操作,所以,最终我还是决定自己来解决这个问题。最终效果就是,我交给打印室的工作人员的时候,它们直接按照多页打印即可,不需要进行额外设置。

解决方案

由于我的日常使用电脑都是 MacOS 系统,所以我接下来的解决方案都是基于 Mac 环境。

方案一:Booklet 小册子打印

(i) PDF 打印 Booklet

小册子打印跟 Printer 的功能有关,并不是所有的 Printer 都具有 Booklet 打印能力,因此,当我们 CMD + P 调出打印机设置时,会看到不同的选项,比如:

我们选择 Layout 后,

会出现更多的页面选择框

如果所选择的 Printer 支持自动双页打印(deplex),那么这里的 Two-Sided 会有几个下拉选择项,否则(如果 Printer 不支持 deplex),这里的选择框就是灰色,如下:

但是,具有 Booklet 打印功能的 Printer(比如 EPSON L4260 Series),在 Layout 选项里就会出现 Booklet 选项,如下:

选择了 Booklet 方式打印后,Pages per Sheet 就是不可选的了,因为是固定每张纸打两页。

在实际打印前,我们可以虚拟打印一下以便能看到打印后的真实效果,避免打错浪费纸的情况,那么可以这样操作:

点击设置页坐下角的 PDF 下拉按钮,选择 Save as Adobe PDF (注意,这里的前提是已经安装了 Adobe Acrobat Pro 软件 MacOS),

然后按提示步骤生成打印后的 PDF 文件,打开 PDF 文件后就可以看到真实效果。

注意:

1)不要直接点击 Print

2)我安装了 Air Print/Print to PDF 两个 Virtual Printer App,他们使用的 Driver 是 MacOS 自带的 PostScript,并不支持 Booklet 打印(打印设置页没有 Booklet 选项)。

另外,如果我们没有支持 A3 打印的打印机,我们可以使用 Adobe Acrobat Pro 这款 App 所提供的打印能力来实现 Booklet 打印。

具体方法如下:

(1) 使用 Adobe Acrobat Pro 打开 PDF 文件

(2) 按快捷键 CMD + P 调出打印页面,并选择 Booklet 方式打印。

没错,即使你没有能打印 Booklet 的打印机,但 Adobe Acrobat Pro 提供了 Booklet 打印功能。配合 Virtual Printer App,你就可以实现 Booklet 打印。

如果点击左下角的 Printer 按钮去设置系统打印机,那么会出现如下提示。这也证明了, Adobe Acrobat 提供的 Driver 更强大。

问题:

问题一: Mac Store 中的 Air Printer 或 Print to PDF 两款 Virtual Printer App,免费版本都能打印不超过 5 页的文档,正版则需要 $39.99。

破解版(免费下载):

macoshome.com/app/product...

问题二: Adobe Acrobat Pro 默认打印出来的文件,PDF 中的图片会缺失或错乱。比如像下面这样:

原因:

If fonts and images not supported by acrobat are embedded in a PDF from another source this issue may occur。

解决方案:

点击 Advanced 按钮,

然后,在新弹出的设置页面中,勾选 Print As Image

另:Air Printer 在 Windows/MacOS 中都有,我们可以下载破解版。其他类似的软件还有 Print Conductor。

air-printer.softonic.cn/

airprint.softonic.cn/

问题三: Air Printer 不支持打印 A3

解决方案: 使用支持 A3 打印的 Printer(比如 EPSON L4260 Series),然后选择 Save As Adobe PDF。

不过,经过测试,打印出来的 A3 文件会有大量的 margin,也就是缩放了,暂时不知道如何解决。

因此,最简单的方式,还是直接使用 Booklet 打印功能。

(ii) Word 打印 Booklet

1、打开需要编辑的Word文档,点击打开页面布局中的"分栏",选择"两栏"选项。

2、再选择纸张大小 A3,纸张方向横向。

3、打印预览,在上标尺处可以调整布局,打印方式选择单双面。

方案二:手动折页打印

在方案一中,Printer 提供的 Booklet Driver 帮我们实现了自动折页打印的效果。我们也可以在本地把 PDF 文件按照 Booklet 折页的顺序排列好,然后手动进行一张多页的打印方式进行打印。

注:所谓的一张多页,也就是 MacOS 中的打印方式:Layout + Soft-Edge Binding)

Windows 中,一张多页打印的设置页面如下:

现在问题的核心就是:

我们如何手动解决 A4 页面排序成 Booklet 所要求的页面顺序?

一张 A3 纸,正反面打印的话,是包含了 4 张 A4 大小的页面的,因此,A4 尺寸的文件的页数需要是 4 的倍数,如果不是 4 的倍数,那么我们必须手动添加空白页,使得它变成 4 的倍数。(比如文件有 10 页,那么应该添加两个空白页变成 12 页),否则的话就无法实现正确的 Booklet 效果。

手动添加页面的方式:

用 Preview App 打开 pdf 文件,然后选择 Edit > Insert > Blank Page

另外,为了跟原文件保持风格一致,添加的空白页还应该添加页码。Preview 没法做到这个,只能使用 PDF 编辑软件了。

接下来,我们研究一下 Booklet 效果所需的页面顺序:

如上,总页数是 8 页。那么第一张 A3 纸(正反面)应该按照 8 1 2 7 的顺序打印,第二张 A3 纸应该按照 6 3 4 5 的顺序打印。

同理,如果一个文件是 12 页,那么顺序应该如下:

12 1 2 11

10 3 4 9

8 5 6 7

如果一个文件是 16 页,那么顺序如下:

16 1 2 15

14 3 4 13

12 5 6 11

10 7 8 9

参考:helpx.adobe.com/acrobat/kb/...

解决了如果排序问题,我们不可能每次在 PDF 编辑软件里面手动来排序页面吧,页面少还好,页面多的话实在太繁琐,浪费时间,

我们可以用脚本来自动实现 PDF 页排序,下面是网友提供的一个MacOS 下 Script,是以 Service 方式提供的(根据 MacOS 版本不同,有多个对应的 script 版本,请下载具体 MacOS 版本所对应的版本)。

下载地址:

下载之后,解压,双击安装,会出现如下对话框:

点击 Install 即可。或者,你也可以直接把解压后的文件放入 ~/Library/Services 目录。

Script 安装完成之后,在 pdf 文件点击右键,点击 Make booklet PDF on Desktop,

如下:

执行完成之后,这个 Script 会把 PDF 文件页面按照 Booklet 所要求的顺序重新排好,然后我们只需要在打印机中选择一张多页的方式打印即可。

卸载:

进入 ~/Library/Services 目录,删除即可。

Script 来源:

statusq.org/archives/20...

全文完!

如果你喜欢我的文章,欢迎关注我的公众号 deliverit

相关推荐
滚雪球~3 分钟前
npm error code ETIMEDOUT
前端·npm·node.js
沙漏无语5 分钟前
npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
supermapsupport7 分钟前
iClient3D for Cesium在Vue中快速实现场景卷帘
前端·vue.js·3d·cesium·supermap
brrdg_sefg8 分钟前
WEB 漏洞 - 文件包含漏洞深度解析
前端·网络·安全
胡西风_foxww15 分钟前
【es6复习笔记】rest参数(7)
前端·笔记·es6·参数·rest
m0_7482548816 分钟前
vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0
前端·vue.js·elementui
火星机器人life1 小时前
基于ceres优化的3d激光雷达开源算法
算法·3d
星就前端叭1 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
m0_748234521 小时前
前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)
前端·webpack·node.js
Web阿成1 小时前
3.学习webpack配置 尝试打包ts文件
前端·学习·webpack·typescript