This is the exact code that's generating this :

            // step 1
            Document document = new Document();
            // step 2
            PdfWriter writer =
                PdfWriter.GetInstance(document, new
FileStream(@"C:\Users\Andre\Desktop\testpdf.pdf", FileMode.Create));
            // step 3
            document.Open();
            PdfContentByte canvas = writer.DirectContent;
            Rectangle rect = new Rectangle(100, 100, 110, 110);
            PdfFormField field;
            PdfFormField radiogroup = PdfFormField.CreateRadioButton(writer,
false);
            radiogroup.FieldName = "language";
            RadioCheckField checkbox = new RadioCheckField(writer, rect,
"check1", "on_check1");
            field = checkbox.RadioField;
            radiogroup.AddKid(field);
            rect = new Rectangle(120, 100, 130, 110);
            checkbox = new RadioCheckField(writer, rect, "check2",
"on_check2");
            field = checkbox.RadioField;
            radiogroup.AddKid(field);
            writer.AddAnnotation(radiogroup);
            document.Close();

The checkboxes are around the bottom somewhere, and you'll need form
highlighting to see them as I removed the bits of code adding the borders
while I was cleaning my test of anything extraneous.

If it makes any difference, I'm using Adobe Reader 9.4

Thanks for all the help.


On 12 April 2011 16:32, Mark Storer <msto...@autonomy.com> wrote:

>  I appologize for the confusion, mostly on my end... and what confusion
> exists on your end is largely because I said: "CreateRadioButton creates
> the visual element for a radio button field".  I was wrong.
>
> I'm sorry.
>
> So, from the top.  You're not setting NO_TOGGLE_TO_OFF anywhere, either via
> the "CreateRadioButton(writer, false)", or via RadioCheckField.options.  Yet
> you are getting the "no toggle to off" behavior.  Correct?
>
> Could you attach your PDF?  I'd like to check for the presence of the flag
> despite your best efforts, and see the behavior for myself in Acrobat Pro
> where I can properly disect it.
>
> --Mark Storer
>   Senior Software Engineer
>   Cardiff.com
>
> import legalese.Disclaimer;
> Disclaimer<Cardiff> DisCard = null;
>
>
>
>  ------------------------------
> *From:* André Lemay [mailto:lemay.an...@gmail.com]
> *Sent:* Tuesday, April 12, 2011 12:18 PM
>
> *To:* Post all your questions about iText here
> *Subject:* Re: [iText-questions] iTextSharp RadioGroup
> noToggleToOffnotworking.
>
> Sorry, I'm not sure which extra parameter you're referring to. By
> createCheck() do you mean the method that created the parent field or that
> creates the kid field? If it's the latter, iTextSharp doesn't have methods
> like that, instead you have lines like PdfFormField field =
> checkbox.RadioField; (RadioField being a property of the RadioCheckField
> class, or possibly it's base class, I'm not sure, but it's a property, and
> not a method, and thus I have no way of changing how it behaves short of
> extending the iTextSharp class and overriding it, which seems rather
> excessive for this).
>
> As for the parent's behaviour, you said that the CreateRadioButton() method
> only creates the appearance, so how would I change the options of the parent
> field itself? Right now, the kid fields are being added to the PdfFormField
> which is initialized to whatever CreateRadioButton() returns, so I would
> assume that that PdfFormField is the parent, but I can't set any related
> (checkbox/radiogroup specific) options on it (at least not in any way I can
> tell).
>
> On 12 April 2011 14:53, Mark Storer <msto...@autonomy.com> wrote:
>
>>  Ah.
>>
>> Okay, then just drop the extra parameter in the createCheck() call (or
>> change it to false, same results).  The kids were inheriting the parent's
>> behavior.  And don't set the kid's option either.
>>
>> Final Point:  If you're using some Off Brand PDF viewer, they may not have
>> implemented the "toggle to off" behavior in the first place (or they have a
>> bug).
>>
>> --Mark Storer
>>   Senior Software Engineer
>>   Cardiff.com
>>
>> import legalese.Disclaimer;
>> Disclaimer<Cardiff> DisCard = null;
>>
>>
>>
>>  ------------------------------
>>  *From:* André Lemay [mailto:lemay.an...@gmail.com]
>> *Sent:* Tuesday, April 12, 2011 11:40 AM
>> *To:* Post all your questions about iText here
>> *Subject:* Re: [iText-questions] iTextSharp RadioGroup noToggleToOff
>> notworking.
>>
>>   Thanks for the reply, but I think one of us of misunderstanding
>> something..
>>
>> checkbox.Option |= PdfFormField.FF_NO_TOGGLE_TO_OFF; looks to me like that
>> would set the checkboxes to NOT be uncheckable. This is the behaviour that I
>> want to remove, i.e. I want the checkboxes to be uncheckable, so that their
>> behaviour would be something like this :
>>
>> given checkboxes A and B, both starting unchecked, click A->A is checked,
>> click B->A is unchecked and B is checked, click B->B is unchecked.
>>
>> If it helps at all, here's a simplified example that should be runnable on
>> it's own (note that as it's iTextSharp, it would need to be changed a bit to
>> work in Java with plain old iText) :
>>
>>
>>             Document document = new Document();
>>             PdfWriter writer = PdfWriter.GetInstance(document, new
>> FileStream(@"C:\Users\Andre\Desktop\testpdf.pdf", FileMode.Create));
>>             document.Open();
>>
>>             PdfContentByte canvas = writer.DirectContent;
>>             Rectangle rect = new Rectangle(100, 100, 110, 110);
>>             PdfFormField field;
>>             PdfFormField radiogroup =
>> PdfFormField.CreateRadioButton(writer, false);
>>             radiogroup.FieldName = "language";
>>             RadioCheckField checkbox = new RadioCheckField(writer, rect,
>> "check1", "on_check1");
>>             checkbox.Options |= PdfFormField.FF_NO_TOGGLE_TO_OFF;
>>             field = checkbox.RadioField;
>>             radiogroup.AddKid(field);
>>
>>             rect = new Rectangle(120, 100, 130, 110);
>>             checkbox = new RadioCheckField(writer, rect, "check2",
>> "on_check2");
>>             checkbox.Options |= PdfFormField.
>>             field = checkbox.RadioField;
>>             radiogroup.AddKid(field);
>>
>>             writer.AddAnnotation(radiogroup);
>>             document.Close();
>>
>> On 12 April 2011 14:24, Mark Storer <msto...@autonomy.com> wrote:
>>
>>>  Took me a couple readings of the code to figure this one out myself.
>>>
>>> CreateRadioButton creates the visual element for a radio button field,
>>> not the parent field under which the kids reside.  The "no toggle off"
>>> behavior should be in the individual child fields, not the parent.
>>>
>>> The parent field is working, so that's clearly not a big deal.  And to
>>> fix your button creation code, you need to add:
>>>
>>>   checkBox.options |= PdfFormField.FF_NO_TOGGLE_TO_OFF;
>>>
>>> No that isn't one of the listed options in BaseField's JavaDoc.  The full
>>> list of valid options are all the PdfFormField.FF_* contstants, some of
>>> which are duplicated in BaseField without the leading FF_.
>>>
>>> --Mark Storer
>>>   Senior Software Engineer
>>>   Cardiff.com
>>>
>>> import legalese.Disclaimer;
>>> Disclaimer<Cardiff> DisCard = null;
>>>
>>>
>>>
>>>  ------------------------------
>>> *From:* André Lemay [mailto:lemay.an...@gmail.com]
>>> *Sent:* Tuesday, April 12, 2011 8:54 AM
>>> *To:* itext-questions@lists.sourceforge.net
>>> *Subject:* [iText-questions] iTextSharp RadioGroup noToggleToOff not
>>> working.
>>>
>>>   Here are the bits of code in question :
>>>
>>> [code]
>>> PdfFormField group1 = PdfFormField.CreateRadioButton(writer, false);
>>>             group1.FieldName = "group1";
>>>             group1.AddKid(CreateCheckBox(over, "check1", 8.5f, 363,
>>> 459.8f + GIFLOffset_1, 0.3f));
>>>             group1.AddKid(CreateCheckBox(over, "check2", 8.5f, 471,
>>> 459.8f + GIFLOffset_1, 0.3f));
>>>             writer.AddAnnotation(group1);[/code]
>>>
>>> and the CreateCheckBox method :
>>> [code]
>>> private static PdfFormField CreateCheckBox(PdfContentByte layer, String
>>> name, float size, float llx, float lly, float thickness)
>>>         {
>>>             PdfFormField field;
>>>             RadioCheckField checkbox;
>>>             Rectangle rect = new Rectangle(llx, lly, llx + size, lly +
>>> size);
>>>             checkbox = new RadioCheckField(layer.PdfWriter, rect, name,
>>> "on_" + name);
>>>             checkbox.CheckType = RadioCheckField.TYPE_CHECK;
>>>             checkbox.BackgroundColor = BaseColor.WHITE;
>>>             checkbox.BorderColor = BaseColor.BLACK;
>>>             checkbox.BorderStyle = PdfBorderDictionary.STYLE_SOLID;
>>>             checkbox.BorderWidth = 0.4f;
>>>             checkbox.FieldName = name;
>>>             field = checkbox.RadioField;
>>>             layer.Rectangle(rect);
>>>             layer.SetLineWidth(0.4f);
>>>             layer.Stroke();
>>>             return field;
>>>         }[/code]
>>>
>>> This code is part of a larger program that generates a customized
>>> document. The checkboxes are created fine and show up properly, and I can
>>> check one or the other (but not both) as expected, however they cannot be
>>> unchecked at all.
>>>
>>> I was under the impression that the false value passed into the
>>> CreateRadioButton method should make it so that you can uncheck a box so
>>> that neither will be checked, but even changing that to true had no effect
>>> on behaviour (that behaviour being that once one of the checkboxes is
>>> checked, one will always be checked unless a reset button elsewhere on the
>>> form is clicked).
>>>
>>> Any help getting the checkboxes to be uncheckable would be greatly
>>> appreciated.
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Forrester Wave Report - Recovery time is now measured in hours and
>>> minutes
>>> not days. Key insights are discussed in the 2010 Forrester Wave Report as
>>> part of an in-depth evaluation of disaster recovery service providers.
>>> Forrester found the best-in-class provider in terms of services and
>>> vision.
>>> Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
>>> _______________________________________________
>>> iText-questions mailing list
>>> iText-questions@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/itext-questions
>>>
>>> iText(R) is a registered trademark of 1T3XT BVBA.
>>> Many questions posted to this list can (and will) be answered with a
>>> reference to the iText book: http://www.itextpdf.com/book/
>>> Please check the keywords list before you ask for examples:
>>> http://itextpdf.com/themes/keywords.php
>>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Forrester Wave Report - Recovery time is now measured in hours and minutes
>> not days. Key insights are discussed in the 2010 Forrester Wave Report as
>> part of an in-depth evaluation of disaster recovery service providers.
>> Forrester found the best-in-class provider in terms of services and
>> vision.
>> Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
>> _______________________________________________
>> iText-questions mailing list
>> iText-questions@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/itext-questions
>>
>> iText(R) is a registered trademark of 1T3XT BVBA.
>> Many questions posted to this list can (and will) be answered with a
>> reference to the iText book: http://www.itextpdf.com/book/
>> Please check the keywords list before you ask for examples:
>> http://itextpdf.com/themes/keywords.php
>>
>
>
>
> ------------------------------------------------------------------------------
> Forrester Wave Report - Recovery time is now measured in hours and minutes
> not days. Key insights are discussed in the 2010 Forrester Wave Report as
> part of an in-depth evaluation of disaster recovery service providers.
> Forrester found the best-in-class provider in terms of services and vision.
> Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
> _______________________________________________
> iText-questions mailing list
> iText-questions@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/itext-questions
>
> iText(R) is a registered trademark of 1T3XT BVBA.
> Many questions posted to this list can (and will) be answered with a
> reference to the iText book: http://www.itextpdf.com/book/
> Please check the keywords list before you ask for examples:
> http://itextpdf.com/themes/keywords.php
>

Attachment: testpdf.pdf
Description: Adobe PDF document

------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php

Reply via email to