【发布时间】:2014-06-10 02:01:34
【问题描述】:
简而言之,我想通过背景颜色擦除 pdf 页面的内容而不改变其页面大小。这里有更多细节:
说pdf页面大小是A4纸,内容可以是文字或图片,擦除的内容是1厘米左右间距(蓝色部分)
我想知道有没有办法做到这一点?
更新:我尝试剪切路径
// render text and image
//...
// then erase
PdfContentByte clipCB = pdfWriter.getDirectContent();
clipCB.saveState();
clipCB.setColorStroke(Color.WHITE);
clipCB.rectangle(100,100,600, 600);
clipCB.clip();
clipCB.newPath();
clipCB.restoreState();
【问题讨论】:
-
我尝试使用剪切路径 - 剪切路径 剪切后面的内容,而不是前面的内容。并且在创建剪切路径后立即恢复以前的图形状态会立即停止剪切。
-
谢谢,因为我在 iText 方面没有太多经验,所以我不知道如何让它作为方面工作。你有什么建议吗?我删除了 restoreState 但仍然无法正常工作(内容未剪辑)
-
我删除了 restoreState 但仍然无法正常工作(内容未剪辑) - 如前所述,您必须定义剪辑路径之前添加要剪辑的内容。因此,您的
render text and image必须发生在clipCB.newPath();和clipCB.restoreState();之间。 -
也就是说,您不能使用
document.add(...)任意组合添加您的文本和如上所示的剪切路径来剪切文本,因为 itext 严格区分了您在直接内容上手动执行的操作和执行的操作它自己的布局。