2014-02-16 29 views
2

使用pdftk時遇到了一些問題。使用`pdftk`修剪和組合PDF問題

我想要獲取指定目錄中每個PDF的第二頁,並將它們合併爲一個輸出文件。

注意:有問題的PDF文件是用wkhtmltopdf創建的。

我變成目錄,運行以下命令:

mkdir trimmed-combined 
for i in *pdf ; do 
    pdftk 「$i」 cat 2 output 「trimmed-combined/trimmed-combined1.pdf」 ; 
done 

我收到以下錯誤:

Unexpected Exception in open_reader() 
java.lang.IllegalArgumentException: null filename passed into RandomAccessFileOrArray() 
    at pdftk.com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(pdftk) 
    at pdftk.com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(pdftk) 
    at pdftk.com.lowagie.text.pdf.PRTokeniser.<init>(pdftk) 
    at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk) 
    at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk) 
Error: Failed to open PDF file: 
    「?? 

的文件是肯定有的,所以我不知道爲什麼他們AREN沒有正確閱讀。

+0

你的報價看起來很可疑。嘗試調試你的shell腳本。 –

+0

文件名有多長?嘗試較小的。 –

回答

0

我用你原來的命令(我只重新格式化爲可讀性):

mkdir trimmed-combined 
for i in *pdf ; do 
    pdftk 「$i」 cat 2 output 「trimmed-combined/trimmed-combined1.pdf」 ; 
done 

我得到完全相同的錯誤,你做......

而且像已經@MartinSchröder在評論觀察到,當我編輯OP提高可讀性時注意到,您使用的報價是:

$ unicode 「」 

    U+201C LEFT DOUBLE QUOTATION MARK 
    UTF-8: e2 80 9c UTF-16BE: 201c Decimal: &#8220; 
    「 
    Category: Pi (Punctuation, Initial quote) 
    Bidi: ON (Other Neutrals) 

    U+201D RIGHT DOUBLE QUOTATION MARK 
    UTF-8: e2 80 9d UTF-16BE: 201d Decimal: &#8221; 
    」 
    Category: Pf (Punctuation, Final quote) 
    Bidi: ON (Other Neutrals) 

我假設你已經copied'n'pasted(的某些部分)這comman d來自HTML電子郵件,或PDF文檔,或來自某些使用「智能」引號的網頁。這些引號不會像預期的那樣在shell中運行。您需要使用ASCII引號:

$ unicode \" 

    U+0022 QUOTATION MARK 
    UTF-8: 22 UTF-16BE: 0022 Decimal: &#34; 
    " 
    Category: Po (Punctuation, Other) 
    Bidi: ON (Other Neutrals) 

因此改變你的命令,這一點,並如預期一切正常:

mkdir trimmed-combined 
for i in *pdf ; do 
    pdftk "$i" cat 2 output "trimmed-combined/trimmed-combined1.pdf" ; 
done