You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Subrata Kumar Pradhan (JIRA)" <ji...@apache.org> on 2017/09/07 05:58:00 UTC
[jira] [Updated] (PDFBOX-3924) How to flatten pdf which contains
acroform fields
[ https://issues.apache.org/jira/browse/PDFBOX-3924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Subrata Kumar Pradhan updated PDFBOX-3924:
------------------------------------------
Attachment: CPIS_test_language.pdf
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:
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("============================================");
}
}
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:
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
}else if(pdField.getFullyQualifiedName().equals("Text3")){
// Here i am passing a text in "English-Hindi"
acroForm.getField(pdField.getFullyQualifiedName()).setValue("Welcome-नमस्ते");
}else{
// Here i am passing a text in "Hindi"
acroForm.getField(pdField.getFullyQualifiedName()).setValue("नमस्ते");
}
}
}
// 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("============================================");
}
}
> How to flatten pdf which contains acroform fields
> --------------------------------------------------
>
> Key: PDFBOX-3924
> URL: https://issues.apache.org/jira/browse/PDFBOX-3924
> Project: PDFBox
> Issue Type: Bug
> 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:
> 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("============================================");
>
> }
> }
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org