ExcelファイルのデータでPDFファイルを作成しました。何が起こったのかわかりませんが、1 つの PdfPage を削除して別の場所に挿入しようとすると、「削除するページは既にフラッシュされています」という警告メッセージが表示されました。
使用されるコードは非常に単純です。
PdfDocument pdf = ...;
....
PdfPage page = pdf.removePage(10);
pdf.addPage(1, page);
しかし、警告とエラーが発生しました:
[main] WARN com.itextpdf.kernel.pdf.PdfPage - 削除するページは既にフラッシュされています。スレッド「メイン」での例外 com.itextpdf.kernel.PdfException:flushed.page.cannot.be.added.or.inserted at com.itextpdf.kernel.pdf.PdfDocument.checkAndAddPage(PdfDocument.java:1473) at com.itextpdf .kernel.pdf.PdfDocument.addPage(PdfDocument.java:437)
正直なところ、他の PDF ファイルで上記のコードを試してみましたが、ページを削除したり挿入したりできます。私の PDF ファイルにはどのような理由が考えられますか?
私のアプリケーションで使用される完全なコード:
PdfWriter writer;
PdfDocument pdfDocument;
Document document;
try {
writer = new PdfWriter(FileConfigurator.getAbsoluteResultFilePath(),
new WriterProperties().addXmpMetadata().setPdfVersion(PdfVersion.PDF_1_7));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//Initialize PDF document
pdfDocument = new PdfDocument(writer);
// Initialize document
document = new Document(pdfDocument);