【问题标题】:Erase content in pdf page with itext使用 itext 擦除 pdf 页面中的内容
【发布时间】: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 严格区分了您在直接内容上手动执行的操作和执行的操作它自己的布局。

标签: java pdf itext


【解决方案1】:

有几个选项。最简单的做法是在边缘周围以背景颜色绘制 4 个矩形。更优雅的方法是在呈现页面内容之前设置剪切路径。

这是一个使用剪切路径的示例:http://www.java2s.com/Tutorial/Java/0419__PDF/Cliparegion.htm

【讨论】:

  • 你能给我更多的细节吗?因为我不知道如何为我的案例应用剪切路径。我试过(在更新的问题中)但没有用。
  • 我是您更新的代码,我看不到您将文本/其他渲染操作添加到内容字节的位置...从我在响应中链接到的示例剪切路径代码开始,然后向其中添加其他内容。
猜你喜欢
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多