无法在iText7中设置编校颜色(C#)

时间:2018-04-17 12:59:59

标签: itext7

我无法使用下面的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();

1 个答案:

答案 0 :(得分:0)

这是pdfSweep中的一个错误。

ìText逐页处理文档。 为了能够在不同的网页上重复使用相同的策略,每个ICleanupStrategy都需要提供reset方法。

reset的{​​{1}}方法的当前实现是

RegexBasedCleanupStragegy

复制策略的模式,但不复制其颜色。因此,在每个页面上,除了第一个页面之外,颜色将默认返回黑色。

要解决此问题,只需创建自己的实现来覆盖此行为以复制颜色。

我会将此报告为错误(iText开发人员)

为了完成,这将是固定的方法: 公共类RegexBasedCleanupStrategy扩展

public ICleanupStrategy reset() {
    return new RegexBasedCleanupStrategy(this.pattern);
}