Después de una nueva revisión, se anula el dictamen sobre el terreno. Resulta que si aplana la matriz, los campos no se muestran en el documento resultante (porque carecen de la configuración de "apariencia"). Por cierto, el aplanamiento del formulario evita nuevas ediciones de un campo de formulario. Ahora podemos agregar apariencia al formulario, sin embargo, una manera más fácil es usar la clase TextField y no preocuparse por la configuración explícita de objetos 'apariencia'.
public void ABetterWayToAddFormFieldToExistingPDF()
{
PdfReader reader = new PdfReader(@"c:\existing.pdf");
FileStream out = new FileStream(@"C:\existingPlusFields.pdf", FileMode.Create, FileAccess.Write);
PdfStamper stamp = new PdfStamper(reader, out);
TextField field = new TextField(stamp.Writer, new iTextSharp.text.Rectangle(40, 500, 360, 530), "some_text");
// add the field here, the second param is the page you want it on
stamp.AddAnnotation(field.GetTextField(), 1);
stamp.FormFlattening = true; // lock fields and prevent further edits.
stamp.Close();
}
Los campos agregados con AddAnotation de todos modos no están aplanados, vea el comentario sobre la propiedad Formflattening en el código fuente de itextsharp http://sourceforge.net/p/itextsharp/code/453/tree/trunk/src/core/iTextSharp/text /pdf/PdfStamper.cs –