我无法使用下面的C#代码更改iText7 + PDFSweep中的PDF编辑颜色。 RED编辑框仅在PDF文件的第一页生效,然后在后续页面上编辑框的颜色恢复为黑色
String input = SRC_FOLDER + "/report.pdf";
String output = SRC_FOLDER + "/report_redacted.pdf";
CompositeCleanupStrategy strategy = new CompositeCleanupStrategy();
strategy.Add(new RegexBasedCleanupStrategy(@"(\d\d\d\d)").SetRedactionColor(ColorConstants.RED));
PdfDocument pdf = new PdfDocument(new PdfReader(input), new PdfWriter(output));
PdfAutoSweep autoSweep = new PdfAutoSweep(strategy);
autoSweep.CleanUp(pdf);
pdf.Close();
答案 0 :(得分:0)
这是pdfSweep中的一个错误。
ìText
逐页处理文档。
为了能够在不同的网页上重复使用相同的策略,每个ICleanupStrategy
都需要提供reset
方法。
reset
的{{1}}方法的当前实现是
RegexBasedCleanupStragegy
复制策略的模式,但不复制其颜色。因此,在每个页面上,除了第一个页面之外,颜色将默认返回黑色。
要解决此问题,只需创建自己的实现来覆盖此行为以复制颜色。
我会将此报告为错误(iText开发人员)
为了完成,这将是固定的方法: 公共类RegexBasedCleanupStrategy扩展
public ICleanupStrategy reset() {
return new RegexBasedCleanupStrategy(this.pattern);
}