2012-11-15 108 views
1

我想執行以下代碼隱藏字段如何隱藏AcroForm中的字段?

fields.SetFieldProperty("numberOfPages","setfflags", PdfAnnotation.FLAGS_INVISIBLE, null); 
or 
    fields.SetFieldProperty("slash", "setfflags", PdfAnnotation.FLAGS_HIDDEN, null); 

我從iText的行動書的代碼。我正在使用Itextsharp 4.1.6,但沒有結果,沒有發生錯誤。我該怎麼辦?順便說一句「setfflags」來自這本書。

回答

0

您將帶有註釋屬性("setflags")的字段屬性(​​)混淆不清。請閱讀documentation,請不要使用iTextSharp 4.1.6,因爲this reason

3

我知道這個問題被問到2年前,但我無法找到答案在任何地方在線,希望這會幫助別人誰發現這個職位。繼承人我就是這樣做的iTextSharp的4.1.6

PdfReader reader = new PdfReader(Server.MapPath("[PATH_TO_PDF.pdf]")); 
using (MemoryStream ms = new MemoryStream()) 
{ 
    PdfStamper stamper = new PdfStamper(reader, ms); 
    AcroFields fields = stamper.AcroFields; 
    fields.SetFieldProperty("[FIELD_NAME]", "flags", PdfFormField.FLAGS_HIDDEN, null); 
    stamper.FormFlattening = true; 
    stamper.Close(); 
} 

得到這個工作我找到了答案通過了iTextSharp的源這裏尋找: https://github.com/itextsharper/iTextSharp-4.1.6/blob/master/iTextSharp/text/pdf/AcroFields.cs#L1037

如果你看一下這些方法的意見,就說明你有效的財產名稱和他們做什麼。

+0

'stamper.FormFlattening = true;' - 這使整個表單變平。我懷疑OP是否真的想要那個...... – mkl