删除注释iTextSharp

时间:2016-04-05 18:58:42

标签: c# pdf annotations itextsharp highlight

我能够在pdf中突出显示文本,但我想知道如何删除我刚刚添加的注释。我添加以下代码:

    PdfAnnotation highlight = PdfAnnotation.CreateMarkup(stamper.Writer, rectangle, null, PdfAnnotation.MARKUP_HIGHLIGHT, quadPoints.ToArray());
    highlight.Color = BaseColor.RED;
    stamper.AddAnnotation(highlight, page);

如果我要在列表中保留PdfAnnotation本身的引用,我可以简单地回到它并使用它来删除它吗?

一个典型的场景是,如果我必须突出显示某些内容然后再进行检查并意识到它不再需要突出显示,我可以返回并撤消它。我正在考虑制作一份我必须强调的所有内容列表,然后一旦我确定该列表中的所有内容都需要突出显示,请继续执行此操作,但这种方式似乎是我刚回去的两倍我发现后立刻解开了亮点。因此,如果我至少保留了PdfAnnotation的列表,我是否可以返回列表中的最后一个列表,并执行类似highlight.Remove();的操作,如果我已经有了它的引用。或者我是否必须标记注释,然后为所有PdfDictionary循环页面并找到相同的标记。

1 个答案:

答案 0 :(得分:0)

PdfAnnotation扩展PdfDictionary,这意味着您可以向该字典添加自定义条目。请参阅我对问题的回答:Insert PieceInfo in merged document with ITextSharp

在这个答案中,我在页面词典中添加了一个额外的条目:ITXT_PageMarker。请注意,我使用了一个第二个类名称,它以iText在ISO上注册的前缀开头,以避免与页面词典中现有或将来的键发生冲突。

通过添加这个额外的键(在我的情况下添加到页面字典;在你的情况下添加到注释字典),你可以在完成后搜索这个元素(在我的情况下是页面;在你的情况下是注释) PDF。

警告:如果您想要添加注释然后一次删除它,则不会回答您的问题。正如Chris Haas在评论中提到的那样,你的问题有些令人困惑。