当我尝试转换tiff
文件至pdf
文件通过使用itextpdf 5.5.5
,出现以下异常:
java.lang.RuntimeException:扫描线必须以 EOL 代码字开头。在
com.itextpdf.text.pdf.codec.TIFFFaxDecoder.readEOL(TIFFFaxDecoder.java:1303)
在
com.itextpdf.text.pdf.codec.TIFFFaxDecoder.decode2D(TIFFFaxDecoder.java:811)
在
com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:223)
在
com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:315)
在
com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:303)
在 com.itextpdf.text.Image.getInstance(Image.java:308) 处
com.itextpdf.text.Image.getInstance(Image.java:242) 在
com.itextpdf.text.Image.getInstance(Image.java:365) 在
com.minstone.convert.PicConvertor.convertPicToPdf1(PicConvertor.java:81)
在
com.minstone.convert.DocConverter$ConvertWork.king2pdf(DocConverter.java:143)
在
com.minstone.convert.DocConverter$ConvertWork.run(DocConverter.java:99)
在
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
在 java.util.concurrent.FutureTask.run(FutureTask.java:138) 处
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
在
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
在 java.lang.Thread.run(Thread.java:619)
我可以打开tiff
文件在任何图像查看器中,因此它是有效的。
iText 在处理无效或损坏的 Tiff 文件时有一些后备措施。默认情况下,不使用这些后备,如果您希望 iText 尝试解析无效的 Tiff 文件(例如,http://api.itextpdf.com/itext/com/itextpdf/text/Image.html#getInstance%28byte[],%20boolean%29 )
如果此布尔值设置为 true,iText 仅在用尽所有选项时才会抛出错误。这应该是检查您的 TIFF 文件的标志...
另一种解决方法可能是使用 TiffImage 并完全绕过 Image 类。 TiffImage 还使用recoverFromImageError 标志,但它还有一个名为“direct”的附加标志,这也可能会解决您的问题。 (http://api.itextpdf.com/itext/com/itextpdf/text/pdf/codec/TiffImage.html)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)