5

FTP経由でPDFをアップロードできるWebアプリケーションがあります。PDFファイルがアップロードされた後、そのPDFに対して特定の操作を実行します。

しかし、ここでの問題は、FTP 経由で PDF をアップロードしているときに接続が切断され、アップロードされた PDF が完全ではない (破損したもののように振る舞う) ことです。そのドキュメントを arobat リーダーで開こうとすると、「ドキュメントを開くときにエラーが発生しました。ファイルが破損しているため、修復できませんでした

PDFでの処理を開始する前に、アップロードされたpdfが読み取り可能であるかどうかを確認したいのは、破損していないことを意味します。

JavaはそのためのAPIを提供していますか、またはファイルが破損しているかどうかを確認する方法はありますか。

4

1 に答える 1

9

PDFファイルを操作するためのJavaの iText APIがあります。

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 の使用例 | iText .

于 2012-05-07T07:50:56.283 に答える