renaming a field and not able to set value to the saved PDF document ...
------------------------------------------------------------------------
Key: PDFBOX-481
URL: https://issues.apache.org/jira/browse/PDFBOX-481
Project: PDFBox
Issue Type: Bug
Components: PDModel.AcroForm
Affects Versions: 0.7.3
Environment: Windows XP Professional SP3, jre1.6.0_07/jdk1.6.0_11 ,
PDFBox-0.7.3.jar
Reporter: Venkatesh Prasad.B.K.
Fix For: 0.7.3
I will explain what I want to do.
1. I have a PDF Document with Fields and let us call this
'Source_Original.PDF'. The field names in this PDF document have to be renamed
and stored as 'Source_Target.PDF'. I then have to set/change the values of
form-fields in 'Source_Target.PDF'.
The issue I am facing is given below:
1. I renamed the form fields in 'Source_Original.PDF" using the code given in
my earlier mail (below) and saved it as 'Source_Target.PDF'.
2. I checked the form fields in 'Source_Target.PDF" and form-fields were
renamed correctly.
3. However when I tried to set/change values of form-fields in
'Source_Target.PDF' using PDFBox code, I was not able to do so.
I used iText to set/change values of form-fields in 'Source_Target.PDF' and was
successful. But we want to use only PDFBox.
To summarize - We are not able to set/change values of form fields of a PDF
Document whose form-fields have been renamed. There is no issue if the
form-fields are renamed manually using Adobe Acrobat 9. The issue is only
when the form-fields are renamed using PDFBox option -
setPartialName(newFieldName);
> Only to be sure, changing values in 'Source_Original.PDF' works with the
> same code you use to
> manipulate 'Source_Target.PDF'??
Yes
I have attached the 2 files - "Source_Original.PDF' and 'Source_Target.PDF',
----- Code
try
{
PDDocument pdfDocument =
PDDocument.load(pdfSource);
try
{
if (pdfDocument.isEncrypted())
{
pdfDocument.decrypt("");
}
PDDocumentCatalog docCatalog =
pdfDocument.getDocumentCatalog();
PDAcroForm acroForm =
docCatalog.getAcroForm();
if (acroForm != null)
{
List pdfFields =
acroForm.getFields();
if (pdfFields != null)
{
PDField
pdfField;
for (int i = 0;
i < pdfFields.size(); i++)
{
pdfField = (PDField) pdfFields.get(i);
String
fieldName = pdfField.getPartialName();
if(
pdfFieldNames.containsKey(fieldName) ){
String newFieldName = (String) pdfFieldNames.get(fieldName);
pdfField.setPartialName(newFieldName);
}
}
pdfDocument.save(pdfOutput);
} else {
return "No Acro
Form Fields found in PDF Document " + pdfSource + "!";
}
} else {
return "PDF document "
+ pdfSource + " not able to access!";
}
} catch (Exception e) {
return "PDF Document " +
pdfSource + " is encrypted! Cannot process.";
}
pdfDocument.close();
} catch (Exception e) {
return "PDF Document " + pdfSource + "
cannot be found!";
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.