GNOME 打印技巧
以下教程的原始纸张大小都是 A4. 你也可以在相应的地方做出调整, 从而使用其他大小的纸张.
如何打印一套试卷
下面的步骤可以实现以打印一套试卷的方式打印一份文档, 即每张纸打印连续的 4 页 (双面打印, 每面两页).
- 对要打印的 PDF 文件, 调出 GNOME 打印对话框.
- 在 General 选项卡中, 选择目标打印机, 并在 Range 区域指定所有页面.
- 在 Page Setup 选项卡中:
- 将 Pages per side 调为
2
, - 将 Page ordering 调为
Left to right
, - 将 Only print 调为
Odd sheets
, - 将 Paper size 调为
A4
, - 根据需要调节 Scale.
- 将 Pages per side 调为
- 在 Advanced 选项卡中, 根据需要调节 Print Quality 并决定是否彩印.
- 点击 Print, 并等待打印完毕.
- 上下翻转打印好的一沓纸, 使其背面朝上. 接着, 将这沓纸放入打印机的进纸口. (不要改变纸张顺序.)
- 重复一次步骤 1-5, 但在第 3 步中将 Only print 调为
Even sheets
.
注: 若需确定配置是否无误, 可在步骤 1 中选择 Print to file 并预览打印效果.
如何打印一本小册子 (骑马钉装订)
骑马钉装订是指, 将一沓纸张对折, 并在折痕处打订书订, 使其成为一本小册子.
因为文档内的所有页面需要以特定方式重新排列, 并且 GNOME 的打印窗口似乎没办法直接这么做, 所以我写了一个 Python 3 脚本来实现它:
import PyPDF2
import math
reader = PyPDF2.PdfReader(open('input.pdf', 'rb'))
pages = len(reader.pages)
pieces = math.ceil(pages / 4)
front_writer = PyPDF2.PdfWriter()
back_writer = PyPDF2.PdfWriter()
def get_page(index):
if(index >= pages):
return PyPDF2.PageObject.create_blank_page(reader)
return reader.pages[index]
for i in range(pieces):
front_writer.add_page(get_page(pieces * 4 - i * 2 - 1));
front_writer.add_page(get_page(i * 2));
back_writer.add_page(get_page(i * 2 + 1));
back_writer.add_page(get_page(pieces * 4 - i * 2 - 2));
front_writer.write(open('output_front.pdf', 'wb'))
back_writer.write(open('output_back.pdf', 'wb'))
print("Done. Pieces of paper needed: %s" % pieces)
运行脚本, 会将 input.pdf
转换为 output_front.pdf
和 output_back.pdf
, 并输出所需纸张数. 确保纸张和墨水足够后, 开始打印.
- 对
output_front.pdf
文件, 进行一次上一章节的步骤 1-5, 但在第 3 步中将 Only print 调为All sheets
. - 上下翻转打印好的一沓纸, 使其背面朝上. 接着, 将这沓纸放入打印机的进纸口. (不要改变纸张顺序.)
- 对
output_back.pdf
文件, 进行一次上一章节的步骤 1-5, 但在第 3 步中将 Only print 调为All sheets
.
To the extent possible under law, the person who associated CC0 with this work has waived all copyright and related or neighboring rights to this work.