将单页横向 pdf 转换为重新缩放的双页纵向 pdf

Dal*_*ker 5 printing pdf imagemagick image-manipulation conversion

我在convert执行以下操作时遇到问题:

我有一堆单页 pdf 文件,其几何形状对应于横向 A4 纸。实际内容在视觉上分为 2 页。我一直在试图与这些文件做,基本上是:调整大小到A3,其实在中间垂直分割获得两页(我试过convertcropunsuccesfully),然后重新组装为2页由 2 张 A4 纵向页面组成的 pdf 文件。

最终的内容应​​该是按一个因子调整大小的原始内容 sqrt(2)

[  ] -> [    ]  ->  [ | ]
        [    ]      [ | ]
 A4       A3         2xA4
lands.   lands.     portrait
Run Code Online (Sandbox Code Playgroud)

这样做的全部目的是能够将调整后的内容打印为 2 张纵向 A4 纸而不是 1 张横向 A4,但实际上创建新的 pdf 文件比直接打印要好,因为它们可以随时重新打印并与其他人共享然后谁也可以按预期直接打印它们。

Gil*_*il' 3

这是 的一个变体un2up,它使用 Python 和pyPdf。请注意,您至少需要 1.13 版本(之前的版本不支持缩放)。未经测试。

#!/usr/bin/env python
import copy, math, 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())]:
    p.scaleBy(math.sqrt(2))
    q = copy.copy(p)
    (w, h) = p.mediaBox.upperRight
    p.mediaBox.upperRight = (w/2, h)
    q.mediaBox.upperLeft = (w/2, h)
    output.addPage(p)
    output.addPage(q)
output.write(sys.stdout)
Run Code Online (Sandbox Code Playgroud)