我有一个包含扫描文档的一页 PDF 文件。我只需将此文档的上半部分发送给某人。如何生成仅包含原始页面上半部分的新 PDF 文档,而不丢失详细信息?
答案1
如何打印 PDF 文件的选定部分
确保基本工具栏可见,方法是右键单击工具栏的空白区域,然后在“基本”旁边打勾(如果尚未启用)。
在基本工具栏上找到“快照工具”并选择它。
在要打印的区域周围拖出一个框。将出现一条消息提醒您所选内容已复制到剪贴板。单击“确定”,您将在刚刚选择的区域周围看到一条虚线。
单击打印。
在打印对话框中,将打印范围设置为“选定的图形”。
如果您想按预期尺寸打印所选内容,请将“页面缩放”设置为“无”。
如果您希望选区填满纸张,请将页面缩放设置为“适合纸张”。您可能需要选中“自动旋转和居中”复选框以最大限度地利用纸张。
当您对预览感到满意时,单击“确定”打印文档。
参考
答案2
如果您只需要对单个页面执行一次此操作,我只需使用 GIMP 打开 PDF 并复制上半部分:
gimp 150264785-test-pdf.pdf
这将弹出一个屏幕,要求您选择要导入的页面:
导入第一页,然后只需使用 GIMP 选择并剪切您感兴趣的区域,将其粘贴为新图像并再次导出为 PDF。
答案3
那是一半un2up
(以旋转为模)。所以,有了 Python 及其pyPdf
图书馆:
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
(w, h) = p.mediaBox.upperLeft
p.mediaBox.lowerLeft = (w, h/2)
output.addPage(p)
output.write(sys.stdout)
答案4
因为 pyPdf 已被放弃,所以我更新了它以使用官方鼓励的 PyPDF2 分支
此页面不再更新。我已经停止维护 pyPdf,一家名为 Phaseit 的公司已经分叉了该项目,并在我作为 pyPdf2 的祝福下继续开发和维护(http://knowah.github.com/PyPDF2/)。
此外,由于我想将其包装在 shell 脚本中,因此我使用了命令行参数。
#!env python
import copy, sys
from PyPDF2 import PdfFileWriter, PdfFileReader
input = PdfFileReader(open(sys.argv[1], 'rb'))
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0, input.getNumPages())]:
(w, h) = p.mediaBox.upperLeft
p.mediaBox.lowerLeft = (w, h/2)
output.addPage(p)
output.write(open(sys.argv[2], 'wb'))