2017-11-22 50 views
0

私は以下のコードをpdfファイルのpdf版に変更しました。私は最後に2番目のファイルを持っているのではなく、元のファイルのpdfバージョンを直接更新したいと思っています。だから、読み取りと書き込みのための私のPDFファイルが同じである:ITextの元のファイルを上書きして既存のPDFのPDFバージョンを変更するには?

WriterProperties wp = new WriterProperties(); 
wp.setPdfVersion(PdfVersion.PDF_1_6); 
PdfDocument pdfDoc = new PdfDocument(new PdfReader("orig.pdf"), new PdfWriter("orig.pdf", wp)); 
pdfDoc.close(); 

しかし、これを行うことによって、私はだから私は、私はこの方法を読み、同じファイルに書き込むことができないと思いますA fatal error has been detected by the Java Runtime Environment: .... Failed to write core dump. Core dumps have been disabled.

でエラーが発生します。別の方法がありますか?私はIText 7 for Javaを使用しています

答えて

1

できません。同時に同じPDFファイルを読み書きすることはできません。あなたはにテンポラリファイルに書き込む必要があります。一時ファイルはメモリストリームでもよく、ディスク上のファイルである必要はありません。しかし、元のファイルを書き込む前に閉じる必要があります。

コードに何か問題が生じた場合、元のファイルは破棄されることに注意してください。

+0

ええ、一時ファイルの周りに道がありません... – farahm

+1

この問題は、iTextまたはPDFファイル形式に固有の問題ではありません。 *構造ファイル形式にも同じ問題があります。 –

関連する問題