Itext 是否可以在文档创建过程中删除页面,例如;“交易”;在数据库中

Itext 是否可以在文档创建过程中删除页面,例如;“交易”;在数据库中,itext,Itext,我有一些使用文档、PdfWriter和PdfResource生成文档的代码。当它循环生成PDF时,它会创建新的页面。有时,可能会出现生成新页面失败的情况,因此不应添加该页面。是否有一种“事务性”处理页面的方法。i、 e.创建一个页面并输入内容,如果失败,“回滚”更改,并且不将页面添加到文档中 我有一些代码如下所示: pdfResource.document.newPage(); PdfContentByte contentByte = writer.getDirectContent(); co

我有一些使用文档、PdfWriter和PdfResource生成文档的代码。当它循环生成PDF时,它会创建新的页面。有时,可能会出现生成新页面失败的情况,因此不应添加该页面。是否有一种“事务性”处理页面的方法。i、 e.创建一个页面并输入内容,如果失败,“回滚”更改,并且不将页面添加到文档中

我有一些代码如下所示:

pdfResource.document.newPage();

PdfContentByte contentByte = writer.getDirectContent();
contentByte.saveState();

try {
    // do some work to fill the page
} catch (Exception e) {
    // How do I rollback and remove the page???
} finally {
    contentByte.restoreState();
}

我目前使用的是5.0.2版

我不知道有什么办法可以完成您想要做的事情

建议在调用
newPage()
之前执行“try/catch”操作。设置一些状态变量,执行你的心智测试,等等。如果你正在处理图像,请确保你能真正读取它们。实际上,我甚至可以预先实例化/加载图像字节


另一种选择是将这些页面标记为“在末尾删除”,然后调用
pdfReader.selectaPages()
对除这些页面以外的所有页面执行操作。

看起来selectpages可能有效。谢谢你的回复,克里斯-托德