2014-02-16 2 views
2

Имея некоторые проблемы, используя pdftk.Вопросы обрезки и комбинирования PDF-файлов с `pdftk`

Я пытаюсь получить вторую страницу каждого 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: 
    “?? 

Файлы, безусловно, есть, так что я не знаю, почему они Арен «читать правильно.

+0

Ваши цитаты выглядят подозрительно. Попробуйте отладить ваш сценарий оболочки. –

+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 или с некоторой веб-страницы, в которой использовались «умные» кавычки. Эти кавычки не будут работать в оболочке, как предполагалось. Вы должны использовать 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