我有一些使用Document,PdfWriter和PdfResource生成文档的代码。当它循环生成PDF时,它会创建新页面。有时,可能存在新页面生成失败的情况,并且不应添加页面。有没有办法处理“事务性”页面。即创建页面并输入内容,如果失败,则“回滚”更改并不将页面添加到文档中?
我有一些代码如下:
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版
答案 0 :(得分:1)
我知道你无法做你想做的事。
建议的路径是在调用newPage()
之前执行“try / catch”内容。设置一些状态变量变量,执行完整性测试等。如果您正在使用图像,请确保您可以实际读取它们。实际上我会事先实例化/加载图像字节。
另一种选择是将这些页面标记为“最后删除”,然后在除此之外的所有内容上调用pdfReader.selectaPages()
。