【问题标题】:Shrink and merge PDFs in Python在 Python 中缩小和合并 PDF
【发布时间】:2011-05-07 15:06:24
【问题描述】:

我正在尝试将两个 A4 PDF 页面缩小并合并为一个 A4 页面,这样如果我有的话;

 _____        _____        
|     |      |     |
| p1  |      | p2  | 
|     |      |     |
|_____|      |_____|

我会得到的;

 _____             
| p1  |    
|.....| 
| p2  |  
|_____|      

作为一个新的 PDF,在一页上有两个 A5 大小的页面。类似于您在纸上每页打印两页的方式。

我查看了 pyPDF (http://pybrary.net/pyPdf/) ReportLab (http://www.reportlab.com),但我似乎找不到如何像这样缩小和合并。

有什么提示吗?

谢谢!

【问题讨论】:

    标签: python pdf pdf-generation


    【解决方案1】:

    pdfnup 有这个功能 (http://pypi.python.org/pypi/pdfnup)#

    例如

    from pyPdf import PdfFileWriter, PdfFileReader
    from pdfnup import generateNup
    
    output = PdfFileWriter()
    input1 = PdfFileReader(file("in.pdf", "rb"))
    
    page1 = input1.getPage(0)
    page2 = input1.getPage(1)
    
    output.addPage(page1)
    output.addPage(page2)
    
    outputStream = file("out.pdf", "wb")
    output.write(outputStream)
    outputStream.close()
    
    generateNup("out.pdf", 2)
    

    【讨论】:

      【解决方案2】:

      我会做的方式(不一定是最好的方式,但使用我可用的工具)是使用 Ghostcript 的 pdf2ps 转换为 PostScript,然后附加一个 N-up PostScript 序言(PS 是一个完整的编程语言,您可以重新定义诸如“showpage”之类的内置函数,以直接将 N-up 或后处理添加到文档中),然后我会使用 ps2pdf 转换回来。

      顺便说一句,我没有找到 PostScript N-up 实用程序的已发布版本,但您可以在 Google 上搜索几个用 其他 语言编写的可操纵 PostScript 文档本身的语言,例如 @987654321 中的那些@

      【讨论】:

        猜你喜欢
        • 2011-05-19
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多