2010-11-10 37 views
2

我試圖縮小並將兩個A4 PDF頁面合併到一個A4頁面中,以便如果有;在Python中收縮和合並PDF

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

我會得到;

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

作爲一個新的PDF,在該頁上有兩個A5大小的頁面。與您可能在紙上每頁打印兩頁相似。

我已經看了pyPDF(http://pybrary.net/pyPdf/)ReportLab(http://www.reportlab.com),但我似乎無法找到如何收縮和合並這樣。

任何提示?

謝謝!

回答

3

pdfnup谷歌寫在其他語言操縱的PostScript文檔本身,如若干個具有此功能(http://pypi.python.org/pypi/pdfnup)#

eg

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) 
0

我會這樣做的方式(不一定是最好的方法,但使用我可用的工具)將使用Ghostcript的pdf2ps轉換爲PostScript,然後附加一個N-up PostScript前導碼(PS是一種完整的編程語言你可以重新定義像「showpage」這樣的內建函數,將N-up或posterization直接添加到文檔中),然後我將轉換回ps2pdf

隨口說說我沒有找到在PostScript的N-up工具的發佈版本,但你可以在http://www.tardis.ed.ac.uk/~ajcd/psutils/