Como criar e aplicar redações?

Existe alguma maneira de implementar a edição de PDF usando o iText? Trabalhando com a API do Acrobat SDK, descobri que as redações também parecem apenas anotações com o subtipo "Redigir". Então, eu queria saber se é possível criar aqueles no iTextSharp também?

Com o Acrobat SDK, o código gostaria da seguinte maneira:

AcroPDAnnot annot = page.AddNewAnnot(-1, "Redact", rect) as AcroPDAnnot;

(Não pude aplicá-los emboraannot.Perform(avDoc) parece não funcionar. Ideias?)

No iTextSharp, posso criar anotações de texto simples como esta

PdfAnnotation annotation = PdfAnnotation.CreateText(stamper.Writer, rect, "Title", "Content", false, null);

A única outra opção que encontrei foi criar retângulos pretos, como explicadoaqui, mas isso não remove o texto (ele ainda pode ser selecionado). Quero criar anotações de redação e, eventualmente, aplicar a redação.

// Atualização:

Como finalmente consegui criar um exemplo de trabalho, queria compartilhá-lo aqui. Ele não aplica as redações no final, mas cria redações válidas que são mostradas corretamente no Acrobat e podem ser aplicadas manualmente.

            using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
        {
            PdfReader pdfReader = new PdfReader(stream);
            // Create a stamper
            using (PdfStamper stamper = new PdfStamper(pdfReader, new FileStream(newFileName, FileMode.OpenOrCreate)))
                {
                    // Add the annotations
                    int page = 1;
                    iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(500, 50, 200, 300);

                    PdfAnnotation annotation = new PdfAnnotation(stamper.Writer, rect);
                    annotation.Put(PdfName.SUBTYPE, new PdfName("Redact"));

                    annotation.Title = "My Author"; // Title = author
                    annotation.Put(new PdfName("Subj"), new PdfName("Redact")); // Redaction "Subject". When created in Acrobat, this is always set to "Redact"

                    float[] fillColor = { 0, 0, 0 }; // Black
                    annotation.Put(new PdfName("IC"), new PdfArray(fillColor)); // Interior color

                    float[] fillColorRed = { 1, 0, 0 }; // Red
                    annotation.Put(new PdfName("OC"), new PdfArray(fillColorRed)); // Outline color

                    stamper.AddAnnotation(annotation, page);
                }

        }

questionAnswers(1)

yourAnswerToTheQuestion