Of course it doesn't draw - it has no appearance (/AP).   Acrobat/Reader is 
correct - your PDF is wrong.

I am GUESSING that for some reason iTextSharp isn't generating an appearance 
for the read_only field...Check the code.

Leonard

-----Original Message-----
From: Kevin Brown [mailto:kevin.br...@xportability.com] 
Sent: Tuesday, February 24, 2009 8:20 PM
To: itext-questions@lists.sourceforge.net
Subject: [iText-questions] Cannot get Readonly Field to display

All:

We are using the latest version of iTextSharp and have an issue that is 
perplexing us. We are generating an Acroform with some fields ... all kinds of 
fields.  See attached example of one sample generated PDF.

The problem exists only in fields marked as "read only" and further the problem 
only seems to occur when displayed in Adobe Reader (not other PDF viewers). 
When displayed with Adobe Reader, these fields do not appear as visible but the 
fields are there as confirmed if submitting the form information to our server 
or examining the PDF.

The same code is used for regular textbox (works fine), password (works fine). 
If default values exist, they are shown in the PDF. But when setting a Field 
Flag of "PdfFormField.FF_READ_ONLY", the default value is not visible in the 
form. We think the code works because:

A) it works for all other cases
B) totally works in other viewers (The same PDF when viewed in FoxIt shows the 
field exactly as expected with the field contents as read only.)

A sample PDF is attached showing this behavior. There is a field in the table 
marked as FF_READ_ONLY after the cell labeled "Simple Reader Only Textbox". The 
field contains the text "Cannot change contents" and the field exists and has 
this value (confirmed by submitting to our server -- will work with XFDF submit 
only from Adobe Reader, not an FDF submit from other products). 

The question is:

a) Is this a "your code is all wrong" problem (likely :)
b) Is this an Adobe Reader bug? (we tried and can create read-only fields with 
Acrobat)
c) Is this an iTextSharp bug?

Kevin Brown

Code sample:

If the following case statement is called with "f_readonly" as "true", then the 
PDF contains the field but no default value is visible (in Adobe Reader only). 
If it is called with f_readonly as "false" or "f_type" as password, the field 
works perfectly in Adobe Reader.

case "password":
case "textbox":
    tp = cb.CreateAppearance(urx - llx, ury - lly);
    da = (PdfAppearance)tp.Duplicate;
    field = PdfFormField.CreateTextField(writer, false, false, 0);
    field.SetWidget(new iTextSharp.text.Rectangle(llx, lly, urx, ury), 
PdfAnnotation.HIGHLIGHT_INVERT);
    setBordersAndColors(field, f_borderstyle, f_bordersize, f_bordercolor, 
f_backcolor);
    field.FieldName = f_name;
    da.SetFontAndSize(setFont(formfontfam, formfontstyle, formfontweight), 
Convert.ToSingle(formfontsize));
    if (formfontcolor.StartsWith("#"))
        da.SetColorFill(new
iTextSharp.text.Color(HexToColor(formfontcolor)));
    else
        da.SetColorFill(new
iTextSharp.text.Color(System.Drawing.Color.FromName(formfontcolor)));
    field.DefaultAppearanceString = da;
    if (f_default.Length > 0)
        field.ValueAsString = f_default;
    if (f_type == "password")
        field.SetFieldFlags(PdfFormField.FF_PASSWORD);
    if (f_readonly == "true")
        field.SetFieldFlags(PdfFormField.FF_READ_ONLY);
    field.SetPage();
    acroform.AddFormField(field);
    break;

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php

Reply via email to