使用iText将tiff文件转换为pdf文件时出现异常 [英] Exception when converting tiff file to pdf file with iText

查看:939
本文介绍了使用iText将tiff文件转换为pdf文件时出现异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆