【问题标题】:Image Magic - different output to pipe vs fileImage Magic - 管道与文件的不同输出
【发布时间】:2017-09-25 22:12:27
【问题描述】:

ImageMagick: 为什么输出不同

convert image.png out.pdf

convert image.png pdf:- > out.pdf

第一个输出是 55kb,第二个输出是 56kb。

Java PDFBox 通过管道/输出重定向在 pdf 上引发错误。

Exception in thread "main" java.io.IOException: java.lang.NumberFormatException

编辑 1: Mac OS 10.12.3 image magick convert 版本:ImageMagick 7.0.5-2 Q16 x86_64 2017-03-11

文件末尾存在差异,这些数字实际上出现在 PDFBox 异常中:

重定向输出:

xref
0 18
0000000000 65535 f 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
18446744073709551615 00000 n 
trailer
<<
/Size 18
/Info 17 0 R
/Root 1 0 R
/ID [<312b2917944e1f1391c7e989f380aafcbed384ae70effb7823f655ea1d84ad66> <312b2917944e1f1391c7e989f380aafcbed384ae70effb7823f655ea1d84ad66>]
>>
startxref
10
%%EOF

vs 直接保存到文件中:

xref
0 18
0000000000 65535 f 
0000000010 00000 n 
0000000059 00000 n 
0000000118 00000 n 
0000000312 00000 n 
0000000402 00000 n 
0000000420 00000 n 
0000000458 00000 n 
0000000479 00000 n 
0000051784 00000 n 
0000051805 00000 n 
0000051833 00000 n 
0000054546 00000 n 
0000054567 00000 n 
0000054628 00000 n 
0000054646 00000 n 
0000054668 00000 n 
0000054686 00000 n 
trailer
<<
/Size 18
/Info 17 0 R
/Root 1 0 R
/ID [<312b2917944e1f1391c7e989f380aafcbed384ae70effb7823f655ea1d84ad66> <312b2917944e1f1391c7e989f380aafcbed384ae70effb7823f655ea1d84ad66>]
>>
startxref
54877
%%EOF

【问题讨论】:

  • 用ghostscript(ImageMagick使用IIRC)测试这个会很有趣,即在mac上使用stdout时GS是否也会失败?如果是,请向他们提交错误报告。

标签: image-processing imagemagick imagemagick-convert


【解决方案1】:

马克·塞切尔:

convert image.png pdf:- > output.pdf
convert image.png file.pdf
ls -la
18050 Apr 27 15:25 image.png
44650 Apr 28 11:51 file.pdf
44803 Apr 28 11:51 output.pdf

java -jar "/private/var/www/nodeapp-template/node_modules/easy-pdf-merge/jar/pdfbox.jar" PDFMerger output.pdf output.pdf final-output.pdf 线程“主”java.io.IOException 中的异常:java.lang.NumberFormatException:对于输入字符串:“18446744073709551615” 在 org.apache.pdfbox.pdfparser.COSParser.parseXrefTable(COSParser.java:2012)

head 有相同的输出,没有差异,但是 tail 有差异。

注意:在 debian 上工作,在我的 macbook 上不工作 :( 顺便说一句 debian 创建不同的文件(大小 55347 55328),但 java PDFMerger 通过。

【讨论】:

    【解决方案2】:

    这两个命令都应该可以正常工作,并在我的机器上这样做。我只能建议您检查每行的前几行并比较它们,看看重定向的行中是否有额外的内容。

    convert image.png a.pdf
    
    convert image.png pdf:- > b.pdf
    
    head a.pdf
    
    head b.pdf
    

    【讨论】:

    • 更新了原帖。这些文件有区别,但我不知道是什么引起的。
    • 你有什么操作系统?我有 Mac OS 10.12.3 image magick convert 版本:ImageMagick 7.0.5-2 Q16 x86_64 2017-03-11
    猜你喜欢
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2013-05-25
    • 2021-06-28
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多