आगे की समीक्षा के बाद, क्षेत्र पर शासन उलटा हुआ है। बाहर निकलता है यदि आप स्टैमर को फ़्लैटन करते हैं तो फ़ील्ड परिणामस्वरूप दस्तावेज़ पर दिखाई नहीं देते हैं (क्योंकि उनमें 'उपस्थिति' सेटिंग नहीं होती है)। बीटीडब्लू, फॉर्म फ़्लैटिंग फॉर्म फॉर्म के आगे के संपादन को रोकता है। अब हम फॉर्म में उपस्थिति जोड़ सकते हैं, हालांकि, टेक्स्टफिल्ड क्लास का उपयोग करना और 'उपस्थिति' ऑब्जेक्ट्स को स्पष्ट रूप से सेट करने के बारे में चिंता करने का एक आसान तरीका नहीं है।
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();
}
स्रोत
2009-12-08 14:31:29
AddAnotation के साथ जोड़े गए फ़ील्ड वैसे भी फ़्लैट नहीं किए गए हैं, Formexatthar प्रॉपर्टी पर itextsharp के स्रोत कोड में टिप्पणी देखें http://sourceforge.net/p/itextsharp/code/453/tree/trunk/src/core/iTextSharp/text /pdf/PdfStamper.cs –