如何通过覆盖IText中的原始文件来更改现有PDF的PDF版本?

时间:2017-11-22 12:58:35

标签: java pdf itext

我有以下代码来更改pdf文件的pdf版本。我不希望最后有第二个文件,而是希望直接更新原始文件的pdf版本。所以我的pdfs用于阅读和写作是相同的:

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 个答案:

答案 0 :(得分:1)

你不能。根本无法同时读取和写入同一PDF文件。您必须写入临时文件。您的临时文件也可以是内存流,它不必是磁盘上的文件。但是你必须先关闭原始文件才能写入。

请记住,如果您的代码出现问题,原始文件将被销毁。