View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0015411||Scribus||General||public||2018-08-27 13:37||2019-06-04 20:56|
|Target Version||Fixed in Version||1.5.5.svn|
|Summary||0015411: Checkbox value is rendered as "4" (or some other value) by iText|
|Description||When using scribus 1.4.7, exported pdf values for checked checkboxes are "Yes"|
Using scribus 1.5.4 seems to be checkbox name (eg: "mycheck")
This results in issues when flattening files in Itext, displaying numbers instead of cross/check/whatever.
|Steps To Reproduce||Generate a document with a checkbox named "myCheck" and print its value in console.|
When checked, 1.4.7 will show "Yes"
while 1.5.4. will print "myCheck"
|Additional Information||Related: https://bugs.scribus.net/view.php?id=7322|
|Tags||No tags attached.|
a154.pdf (13,429 bytes)
a147.pdf (3,288 bytes)
According to SVN changelog the change in 1.5.x was performed in order to implement radio buttons behavior. Fyi in PDF forms, check boxes and radio buttons are basically described in the same way, just with a different set of flags. As far as I can see the reason for that change is that a "Yes" value is completely insufficient to describe the state of a checkbox/radio group.
Anyway assuming that the value of a checkbox will be "Yes" if checked is incorrect as PDF specifications do not provide such guarantee at all. iText would be in error if it is performing such assumption. In fact PDF specifications only guarantee the value will be "Off" if the check box is unchecked.
The above doesn't work, as it _expects_ "Off"/myCheck. Is value="myCheck" Acrobat Forms "compliant"? What value Acrobat (Pro) uses when checked?
f.checkThisBox(0, true); // Check the box
f.checkThisBox(0, false); // Uncheck the box
In the same way, never test against value "Yes" to check if a checkbox is checked. You should test if value is different than "Off".
Tested checkThisBox but it failed too.
Do you have any source to support your statement: 'PDF specifications only guarantee the value will be "Off" if the check box is unchecked.'
Third-Party would argue they're doing it right unless proven.
Thanks a lot for your help.
Here is a link to PDF 1.5 specification which is the last PDF version we export to:
Page 626, Checkboxes:
"Each state can have a separate appearance, defined by an appearance stream in
the appearance dictionary of the field’s widget annotation (see Section 8.4.4, “Appearance
Streams”). The appearance for the off state is optional, but if present
must be stored in the appearance dictionary under the name Off. The recommended
name for the on state is Yes, but this is not required.
The V entry in the field dictionary (see Table 8.60 on page 615) holds a name object
representing the checkbox’s appearance state, which is used to select the appropriate
appearance from the appearance dictionary."
Here, "the V entry in the field dictionary" correspond to the field value. The field value contains a name which must match the name of the corresponding appearance stream. Notice then the wording for the "Off" state, " ... *must* be stored in the appearance dictionary under the name Off", vs the wording for the checked state, ".. but this is not required".
PDF specs leave in fact the possibility for check boxes to represent more than two states. Tri-state checkboxes can be perfectly represented if appearance stream dictionary contains the proper data.
I restored the old behavior for simple check boxes, so that the exported values is "Yes" again. The radio button behavior will remain as is, ie checked state value is the field name, as this is what PDF Specs requires for radio buttons.
For your information software such as Indesign allows to choose checkbox export value for checked state and set that value to something other than "Yes". So my complaint vs iText remains valid.
If I remember correctly, using exportValues didn't help at all. The value changed to "Yes", but after iText processing they were rendered blank/unchecked
I'll try 1.5.5.svn as soon as i can to check if this change works in any way.
|2018-08-27 13:37||tanimientras||New Issue|
|2018-08-27 13:37||tanimientras||File Added: a154.pdf|
|2018-08-27 13:37||tanimientras||File Added: a147.pdf|
|2018-08-28 02:12||jghali||Note Added: 0045418|
|2018-08-28 02:13||jghali||Note Edited: 0045418||View Revisions|
|2018-08-28 06:26||jghali||Note Edited: 0045418||View Revisions|
|2018-08-28 09:06||tanimientras||Note Added: 0045420|
|2018-08-28 17:48||jghali||Note Added: 0045421|
|2018-09-05 10:14||tanimientras||Note Added: 0045428|
|2018-09-05 19:24||jghali||Note Added: 0045429|
|2018-09-06 07:45||tanimientras||Note Added: 0045432|
|2018-09-07 19:52||jghali||Summary||Checkbox value is rendered as "4" (may be other value) => Checkbox value is rendered as "4" (or some other value) by iText|
|2018-09-07 21:04||jghali||Note Added: 0045445|
|2018-09-07 21:04||jghali||Assigned To||=> jghali|
|2018-09-07 21:04||jghali||Status||new => resolved|
|2018-09-07 21:04||jghali||Resolution||open => fixed|
|2018-09-07 21:04||jghali||Fixed in Version||=> 1.5.5.svn|
|2018-09-07 21:26||jghali||Severity||block => minor|
|2018-09-10 06:37||tanimientras||Note Added: 0045452|
|2019-06-04 20:56||cbradney||Status||resolved => closed|