pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eugene Chang <ECh...@bonafide.com>
Subject RE: Font being changed after form field is set
Date Fri, 12 Oct 2012 06:03:46 GMT
I tried, but it does not solve the problem.

Thanks anyway.


-----Original Message-----
From: Joe Lee [mailto:joe_h_lee@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 <EChang@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,

Mime
View raw message