[Java lista] JasperReports
Szabó Árpád Zoltán
szaboaz at freemail.hu
2009. Jún. 18., Cs, 10:36:10 CEST
[lustaság fél egészség, ez itt egy régi levelem copy/paste, amiben ezt boncolgatom, hátha találsz benne vmit, ami segít]
<cut>
Azt találtam, hogy a JasperReports két lépésben készíti a pdf-et: először megcsinálja a JasperPrint objektumot, majd ennek alapján generálja a pdf-et. A jrxml-ben két fontnév tartozik egy szövegmezőhöz: a "fontName" és a "pdfFontName". A JasperPrint objektumot az előbbi, a pdf-et az utóbbi helyen megadott font alapján generálja.
Namármost a pdfFontName be van állítva a jrxml-ekben egy konkrét ttf fájlnévre, egy olyan fájlra, amit ugyanabban az alkönyvtárban megtalál a generátor. Viszont a fontName-nek hiába állítottam én be "Arial"-t (itt nem lehet ttf fájlnevet megadni) az iReportban, Windows-on, ha az éles szerveren nincs "Arial" font. Márpedig ez alapján számolná ki (illetve ennek hiányában jóég tudja, mi alapján), hogy mekkorára kell egy szövegmezőt méretezni, hogy beleférjen a hosszú tartalom, mégpedig azért, mert a JasperPrint elkészítéséhez AWT font metrics-et használ, és az AWT meg azokból a fontokból gazdálkodik, amit a JVM biztosít.
A megoldás tehát az, hogy a JVM-nek oda kell adni az általunk használt ttf fájlokat. Erre három megoldást ajánlanak:
- oprendszer standard helyre telepíteni ( ezt próbáltam ki, Ubuntu 8.10-esre feltettem az msttcorefonts csomagot, és ripsz ropsz máris ugyanolyan lett a végeredmény)
- jre /lib/fonts-ba bemásolni - nem túl szimpatikus...
- a JAVA_FONTS környezeti változónak megmondani, hogy melyik könyvtárunkban találja a ttf fájlokat. Ezt olvassa a JVM induláskor, egyebet nem kell tehát vele csinálni. Ezt javasolják pl. itt: http://www.mail-archive.com/jasperreports-questions@lists.sourceforge.net/msg00589.html
</cut>
Üdv.
Árpád
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20090618/ceb5d7cc/attachment.html
További információk a(z) Javalist levelezőlistáról