[ 
https://issues.apache.org/jira/browse/PDFBOX-3924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maruan Sahyoun updated PDFBOX-3924:
-----------------------------------
    Description: 
After set the value in the acroForm fields, i want to flatten the pdf. so that 
there should not be any form fields in my output pdf and when i am writing 
acroForm.flatten() it's not working.
Here is my java code:

{code}
package com.sdrc.image;

import java.io.File;
import java.util.List;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;

public class PDFBoxLanguageTest {
        public static void main(String[] args) throws Exception {
                
            String formTemplate = 
"C:/Users/XXXX/Downloads/CPIS_test_language.pdf";
            PDDocument pdfDocument = PDDocument.load(new File(formTemplate));
            PDAcroForm acroForm = 
pdfDocument.getDocumentCatalog().getAcroForm();
            acroForm.setNeedAppearances(true); //need this line for Hindi
        
            if (acroForm != null) {
                // Get field names
                List<PDField> fieldList = acroForm.getFields();
                for (PDField pdField : fieldList) {
                    if (pdField.getFullyQualifiedName().equals("Text1")){
                        // Here i am passing a text in "English"
                        
acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome");
                        //pdField.setReadOnly(true);// not working
                        //pdField.getCOSObject().setInt("FF", 1);// not working
                    } else if (pdField.getFullyQualifiedName().equals("Text3")) 
{
                        // Here i am passing a text in "English-Hindi"
                        
acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome-नमस्ते");  
                        //pdField.setReadOnly(true);// not working
                        //pdField.getCOSObject().setInt("FF", 1);// not working
                    } else {
                        // Here i am passing a text in "Hindi"
                        
acroForm.getField(pdField.getFullyQualifiedName()).setValue("नमस्ते");
                        //pdField.setReadOnly(true);// not working
                        //pdField.getCOSObject().setInt("FF", 1);// not working
                    }
                }
            }
            // acroForm.flatten(); // not working
            pdfDocument.save("C:/Users/XXXX/Downloads/CPIS_test_languageE.pdf");
            // acroForm.flatten();  // not working
            pdfDocument.close();

            System.out.println("Done");
            System.out.println("============================================");
        }
}
{code}

  was:
After set the value in the acroForm fields, i want to flatten the pdf. so that 
there should not be any form fields in my output pdf and when i am writing 
acroForm.flatten() it's not working.
Here is my java code:

{code}
package com.sdrc.image;

import java.io.File;
import java.util.List;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;

public class PDFBoxLanguageTest {
        public static void main(String[] args) throws Exception {
                
                String formTemplate = 
"C:/Users/XXXX/Downloads/CPIS_test_language.pdf";
        PDDocument pdfDocument = PDDocument.load(new File(formTemplate));
        PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();
        acroForm.setNeedAppearances(true); //need this line for Hindi
        
        if (acroForm != null) {
            // Get field names
            List<PDField> fieldList = acroForm.getFields();
            for (PDField pdField : fieldList) {
                if(pdField.getFullyQualifiedName().equals("Text1")){
                        // Here i am passing a text in "English"
                        
acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome");
//pdField.setReadOnly(true);// not working
//pdField.getCOSObject().setInt("FF", 1);// not working
                }else if(pdField.getFullyQualifiedName().equals("Text3")){
                        // Here i am passing a text in "English-Hindi"
                                
acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome-नमस्ते");  
//pdField.setReadOnly(true);// not working
//pdField.getCOSObject().setInt("FF", 1);// not working
                }else{
                        // Here i am passing a text in "Hindi"
                                
acroForm.getField(pdField.getFullyQualifiedName()).setValue("नमस्ते");
                //pdField.setReadOnly(true);// not working
//pdField.getCOSObject().setInt("FF", 1);// not working
}
                        }
        }
//        acroForm.flatten(); // not working
        pdfDocument.save("C:/Users/XXXX/Downloads/CPIS_test_languageE.pdf");
//        acroForm.flatten();  // not working
        pdfDocument.close();

        System.out.println("Done");
                 
System.out.println("============================================");
                
        }
}
{code}


> How to flatten  pdf which contains acroform fields
> --------------------------------------------------
>
>                 Key: PDFBOX-3924
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3924
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: AcroForm
>    Affects Versions: 2.0.7
>         Environment: Windows 10
>            Reporter: Subrata Kumar Pradhan
>            Priority: Critical
>             Fix For: 2.0.7
>
>         Attachments: CPIS_test_language.pdf
>
>
> After set the value in the acroForm fields, i want to flatten the pdf. so 
> that there should not be any form fields in my output pdf and when i am 
> writing acroForm.flatten() it's not working.
> Here is my java code:
> {code}
> package com.sdrc.image;
> import java.io.File;
> import java.util.List;
> import org.apache.pdfbox.pdmodel.PDDocument;
> import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
> import org.apache.pdfbox.pdmodel.interactive.form.PDField;
> public class PDFBoxLanguageTest {
>       public static void main(String[] args) throws Exception {
>               
>           String formTemplate = 
> "C:/Users/XXXX/Downloads/CPIS_test_language.pdf";
>             PDDocument pdfDocument = PDDocument.load(new File(formTemplate));
>             PDAcroForm acroForm = 
> pdfDocument.getDocumentCatalog().getAcroForm();
>             acroForm.setNeedAppearances(true); //need this line for Hindi
>         
>             if (acroForm != null) {
>                 // Get field names
>                 List<PDField> fieldList = acroForm.getFields();
>                 for (PDField pdField : fieldList) {
>                   if (pdField.getFullyQualifiedName().equals("Text1")){
>                       // Here i am passing a text in "English"
>                       
> acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome");
>                         //pdField.setReadOnly(true);// not working
>                         //pdField.getCOSObject().setInt("FF", 1);// not 
> working
>                   } else if (pdField.getFullyQualifiedName().equals("Text3")) 
> {
>                       // Here i am passing a text in "English-Hindi"
>                       
> acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome-नमस्ते");
>   
>                         //pdField.setReadOnly(true);// not working
>                         //pdField.getCOSObject().setInt("FF", 1);// not 
> working
>                   } else {
>                       // Here i am passing a text in "Hindi"
>                       
> acroForm.getField(pdField.getFullyQualifiedName()).setValue("नमस्ते");
>                       //pdField.setReadOnly(true);// not working
>                         //pdField.getCOSObject().setInt("FF", 1);// not 
> working
>                     }
>               }
>             }
>             // acroForm.flatten(); // not working
>             
> pdfDocument.save("C:/Users/XXXX/Downloads/CPIS_test_languageE.pdf");
>             // acroForm.flatten();  // not working
>             pdfDocument.close();
>             System.out.println("Done");
>             
> System.out.println("============================================");
>       }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to