Java 使用iText'进行错误解析;s PDFTEXTRACTOR

Java 使用iText'进行错误解析;s PDFTEXTRACTOR,java,itext,Java,Itext,当我试图阅读PDF文档的内容时,我遇到了一个问题。我在Java中使用iText 2.1.7,我需要分析PDF文档的内容:起初我使用了PDFTextractor的getTextFromPage方法,它工作正常,但只有当页面只是文本时,如果它包含图像,然后,我从getTextFromPage获得的字符串是一组无意义的符号(可能是不同的字符编码?),我会丢失整个页面的内容。我尝试了iText的最新版本,效果很好,但如果我没有弄错的话,许可证就不是完全免费的(我正在为一个商业客户开发一个web应用程序,

当我试图阅读PDF文档的内容时,我遇到了一个问题。我在Java中使用iText 2.1.7,我需要分析PDF文档的内容:起初我使用了PDFTextractorgetTextFromPage方法,它工作正常,但只有当页面只是文本时,如果它包含图像,然后,我从getTextFromPage获得的字符串是一组无意义的符号(可能是不同的字符编码?),我会丢失整个页面的内容。我尝试了iText的最新版本,效果很好,但如果我没有弄错的话,许可证就不是完全免费的(我正在为一个商业客户开发一个web应用程序,它可以随时提供PDF),所以我不能使用它。如果您有任何建议,我将不胜感激

如果您需要,以下是代码:

PdfReader pdf = new PdfReader(doc);  //doc is just a byte[]
int pageCount = pdf.getNumberOfPages();
for (int i = 1; i <= pageCount; i++) {
    PdfTextExtractor pdfTextExtractor = new PdfTextExtractor(pdf);
    String pageText = pdfTextExtractor.getTextFromPage(i);
PdfReader pdf=新的PdfReader(doc)//doc只是一个字节
int pageCount=pdf.getNumberOfPages();

对于(inti=1;i我认为您的PDF有一个内联图像。我认为iText 2.1.7不会处理这个问题。
您可以找到有关许可证的信息

我认为您的PDF有一个内联图像。我不认为iText 2.1.7可以解决这个问题。
您可以找到有关许可证的信息

Hi Eriksberger,感谢您的回复,我想您可能是对的,我正在阅读iText 5.0.4的更改日志,并且在PDF内联图像中做了大量工作。我将等待,看看是否有人知道以前版本的iText的替代方案。再次感谢。我不知道有任何forks,如果这是你的意思的话。你也可以在AGPL下发布你的应用程序。或者你可以把钱凑起来。如果你只需要一般的文本提取,还有其他Java库可以处理它。嗨,马克,谢谢你的回复,在与团队其他成员评论完这个问题后,我们决定尝试。非常感谢you和@Eriksberger感谢您的时间。嗨,Eriksberger,谢谢您的回复,我想您可能是对的,我正在阅读iText 5.0.4的变更日志,在PDF内联图像中做了很多工作。我将等待,看看是否有人知道以前版本的iText的替代方案。再次感谢。如果是这样的话,我还没有发现任何forks你的意思是。你也可以在AGPL下发布你的应用程序。或者你可以花钱。如果你只需要一般的文本提取,还有其他Java库可以处理它。嗨,马克,谢谢你的回复,在与团队其他成员评论完这个问题后,我们决定试用。非常感谢你和@Eriksberg谢谢你的时间。