使用iText将tiff文件转换为pdf文件时出现异常 [英] Exception when converting tiff file to pdf file with iText
问题描述
当我尝试使用 itextpdf 5.5将
,发生以下异常: tiff
文件转换为 pdf
文件时.5
When I try to convert a tiff
file to pdf
file by using itextpdf 5.5.5
, the following exception occurs:
java.lang.RuntimeException:Scanline必须以EOL代码字开头。 at
com.itextpdf.text.pdf.codec.TIFFFaxDecoder.readEOL(TIFFFaxDecoder.java:1303)
at
com.itextpdf.text.pdf.codec.TIFFFaxDecoder.decode2D(TIFFFaxDecoder。 java:811)
at
com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:223)
at
com.itextpdf.text.pdf。 codec.TiffImage.getTiffImage(TiffImage.java:315)
at
com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:303)
at com.itextpdf。 text.Image.getInstance(Image.java:308)at
com.itextpdf.text.Image.getInstance(Image.java:242)at
com.itextpdf.text.Image.getInstance(Image。 java:365)at
com.minstone.convert.PicConvertor.convertPicToPdf1(PicConvertor.java:81)
at
com.minstone.convert.DocConverter $ ConvertWork.king2pdf(DocConverter.java: 143)
at
com.minstone.convert.DocConverter $ ConvertWork.run(DocConverter.java:99)
at
java.util.concurrent.Executors $ RunnableAdapter.call( Executors.java:441)jav上的
a.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)at
java.util .concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)
at java.lang .Thread.run(Thread.java:619)
java.lang.RuntimeException: Scanline must begin with EOL code word. at com.itextpdf.text.pdf.codec.TIFFFaxDecoder.readEOL(TIFFFaxDecoder.java:1303) at com.itextpdf.text.pdf.codec.TIFFFaxDecoder.decode2D(TIFFFaxDecoder.java:811) at com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:223) at com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:315) at com.itextpdf.text.pdf.codec.TiffImage.getTiffImage(TiffImage.java:303) at com.itextpdf.text.Image.getInstance(Image.java:308) at com.itextpdf.text.Image.getInstance(Image.java:242) at com.itextpdf.text.Image.getInstance(Image.java:365) at com.minstone.convert.PicConvertor.convertPicToPdf1(PicConvertor.java:81) at com.minstone.convert.DocConverter$ConvertWork.king2pdf(DocConverter.java:143) at com.minstone.convert.DocConverter$ConvertWork.run(DocConverter.java:99) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
我可以打开 tiff
在任何图像查看器中的文件,所以它是有效的。
I can open the tiff
file in any image viewer, so it's valid.
推荐答案
iText在处理无效或损坏的Tiff文件时有一些回退。默认情况下,不使用这些回退,如果您希望iText尝试解析无效的Tiff文件(例如 http://api.itextpdf.com/itext /com/itextpdf/text/Image.html#getInstance%28byte[],%20boolean%29 )
iText has a few fallbacks when dealing with invalid or corrupt Tiff files. By default, these fallbacks aren't used, you'll need to explicitly use one of the getinstance() methods with the recoverFromImageError flag set to true if you want iText to try and parse the invalid Tiff files (e.g. http://api.itextpdf.com/itext/com/itextpdf/text/Image.html#getInstance%28byte[],%20boolean%29 )
如果此布尔值设置为true,iText将如果它耗尽了所有选项,则只会抛出错误。这应该是检查您的TIFF文件的标志...
If this boolean is set to true iText will only throw an error if it exhausted all of its options. This should be a sign to inspect your TIFF file...
另一种解决方法可能是使用TiffImage并完全绕过Image类。 TiffImage也使用recoverFromImageError标志,但它还有一个名为direct的附加标志,它也可以解决您的问题。 ( http://api.itextpdf.com/itext/ com / itextpdf / text / pdf / codec / TiffImage.html )
Another workaround could be to use TiffImage and bypassing the Image class altogether. TiffImage also uses the recoverFromImageError flag, but it also has an additional flag called "direct" which might also solve your issues. (http://api.itextpdf.com/itext/com/itextpdf/text/pdf/codec/TiffImage.html)
这篇关于使用iText将tiff文件转换为pdf文件时出现异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!