題:
如果PDF的頁面數為奇數,則添加空白頁的程序
Franck Dernoncourt
2014-03-22 12:06:19 UTC
view on stackexchange narkive permalink

我正在尋找一個程序,該程序可以:

  • 如果PDF的頁數為奇數,則添加空白頁(如果PDF的頁數為偶數,則不執行任何操作)。它必須能夠一次處理多個PDF。 (否則,我可以手動完成此操作)

並且,如果可能(優先級降低):

  • 在Windows 7上可以運行
  • easy使用
  • 免費

用戶故事:我必須打印30個PDF。由於我的大學打印系統,是時候將文檔發送到打印機了,一個對話框彈出,詢問我要向哪個用戶ID打印文檔。為了避免使該對話框出現30次,我想將這30個PDF合併為一個PDF。問題是,當我打印合併的PDF時,有時初始PDF的第一頁位於頁面的背面,這使得無法逐張裝訂打印的PDF。

enter image description here

您可能應該刪除“易於使用”的要求(例如:不會崩潰/沒有錯誤)。這始終是必要條件。而且,這是相當主觀的。
您為什麼要尋找這樣的程序?您正在尋找TeX嗎?
@moose我在問題中添加了用戶故事。我只是在提到易於使用,因為我擔心有人會說:“嘗試:Adobe Acrobat腳本腳本,祝您好運!” :)
這是相同的問題:http://stackoverflow.com/q/9820830/562769
四 答案:
Martin Thoma
2014-03-31 21:39:41 UTC
view on stackexchange narkive permalink

這個想法來自關於stackoverflow的答案。但是,由於您是Windows用戶,因此我懷疑shell腳本是否適合您。因此,我實現了一個Python版本,該版本也應在Windows上運行。

準備工作

  1. 安裝Python並確保您擁有 pyPDF
  2. /path/to/blank.pdf 中創建一個帶有單個空白的PDF文件(我在此處創建了空白pdf頁面)。
  3. 將此文件另存為 $ PATH 的任何目錄中的 uniprint.py 。 (我不是Windows用戶。在Linux下這很簡單。如果遇到錯誤/是否可行,請告訴我。)
  4. 製作 uniprint.py 可執行文件
  5. ol>

    每次需要它

    運行 uniprint.py 一個僅包含要合併的PDF文件的目錄。

    Python

     #!/ usr / bin / env python#-*-編碼:utf-8-*-from argparse import ArgumentParserfrom glob import globfrom pyPdf import PdfFileReader,PdfFileWriterdef merge(path, blank_filename,output_filename):空白= PdfFileReader(file(blank_filename,“ rb”))output = PdfFileWriter()for glob('*。pdf')中的pdffile:如果pdffile == output_filename:繼續打印(“分析'%s' “%pdffile)document = PdfFileReader(open(pdffile,'rb'))for range(document.getNumPages())中的i:如果document.getNumPages()%2 == output.addPage(document.getPage(i))= 1:output.addPage(blank.getPage(0))print(“將空白頁添加到'%s'(具有%i頁)“%(pdffile,document.getNumPages()))print(”開始寫入'%s'“%output_filename)output_stream = file(output_filename,” wb“)output.write(output_stream )output_stream.close()if __name__ ==“ __main__”:parser = ArgumentParser()#如果您喜歡parser.add_argument(“-o”,“ --output”,dest =“ output_filename”,default =“ merged.pdf“,help =”將合併的PDF寫入FILE“,metavar =” FILE“)
    parser.add_argument(“-b”,“ --blank”,dest =“ blank_filename”,默認=“ blank.pdf”,help =“空白PDF文件的路徑”,metavar =“ FILE”)parser.add_argument(“ -p“,”-path“,dest =” path“,default =”。“,help =”原始PDF文件的路徑“)args = parser.parse_args()merge(args.path,args.blank_filename,args .output_filename) 

    測試

    如果在Windows和Mac上都可以運行,請發表評論。

    如果沒有,請務必發表評論。正常工作/可能會有所改進。

    它在Linux上有效。將3個PDF連接到一個200頁的PDF只需不到一秒鐘。

Franck Dernoncourt
2016-09-28 03:11:01 UTC
view on stackexchange narkive permalink

您可以使用 PDFsam

  • 免費
  • 在Microsoft Windows,Mac OS X和Linux上運行的
  • 便攜式版本可用(至少在Windows上可用)
  • 如果每個合併的文檔頁數奇數,則可以在每個合併的文檔後添加空白頁

enter image description here

ojovirtual
2014-03-31 19:32:16 UTC
view on stackexchange narkive permalink

您可以使用 PDFtk合併文檔,並獲得一頁空白的pdf文件,您可以在每頁奇數頁的文檔後插入該文件。創建合併了30個文檔的單個PDF文件將需要5分鐘(您可以一次添加所有文件)。

您可以看到每個文檔的頁數,而且操作簡便快捷。例如:

enter image description here

也許這不是您要尋找的解決方案,而是一種解決方法。

謝謝,是否可以根據文件頁數的奇偶性來限制空白頁的插入?我正在尋找一種自動化的解決方案:如果需要合併許多文檔,則在需要時手動插入空白頁面會有點乏味:)
@FranckDernoncourt我知道它不是我所建議的自動化系統,但是我將嘗試一下,您會發現手動完成操作非常快(您可以僅移動文檔就可以更改文檔的順序,並且可以在屏幕上頁數,因此添加30個文檔並在每個奇數頁之前添加空白頁非常快)。
zakir
2014-11-16 13:04:03 UTC
view on stackexchange narkive permalink

有一個名為 PDF合併器的程序。

完全符合您的要求:

  1. 添加所有文件
  2. 轉到選項 kbd>→頁面 kbd>→為空白添加空白頁面
  3. ol>

    僅在以下位置使用水印是免費的第一頁,但您也可以免費獲得它。

“但是你也可以免費獲得它”?


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...