Thanks a lot for your reply. I found out what the problem was. I used BaseFont instead of Font and FontFactory.getFont(). Also I added FontFactory.registerDirectory(defaultFontDirectory). Without it it won't work (I tried to put arialuni.ttf into .../jre/lib/fonts/), but I suppose I couldn't tweak right "fonts.properties" file.
So, now it work's fine on both Windows and Linux. Again, thanks for your reply. 1T3XT info wrote: > > nanotime wrote: >> I'm using itext for creating PDF file with Unicode encoding. >> My workstation is Windows Vista, so I create fonts using this >> construction: >> >> -------------------------- >> BaseFont arialUnicode = >> BaseFont.createFont("C:\\Windows\\Fonts\\arialuni.ttf", >> BaseFont.IDENTITY_H, >> BaseFont.EMBEDDED); >> -------------------------- > > IMO using "c:/Windows/Fonts/arialuni.ttf" is better than using > "C:\\Windows\\Fonts\\arialuni.ttf". > >> Then i moved to linux and therefore expirienced exception - can't find >> font > > Of course not: on linux there is no "C:" drive; that's a windows only > concept. When I write examples, I use "c:/Windows/Fonts/arialuni.ttf" > and then I create a directory named "c:" on linux in the working dir > of my JVM. Funny enough that works ;-) > >> I searched API and docs and found FontFactory.registerDirectories() > > Of course working with registerDirectories is better. > My previous remark is just a dirty hack. > >> After invocation of this method I'm printing out all registered fonts >> using >> code (all next code snippets run under Windows Vista): >> >> -------------------------- >> Set fonts = FontFactory.getRegisteredFonts(); >> for (Object font : fonts) { >> System.out.println(font); >> } >> -------------------------- >> >> that prints a lot of font names, and also "arialunicodems" and "arial >> unicode ms". > > I've just tested this on Vista: > > FontFactory.registerDirectories(); > Font f = FontFactory.getFont("Arial Unicode MS", BaseFont.IDENTITY_H, > BaseFont.EMBEDDED); > > It works. It could also work on linux, provided that you have > arialuni.ttf in one of the following directories: > c:/windows/fonts > c:/winnt/fonts > d:/windows/fonts > d:/winnt/fonts > /usr/X/lib/X11/fonts/TrueType > /usr/openwin/lib/X11/fonts/TrueType > /usr/share/fonts/default/TrueType > /usr/X11R6/lib/X11/fonts/ttf > /Library/Fonts > /System/Library/Fonts > >> I then tried both of them to pass into BaseFont.createFont() using code: >> >> -------------------------- >> BaseFont arialUnicode = BaseFont.createFont("arialunicodems", >> BaseFont.IDENTITY_H, BaseFont.EMBEDDED); >> -------------------------- >> >> , but that code throws an exception: >> >> -------------------------- >> Exception in thread "main" com.lowagie.text.DocumentException: Font >> 'arialunicodems' with 'Identity-H' is not recognized >> -------------------------- > > Works for me with "Arial Unicode MS". > >> Once generated on Linux, PDF file should open (and unicode text should >> not >> be broken) on other Windows machines. > > I don't understand what you are saying here, > but it probably makes sense to you. > >> What am I doing wrong and how can I make the program to work on both >> Windows >> and Linux? (suppose I can copy ARIALUNI.TTF on Linux) > > If you want to make sure it works on all systems, put arialuni.ttf > in a path (for instance mypath) and register the font like this: > > FontFactory.register("mypath/arialuni.ttf", "MyArial"); > Font font = FontFactory.getFont("MyArial", BaseFont.IDENTITY_H, > BaseFont.EMBEDDED); > > This is (of course!) all explained in the book 'iText in Action'. > -- > This answer is provided by 1T3XT BVBA > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > iText-questions mailing list > iText-questions@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/itext-questions > > Do you like iText? > Buy the iText book: http://www.1t3xt.com/docs/book.php > Or leave a tip: https://tipit.to/itexttipjar > > -- View this message in context: http://www.nabble.com/%22Arial-Unicode-MS%22-and-FontFactory.registerDirectories%28%29-tp16677449p16697572.html Sent from the iText - General mailing list archive at Nabble.com. ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ iText-questions mailing list iText-questions@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/itext-questions Do you like iText? Buy the iText book: http://www.1t3xt.com/docs/book.php Or leave a tip: https://tipit.to/itexttipjar