使用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)
我使用了你的原始命令(我只是为了可读性而重新格式化):
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: “
“
Category: Pi (Punctuation, Initial quote)
Bidi: ON (Other Neutrals)
U+201D RIGHT DOUBLE QUOTATION MARK
UTF-8: e2 80 9d UTF-16BE: 201d Decimal: ”
”
Category: Pf (Punctuation, Final quote)
Bidi: ON (Other Neutrals)
我假设您已经从HTML电子邮件,PDF文档或某些使用“智能”引号的网页复制了“n'pasted(某些部分)此命令”。这些引号不能按预期在shell中使用。您需要使用ASCII引号:
$ unicode \"
U+0022 QUOTATION MARK
UTF-8: 22 UTF-16BE: 0022 Decimal: "
"
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