> On 25 Jun 2015, at 17:52, Evan Williams <[email protected]> wrote: > > So that worked splendidly, but there is one anomaly which is that every > COSObject keyset includes a key for 'Off' as well as the key for the actual > button. I am just filtering out keys named 'Off' and it is all good, but I > think that would cause some problems if i ever found a form where there was > a radio button named 'Off'.
Each radio option is a "widget" which contains a "normal appearance", with one key/value for on (an arbitrary name) and one for off (called "Off"). These define the visual appearance of on/off. I'm not sure that it's possible to have a radio value called "Off". -- John > I am certain that this problem is due to my ignorance. I just don't > understand the document structure well enough (which ideally I wouldn't > need to since my job is about prescriptions and not pdf documents). > > For my purposes I don't care, but for the API I would think that would have > to be dealt with. > > Thank you again. This was a huge help. > > On Thu, Jun 25, 2015 at 3:59 PM, Maruan Sahyoun <[email protected]> > wrote: > >> Hi, >> >>> Am 25.06.2015 um 19:31 schrieb Maruan Sahyoun <[email protected]>: >>> >>> Hi, >>> >>>>> Am 25.06.2015 um 19:27 schrieb Evan Williams <[email protected] >>>> : >>>> >>>> I apologize for my stupidity, but I have no idea how to get the value I >>>> need from a PDAppearanceEntry. It is obviously a map of appearance >> streams >>>> but I am not certain how to extract the actual name of the widget from >> the >>>> appearance entry. Could you possibly give me a bit more detail >>> >>> I'll send you a quick sample later today for the Gender field - and no >> need to apologize - it's us who should make it easier to work with PDFBox. >> >> Here you go: >> >> >> PDDocument doc = PDDocument.load( new >> File("RheumatoidArthritis.pdf") ); >> PDAcroForm form = doc.getDocumentCatalog().getAcroForm(); >> PDTerminalField gender = (PDTerminalField) form.getField("Gender"); >> >> for (PDAnnotationWidget widget : gender.getWidgets()) >> { >> System.out.println(((COSDictionary) >> widget.getAppearance().getNormalAppearance().getCOSObject()).keySet()); >> } >> >> BR >> Maruan >> >> >>> >>> BR >>> Maruan >>> >>>> >>>> Thank you, and once again, I apologize for being dense. >>>> >>>> On Thu, Jun 25, 2015 at 12:40 PM, Maruan Sahyoun < >> [email protected]> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>>> Am 25.06.2015 um 16:23 schrieb Evan Williams < >> [email protected]>: >>>>>> >>>>>> When I said getOptions() returned null I meant it returns empty list. >> Not >>>>>> enough coffee. Everything else applies. >>>>> >>>>> I've created https://issues.apache.org/jira/browse/PDFBOX-2841 < >>>>> https://issues.apache.org/jira/browse/PDFBOX-2841> to handle that. >>>>> >>>>> - getOptions() returns the export values of the radio button group so >>>>> that's not what you are looking for (and we might rename that method to >>>>> better reflect it's intention) >>>>> - you could use getWidgets() to get the individual radio buttons and >> from >>>>> there for each individual widget >>>>> widget.getAppearance().getNormalAppearance() gives you the dictionary >> to >>>>> get the values from. >>>>> >>>>> BR >>>>> Maruan >>>>> >>>>>> >>>>>> On Thu, Jun 25, 2015 at 10:07 AM, Evan Williams < >>>>> [email protected]> >>>>>> wrote: >>>>>> >>>>>>> Absolutely you can! >> https://drive.google.com/file/d/0B9TQWtr2Ipa9YlRORHVlTDVGS0k/view?usp=sharing >>>>>>> >>>>>>> But I strongly, strongly suspect that it is nothing to do with the >> pdf >>>>>>> document itself because there are many many forms from many many >> sources >>>>>>> and they all exhibit the same behavior. >>>>>>> >>>>>>> In the linked document I was, for example, able to enumerate 'Male' >> and >>>>>>> 'Female' as values for the Radio Button group 'Gender' with my 1.8.9 >>>>> code. >>>>>>> In my 2.0 code I can't. >>>>>>> >>>>>>> The way I used to enumerate radio button groups was to call the >>>>> getKids() >>>>>>> method an the radio collection and enumerate the returned fields. >> That >>>>> is >>>>>>> not possible in 2.0 and I don't have anything that works. the >> PDButton >>>>>>> method goetOptions() always returns null. >>>>>>> >>>>>>> Thank you! >>>>>>> >>>>>>> On Thu, Jun 25, 2015 at 2:02 AM, Maruan Sahyoun < >> [email protected] >>>>>> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>>> Am 24.06.2015 um 22:20 schrieb Evan Williams < >>>>> [email protected] >>>>>>>>> : >>>>>>>>> >>>>>>>>> I have an application written to use pdfbox 1.8.9 which is all >> about >>>>>>>>> filling forms. I have a form library and I fill in values in forms >>>>> using >>>>>>>>> data I am handed. >>>>>>>>> >>>>>>>>> One of the things I also need to do is do introspection on the pdf >>>>>>>> document >>>>>>>>> to find out what fields are in it and make a template for filling >> the >>>>>>>> form >>>>>>>>> with data in my application. >>>>>>>>> >>>>>>>>> I am trying to get my application to work with pdfbox 2.0. Getting >> the >>>>>>>>> forms I have to fill was pretty straightforward. >>>>>>>>> >>>>>>>>> But I am having some difficulty with the introspection. >>>>>>>>> >>>>>>>>> For the templates I like to have an enumeration of the possible >> values >>>>>>>> of >>>>>>>>> the field if the field has such values. For example the names of >> the >>>>>>>>> possible values for a collection of radio buttons. >>>>>>>>> >>>>>>>>> I understood how to get those values for the 1.8.9 >> PDRadioCollection >>>>>>>> but I >>>>>>>>> have tried various things to get the same information for the 2.0 >>>>>>>>> PDRadioButton and I am not getting the information I need. the >>>>>>>> getOptions() >>>>>>>>> method on PDButton looked like exactly what I needed. But it always >>>>>>>> returns >>>>>>>>> null for me. >>>>>>>> >>>>>>>> could you upload a sample form to a public location to take a look? >>>>>>>> >>>>>>>> BR >>>>>>>> Maruan >>>>>>>> >>>>>>>>> As an aside I also used to get the on and off values of checkboxes >>>>> with >>>>>>>>> getOnValue() and getOffValue(). These are in the Javadoc but >> appear to >>>>>>>> not >>>>>>>>> be in the actual API. I don't care very much about those, but they >>>>> were >>>>>>>>> nice to have, and the Javadoc should be accurate as much as >> possible. >>>>>>>>> >>>>>>>>> If anyone can help me with the RadioButton thing that would be a >> big >>>>>>>> help. >>>>>>>>> >>>>>>>>> Thank you. >>>>>>>>> -- >>>>>>>>> *Evan Williams* >>>>>>>>> Sr. Software Engineer >>>>>>>>> [email protected] >>>>>>>>> >>>>>>>>> *www.ZappRx.com <http://www.zapprx.com/>* >> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>>> For additional commands, e-mail: [email protected] >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Evan Williams* >>>>>>> Sr. Software Engineer >>>>>>> [email protected] >>>>>>> >>>>>>> *www.ZappRx.com <http://www.zapprx.com/>* >>>>>> >>>>>> >>>>>> -- >>>>>> *Evan Williams* >>>>>> Sr. Software Engineer >>>>>> [email protected] >>>>>> >>>>>> *www.ZappRx.com <http://www.zapprx.com/>* >>>> >>>> >>>> -- >>>> *Evan Williams* >>>> Sr. Software Engineer >>>> [email protected] >>>> >>>> *www.ZappRx.com <http://www.zapprx.com/>* >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] > > > -- > *Evan Williams* > Sr. Software Engineer > [email protected] > > *www.ZappRx.com <http://www.zapprx.com/>* --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

