I tried, but it does not solve the problem.

Thanks anyway.


-----Original Message-----
From: Joe Lee [mailto:joe_h_...@yahoo.com] 
Sent: Thursday, October 11, 2012 2:06 PM
To: users@pdfbox.apache.org
Subject: Re: Font being changed after form field is set

Please check this attached Email information. I have similar problem as yours. 
Try to apply the patch stated in PDFBOX-1402 bug report. It helps my problem to 
some degree but not fully fix the problem.

Joe Lee

-------------------------------------------------------------------------------------

  
[ https://issues.apache.org/jira/browse/PDFBOX-1419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469564#comment-13469564 ] 

Will May commented on PDFBOX-1419:
----------------------------------

This is a duplicate of PDFBOX-1402. The current implementation doesn't handle 
zero font size (which means 'auto' font size) and multi-line text boxes 
correctly (it also doesn't break long lines either).
The patch I've attached to the PDFBOX-1402 doesn't position the text or select 
the correct font size perfectly but is a significantly better than the current 
implementation.
                
> PDField.setValue is not behave correctly
> ----------------------------------------
>
>                Key: PDFBOX-1419
>                URL: https://issues.apache.org/jira/browse/PDFBOX-1419
>            Project: PDFBox
>          Issue Type: Bug
>          Components: Writing
>    Affects Versions: 1.7.0
>        Environment: JavaEE 1.6 project developed under Window system, will 
>deploy to Unix Weblogic server
>            Reporter: Joe Lee
>
> Use a template PDF file to write value into different fields (type of 
> PDTextbox, PDCheckbox, PDChoiceField). The PDTextbox displays either very 
> large font or not show anything. If click into the field, it displays 
> correctly. Click outside the field, it reverts back to the wrong display. The 
> same logic of code works well with iText library. The code similar to:
>            
>            PDFTemplate = PDDocument.load("myTemplate.pdf");
>            PDDocumentCatalog docCatalog = PDFTemplate.getDocumentCatalog();
>            PDAcroForm acroForm = docCatalog.getAcroForm();
>            :
>            try { PDField pdField = acroForm.getField(field);
>                    if (pdField != null) pdField.setValue(value);
>            } catch(...){}
>            :



________________________________
 From: Eugene Chang <ech...@bonafide.com>
To: "users@pdfbox.apache.org" <users@pdfbox.apache.org> 
Sent: Thursday, October 11, 2012 11:11 AM
Subject: RE: Font being changed after form field is set
 
Hi,

                First I would like to thank Kishore for answering my question, 
but I think I did not state my problem clearly. So I am going to try one more 
time.


1.       We have a predefined PDF form, with text fields in it.

a.       We used Adobe Acrobat Professional to create the PDF form.

2.       The font set in the predefined fields are COURIER

a.       We choose COURIER because of its mono-spaced feature

3.       We want to set the values in predefined form fields.

So we used pdfbox

1.       Load the pdf form

2.       Set the value

But the problem now is the original font got changed after setting the value.

The link Kishore referenced is trying to create new field with font and place 
it on the pdf, but our requirement is setting values on existing fields and 
retain original font.

The original files and tested file:

http://www.2shared.com/document/auMD40In/PRP.html

http://www.2shared.com/document/SdnqJEFO/forms26916.html


The code:

package lab;

import java.io.File;

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

public class TestBed1 {
    public static void main(String[] args) {
        try {
            PDDocument pdfDocument = PDDocument.load("C:/Temp/pdf/PRP.pdf");
            PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog();
            PDAcroForm acroForm = docCatalog.getAcroForm();
            acroForm.getField("officeAfterHourAndTollFree").setValue(
                    "Phone: (805) 777-7666  Fax: (805) 777-9876");
            File file = File.createTempFile("forms", ".pdf");
            pdfDocument.save(file.getCanonicalPath());
            pdfDocument.close();

            System.out.println(file.getCanonicalPath());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}




Regards,

Reply via email to