2

我有一些使用 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 版

4

1 回答 1

1

我知道没有办法做你想做的事。

推荐的路径是调用newPage(). 设置一些状态变量变量,执行完整性测试等。如果您正在使用图像,请确保您可以实际读取它们。我实际上会预先实例化/加载图像字节。

另一种选择是将这些页面标记为“最后删除”,然后调用pdfReader.selectaPages()除这些页面之外的所有内容。

于 2013-11-14T22:46:35.427 回答