Мне удалось выделить текст в pdf, но мне было интересно, как я могу удалить добавленную мной аннотацию. Я добавляю со следующим кодом:Удалить Annotation iTextSharp
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 и найти тот же тег.
Вы говорите об «добавлении и удалении его за один проход» или «добавлении его сегодня и его удалении завтра»? Я смущен, потому что вы говорите о сохранении ссылки на объект, который звучит как первый. –
Привет, Крис, – peacefullearner
Вообще говоря, при вызове методов 'AddXXX' для большинства вещей (кроме' PdfDictionary' и других базовых коллекций) предполагается, что это односторонний путь, который записывается в PDF и по существу делается с. Единственный способ «отменить» эти операции - закрыть PDF-файл и выполнить второй проход. _might_ быть слушателем или событием, которое вы могли бы реализовать, чтобы вы могли выполнить post-process до но, честно говоря, было бы намного проще, просто сохранить собственную коллекцию «Аннотации» и страниц, добавить/удалить по мере необходимости, а затем добавить в «Stampe» r' в конце, когда вы закончите. –