Printing

將單頁橫向 pdf 轉換為重新縮放的雙頁縱向 pdf

  • March 13, 2015

我在convert執行以下操作時遇到問題:

我有一堆單頁 pdf 文件,其幾何形狀對應於橫向 A4 紙。實際內容在視覺上分為 2 頁。我一直在嘗試對這些文件中的每一個做的基本上是:調整大小為 A3,實際上在中間垂直拆分以獲得兩頁(我嘗試過convert不成功crop),然後重新組合為 2 頁pdf 文件由 2 個 A4 縱向頁面組成。

最終內容應該是按一個因子調整大小的原始內容sqrt(2)

[  ] -> [    ]  ->  [ | ]
       [    ]      [ | ]
A4       A3         2xA4
lands.   lands.     portrait

這樣做的全部目的是能夠將調整大小的內容列印為 2 張縱向 A4 紙而不是 1 張橫向 A4,但實際上創建新的 pdf 文件會比直接列印更好,因為它們可以隨時重新列印並與其他人共享然後誰也可以按預期直接列印它們。

這是 的變體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)

引用自:https://unix.stackexchange.com/questions/44104