5

我有网络应用程序,人们可以通过 FTP 上传任何 pdf。pdf文件上传后,我对该pdf执行某些操作。

但这里的问题是,通过 FTP 上传 PDF 时,有时连接中断,上传的 pdf 不完整(就像损坏的一样)。当我尝试在 arobat 阅读器中打开该文档时,它会显示消息“打开文档时出错。文件已损坏,无法修复'.

现在在开始处理 PDF 之前,我想检查上传的 pdf 是否可读意味着没有损坏。

java是否为此提供任何API,或者有任何方法来检查文件是否损坏。

4

1 回答 1

9

我们有Java 中的iText API来处理 PDF 文件。

要检查 PDF 文件是否可以有效加载和阅读,请使用com.itextpdf.text.pdf.PdfReader.
如果文件已损坏,com.itextpdf.text.exceptions.InvalidPdfException则会引发类似 , 的异常。

示例代码片段

...  
import com.itextpdf.text.pdf.PdfReader;  
...  
try {  
    PdfReader pdfReader = new PdfReader( pathToUploadedPdfFile );  

    String textFromPdfFilePageOne = PdfTextExtractor.getTextFromPage( pdfReader, 1 ); 
    System.out.println( textFromPdfFilePageOne );
}  
catch ( Exception e ) {  
    // handle exception  
}  

如果上传但损坏的文件,您可能会遇到以下错误:

com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed:   
  trailer not found.; Original message: PDF startxref not found.  

注意:要产生这样的异常,请尝试从网络保存一个 pdf 文件,但在中间中止它。
使用它来加载上面的代码片段并检查它是否安全加载。

您可以在以下位置找到有关 iText API 的详细示例

iText PDF 的用例示例 | 文本

于 2012-05-07T07:50:56.283 回答