Heh heh, I wanted to make a similar comment, but then I saw the stack trace showing that he did just that...

Tilman

Am 01.03.2015 um 18:53 schrieb Andreas Lehmkuehler:
Hi,

Am 28.02.2015 um 11:52 schrieb Ivan Klaric:
Hello good PDFBox people,

I am working on a pet project with PDFBox and I encountered what seems to
be an issue with UTF8 chars. If you take the following standard example:

     public static void main(String[] args) {
         try {
             PDDocument document = new PDDocument();
             PDPage page = new PDPage();
             document.addPage( page );
             PDFont font = PDTrueTypeFont.loadTTF(document, new
File("res/Roboto-Regular.ttf"));

Try to load the TTF font as a Type0 font

PDFont font = PDType0Font.load(document, new File("res/Roboto-Regular.ttf"));

BR
Andreas Lehmkühler

             PDPageContentStream contentStream = null;
             contentStream = new PDPageContentStream(document, page);
             contentStream.beginText();
             contentStream.setFont( font, 12 );
             contentStream.moveTextPositionByAmount( 100, 700 );
             contentStream.drawString( "Hello World čćžšđČĆŽŠĐ" );
             contentStream.endText();
             contentStream.close();
             document.save( "/tmp/HelloWorld.pdf");
             document.close();

         } catch (IOException e) {
             e.printStackTrace();
         }
     }

(those weird characters in the drawString method are some pretty common
croatian letters). This is what I get:
java.io.IOException: Error: Could not find referenced cmap stream Identity-H at org.apache.fontbox.cmap.CMapParser.getExternalCMap(CMapParser.java:418) at org.apache.fontbox.cmap.CMapParser.parsePredefined(CMapParser.java:84)
at
org.apache.pdfbox.pdmodel.font.CMapManager.getPredefinedCMap(CMapManager.java:54)
at
org.apache.pdfbox.pdmodel.font.PDType0Font.readEncoding(PDType0Font.java:159) at org.apache.pdfbox.pdmodel.font.PDType0Font.<init>(PDType0Font.java:119)
at org.apache.pdfbox.pdmodel.font.PDType0Font.load(PDType0Font.java:59)
at com.company.Main.main(Main.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)


Am I doing something wrong? I took the Roboto-Regular font here:
http://www.fontsquirrel.com/fonts/roboto

If I remove the weird Croatian characters, the error remains the same.
However, if I use the PDTrueTypeFont.loadTTF() (which seems to be
deprecated) the same thing works without the Croatian characters. If I put
the Croatian characters back in (and use PDTrueTypeFont), I get

Exception in thread "main" java.lang.IllegalArgumentException: U+010D is
not available in this font's Encoding
at
org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.encode(PDTrueTypeFont.java:261)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:268)
at
org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:316)
at
org.apache.pdfbox.pdmodel.PDPageContentStream.drawString(PDPageContentStream.java:282)
at com.company.Main.main(Main.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

I manually looked into the font file and it seems to contain the U+010D
character. What am I doing wrong here?

Thanks,
Ivan



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org

Reply via email to