<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AcroFormDefaultFixup.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache PDFBox</a> &gt; <a href="index.source.html" class="el_package">org.apache.pdfbox.pdmodel.fixup</a> &gt; <span class="el_source">AcroFormDefaultFixup.java</span></div><h1>AcroFormDefaultFixup.java</h1><pre class="source lang-java linenums">/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the &quot;License&quot;); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.pdfbox.pdmodel.fixup;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.fixup.processor.AcroFormDefaultsProcessor;
import org.apache.pdfbox.pdmodel.fixup.processor.AcroFormGenerateAppearancesProcessor;
import org.apache.pdfbox.pdmodel.fixup.processor.AcroFormOrphanWidgetsProcessor;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;

public class AcroFormDefaultFixup extends AbstractFixup
{ 
    public AcroFormDefaultFixup(PDDocument document)
    { 
<span class="fc" id="L29">        super(document); </span>
<span class="fc" id="L30">    }</span>

    @Override
    public void apply() {
<span class="fc" id="L34">        new AcroFormDefaultsProcessor(document).process();</span>

        /*
         * Get the AcroForm in it's current state.
         *
         * Also note: getAcroForm() applies a default fixup which this processor
         * is part of. So keep the null parameter otherwise this will end
         * in an endless recursive call
         */
<span class="fc" id="L43">        PDAcroForm acroForm = document.getDocumentCatalog().getAcroForm(null);</span>

        // PDFBOX-4985
        // build the visual appearance as there is none for the widgets
<span class="fc bfc" id="L47" title="All 4 branches covered.">        if (acroForm != null &amp;&amp; acroForm.getNeedAppearances())</span>
        {
<span class="fc bfc" id="L49" title="All 2 branches covered.">            if (acroForm.getFields().isEmpty())</span>
            {
<span class="fc" id="L51">                new AcroFormOrphanWidgetsProcessor(document).process();</span>
            }
            
            // PDFBOX-4985
            // build the visual appearance as there is none for the widgets
<span class="fc" id="L56">            new AcroFormGenerateAppearancesProcessor(document).process();</span>
        }
<span class="fc" id="L58">    }</span>
} 
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.8.202204050719</span></div></body></html>