You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "wai (Jira)" <ji...@apache.org> on 2022/05/17 03:50:00 UTC
[jira] [Created] (PDFBOX-5436) PDTerminalField.applyChange() not longer check for getAcroForm().getNeedAppearances()
wai created PDFBOX-5436:
---------------------------
Summary: PDTerminalField.applyChange() not longer check for getAcroForm().getNeedAppearances()
Key: PDFBOX-5436
URL: https://issues.apache.org/jira/browse/PDFBOX-5436
Project: PDFBox
Issue Type: Bug
Components: PDModel
Affects Versions: 3.0.3 JBIG2
Reporter: wai
In version 2.0.26, I fill fields in PDF form by
{code:java}
PDDocument pdf = ...; // loaded a PDF form
PDAcroForm pdfForm = pdf.getDocumentCatalog().getAcroForm();
pdfForm.setNeedAppearances(true);
pdfForm.getField("field_name_xxxx").setValue("some text");{code}
Although the PDF form doesn't contain all glyph for the text set, {{org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange()}} would not apply {{constructAppearances()}} as {{setNeedAppearances(true)}} configured.
However when we come to version 3.0.0-alpha3, {{PDTerminalField.applyChange()}} won't check the status from {{getAcroForm().getNeedAppearances()}} before invoking {{{}constructAppearances(){}}}. This behaviour contradicted the comment wrote "{{{}Applies a value change to the field. Generates appearances if required and raises events.{}}}"
+version 2.0.26+
{code:java}
package org.apache.pdfbox.pdmodel.interactive.form;
public abstract class PDTerminalField extends PDField
{
/**
* Applies a value change to the field. Generates appearances if required and raises events.
*
* @throws IOException if the appearance couldn't be generated
*/
protected final void applyChange() throws IOException
{
if (!getAcroForm().getNeedAppearances())
{
constructAppearances();
}
// if we supported JavaScript we would raise a field changed event here
}{code}
+3.0.0-alpha3+
{code:java}
package org.apache.pdfbox.pdmodel.interactive.form;
public abstract class PDTerminalField extends PDField
{
/**
* Applies a value change to the field. Generates appearances if required and raises events.
*
* @throws IOException if the appearance couldn't be generated
*/
protected final void applyChange() throws IOException
{
constructAppearances();
// if we supported JavaScript we would raise a field changed event here
}{code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org