我在想如果有人有任何使用.pdf文件編程工作的經驗。我有一個.pdf文件,我需要裁剪每一頁到一定大小。修剪.pdf文件的頁面
經過Google的快速搜索,我找到了Python的pyPdf庫,但是我的實驗失敗了。當我改變頁面對象上的cropBox和trimBox屬性時,結果並不是我所期望的,而且看起來很隨意。
有沒有人有這方面的經驗?代碼示例將很好理解,最好在python中。
我在想如果有人有任何使用.pdf文件編程工作的經驗。我有一個.pdf文件,我需要裁剪每一頁到一定大小。修剪.pdf文件的頁面
經過Google的快速搜索,我找到了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)
生成的文檔具有200 x 200點的修剪框,並在媒體框內的25,25點處開始。 修剪框內的修剪框是25點。
這裏是我的示例文件看起來如何在Acrobat與上面的代碼後加工的專業:在Acrobat Reader軟件加載時
這份文件將顯示爲空白。
此代碼與我正在試驗的代碼具有相同的效果;結果文檔的頁面肯定會被裁剪,但都是空白的。任何想法,爲什麼這可能是? – johannth 2009-01-22 20:26:46
你可能正在尋找一個免費的解決方案,但如果你有錢花,PDFlib是一個神話般的圖書館。它從未讓我失望。
您可以將PDF轉換爲Postscript(pstopdf或ps2pdf),並在Postscript文件上使用文本處理。之後,您可以將輸出轉換回PDF。
如果您想要處理的PDF全部由相同的應用程序生成並且有點類似,這很好地工作。如果它們來自不同的來源,通常很難處理Postscript文件 - 結構變化很大。但是,即使你使用一些正則表達式,migt也能夠修正頁面大小等。
Acrobat Javascript API有一個setPageBoxes方法,但Adobe不提供任何Python代碼示例。只有C++,C#和VB。
偉大的問題,但有點驚訝它尚未關閉過於寬泛。 – 2017-06-02 00:48:17