python - 裁剪 .pdf 文件的页面

标签 python pdf pypdf2 pypdf

我想知道是否有人有过以编程方式处理 .pdf 文件的经验。我有一个 .pdf 文件,我需要将每一页裁剪到特定大小。

在谷歌快速搜索后,我找到了 python 的 pyPdf 库,但我对它的实验失败了。当我更改页面对象上的 cropBox 和 trimBox 属性时,结果不是我所期望的,而且看起来非常随机。

有没有人有这方面的经验?代码示例将不胜感激,最好是 python。

最佳答案

pyPdf做我在这方面的期望。使用以下脚本:

#!/usr/bin/python
#

from pyPdf import PdfFileWriter, PdfFileReader

with open("in.pdf", "rb") as in_f:
    input1 = PdfFileReader(in_f)
    output = PdfFileWriter()

    numPages = input1.getNumPages()
    print "document has %s pages." % numPages

    for i in range(numPages):
        page = input1.getPage(i)
        print page.mediaBox.getUpperRight_x(), page.mediaBox.getUpperRight_y()
        page.trimBox.lowerLeft = (25, 25)
        page.trimBox.upperRight = (225, 225)
        page.cropBox.lowerLeft = (50, 50)
        page.cropBox.upperRight = (200, 200)
        output.addPage(page)

    with open("out.pdf", "wb") as out_f:
        output.write(out_f)

生成的文档有一个 200x200 点的裁切框,从媒体框内的 25,25 点开始。 裁剪框在裁剪框内有 25 个点。

以下是我的示例文档在使用上述代码处理后在 Acrobat Professional 中的外观: crop pages screenshot

当加载到 acrobat reader 中时,此文档将显示为空白。

关于python - 裁剪 .pdf 文件的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457207/

相关文章:

java - 如何在 Python 或 Java 中使这个递归函数更快?

python - 我可以在 Python 中使用类而不是带有映射的函数吗?

javascript - 使用 websocket node.js 发送 PDF 文件

java - JavaFX 中的 PDF 查看器

python - Flask 重启/关闭回调

pdf - Flying Saucer 无法在 ubuntu tomcat6 上解析图像或 CSS

python - 如何使用python在PDF文件的所有页面中添加水印?

python - 使用 PdfMiner 和 PyPDF2 合并列提取文本

python - 使用 Python 和 PyPDF2 合并 PDF 文件会引发 TypeError

python - 在Python中应用函数