Я создал файл PDF с данными из файла Excel. Я не уверен, что произошло, но когда я попытался удалить одну PdfPage и вставить ее в другое место, появилось предупреждающее сообщение «Удаляемая страница уже очищена».
Используемый код довольно прост:
PdfDocument pdf = ...;
....
PdfPage page = pdf.removePage(10);
pdf.addPage(1, page);
Но я получил предупреждение и ошибки:
[основная] ПРЕДУПРЕЖДЕНИЕ com.itextpdf.kernel.pdf.PdfPage — Страница удаления уже очищена. Исключение в потоке "основной" com.itextpdf.kernel.PdfException:flushed.page.cannot.be.added.or.inserted в com.itextpdf.kernel.pdf.PdfDocument.checkAndAddPage(PdfDocument.java:1473) в 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);
pdf.copyPagesTo(10, 10, pdf, 1); pdf.removePage(10+1);
как обходной путь. Может быть, вы уже написали документ? Как вflush = write buffer
вместоflush = flushed through the toilet
. - person Joop Eggen   schedule 19.09.2016copyPagesTo
должен быть методом по умолчанию. - person Samuel Huylebroeck   schedule 19.09.2016pdf.copyPagesTo(10, 10, pdf, 1);
вызовет исключение NullPointerException, я думаю, мы должны скопировать его в другойtopdf
для параметра. В моем сгенерированном PDF-файле сейчас уже более 60 страниц с картинками внутри, но все же можно ли запретить сбрасывать PDF? - person cao   schedule 20.09.2016...
. Вы используетеDocument
из модуляlayout
для создания контента? - person Alexey Subach   schedule 02.02.2017