pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roberto Nibali <rnib...@gmail.com>
Subject Re: Migrate form field entries from one pdf to another
Date Tue, 07 Jul 2015 11:20:19 GMT
Hi

On Mon, Jul 6, 2015 at 10:14 PM, Tilman Hausherr <THausherr@t-online.de>
wrote:

> Am 06.07.2015 um 18:15 schrieb Maruan Sahyoun:
>
>> There will be an issue with the test template when you set the Name and
>> Prename field as the field definition is incomplete (the font resource is
>> missing) which will lead to an exception
>>
>> java.io.IOException: Could not find font: /Courier
>>
>> The easiest would be to correct the template. If that's not possible we
>> could help you building a short workaround. But as the template you
>> provided was only a quick mock up and not the real one the final template
>> might not have the issue.
>>
>

I have managed to write a TestNG class using the newest
PDFBox-2.0.0-SNAPSHOT jar und include your source code. Now, I'm getting
this error above as well. So far so good!


>  I just tried a quick and dirty solution, I changed
> PDAppearanceString.getFont(), the "if (font == null)" segment is new:
>
>     public PDFont getFont() throws IOException
>     {
>         COSName name = getFontResourceName();
>         PDFont font = defaultResources.getFont(name);
>
>         if (font == null)
>         {
>             if ("Courier".equals(name.getName()))
>             {
>                 COSDictionary dict = new COSDictionary();
>                 dict.setName(COSName.BASE_FONT, "Courier");
>                 dict.setName(COSName.NAME, "Courier");
>                 dict.setName(COSName.SUBTYPE, "Type1");
>                 dict.setName(COSName.TYPE, "Font");
>
>                 font = PDFontFactory.createFont(dict);
>             }
>         }
>
>         // todo: handle cases where font == null with special mapping
> logic (see PDFBOX-2661)
>         if (font == null)
>         {
>             throw new IOException("Could not find font: /" +
> name.getName());
>         }
>
>         return font;
>     }
>

Where would I need to do this? In my code, it won't work, since
getFontResourceName() and defaultResources.getFont() or not known.
@Override also does not seem to work. With this I'm stuck at the moment.


> Now I was able to set the text fields
> (Roberto: in the file I sent to you earlier, uncomment
> "newTextField.setValue(textField.getValue());")
>

I did, however this prompts me with the above error, since I can't find a
place where to put the getFont() code. When commented, I can reproduce your
results and the resulting PDF does have the checkboxes set!!!! :)

Will keep trying ...

Thanks for the tremendous help.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message