使用pdfSweep删除文本-通配符?

时间:2019-05-24 14:07:04

标签: itext7

使用pdfSweep编辑文本-当我确切知道要删除的“字符串”时,可以很好地工作,例如ID: 12AAFF113,但我不总是知道ID:之后出现的数字,因此我该如何删除ID和x个字符-

是否允许通配符支持或类似的功能?

Dim input As String = "G:/tmp/redact/input.pdf"
Dim output As String = "G:/tmp/redact/output.pdf"
Dim strategy As New CompositeCleanupStrategy()
strategy.Add(New RegexBasedCleanupStrategy("ID: 12AAFF113"))

Dim pdf As New PdfDocument(New PdfReader(input), New PdfWriter(output))
Dim autoSweep As New PdfAutoSweep(strategy)
autoSweep.CleanUp(pdf)
pdf.Close()

1 个答案:

答案 0 :(得分:1)

您可以使用PdfAutoSweepRegexBasedCleanupStrategy

例如,在下面的代码段中,显示了如何删除(D|d)olor正则表达式字符串的所有外观。

    CompositeCleanupStrategy strategy = new CompositeCleanupStrategy();
    strategy.add(new RegexBasedCleanupStrategy("(D|d)olor").setRedactionColor(ColorConstants.GREEN));

    PdfDocument pdf = new PdfDocument(new PdfReader(input), new PdfWriter(output));

    // sweep
    PdfAutoSweep autoSweep = new PdfAutoSweep(strategy);
    autoSweep.cleanUp(pdf);

    pdf.close();

您所用的正则表达式应为“ id:\ s(\ w){7}”或摘要。