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