nyomtatványok kezelése Java-ban

Jasper Report Dev

Jasper Report Dev

Egyedi és speciális karakterek

2016. június 05. - lacimol

A Jasper Studio-ban az alapértelmezett betűkészlet a Helvetica, amihez a Nyugat-Európai Cp1252-es kódtáblát használja. Ez a Preview generálásakor nem okoz gondot, de ha exportáljuk a PDF-et vagy külső forrásból generáljuk, akkor a logikai betűkészlethez tartozó JVM-ben regisztrált (fizikai) betűtípust fogja használni (ha az egyáltalán létezik az adott operációs rendszerben) és lemaradnak a magyar ékezetes karakterek (pl: ő, ű).

A fenti ok miatt is célszerű már a nyomtatványtervezés elején kiválasztani egy pdf-hez csatolható betűkészletet, majd telepíteni a Jasper Studio-ba és a generáló környezet alá (classpath). A betűkészletnek unicode karakterek kezelésére is képesnek kell lennie (pl: a *.ttf fájl nem néhány 10 KB, hanem több 100 KB kell legyen).

Telepítés a Jasper Studio-ba

A betűkészleteket az un Font Extension rendszeren keresztül telepíthetjük a Jasper-hez. Ez egy jar fájl, amiben benne van az adott betűtípus (pl: ttf) és a használatát leíró xml fájl. Létrehozni a Window - Preferences - Jasper Studio - Fonts részen lehet az "Add" gombra kattintva. A nevét, a *.ttf fájl elérési útját (pl: Open Sans), az Encoding-ot (kódkészlet) meg kell adni és az "Embed this font in PDF"-et be kell pipálni (csatolás a PDF-hez). Innen az exportálással lehet létrehozni a generálási helyen használandó jar fájlt.

sansunicode.png

Kódkészlet

Ha magyar ékezetes karaktereket használnánk a nyomtatványon, akkor a Cp1250-es vagy a Identity-H a megfelelő választás. Előbbinél csak az adott kódkészlet kerül beágyazásra, utóbbinál a teljes unicode (karakterenként 2 byte-on, kicsit nagyobb helyett foglalva).

Telepítés a generáló környezetbe

A generálás történhet lokálisan (standalone) vagy webes környezetben (Tomcat szerver). Előbbinél a mainfest fájlon keresztül beállítható az elérési út, utóbbinál a Tomcat lib könyvtárába kell másolni az exportált jar fájlt. Ha dinamikusan feltölthető betűket szeretnénk, akkor az ExtensionsRegistry és ExtensionsRegistryFactory osztályok implementálásával ez is megoldható. Ha nincsenek egyedi igényeink, de biztos akarunk lenni, hogy az alap betűkészletek meglesznek az adott környezetben (pl: Arial esetén), akkor használhatunk előre elkészített csomagokat is.

Használat

Az adott elemet kiválasztva a Properties panelen a Font részen állítható be a korábban telepített betűkészlet. Ha a betűtípus mellett a nagyságban vagy típusban is eltérnénk az alap beállításoktól és több helyen használnánk ezeket, akkor érdemes egy új Style elemet felvenni és azt használni az adott elem Appearance részén. Ha egy Frame-en belül több Text elem is van, akkor ilyenkor elég csak a Frame-ben átállítani a Style-t.

Videó a betűkészlet használatáról:

A betűkészlet különbségek bemutatásához felvettem két új járműt a listába. Az egyik Cp1250-es kódolású szlovák (Skoda), a másik Cp1251-es orosz betűkészletet használó szöveg (Lada). A lenti Roomster-t persze nem speciális R-rel írják, de a szemléltetéshez pont jó :)

 

A projekt fájljai letölthetők innen.

További információk: 

http://jasperreports.sourceforge.net/sample.reference/fonts
http://community.jaspersoft.com/wiki/custom-font-font-extension 

A bejegyzés trackback címe:

https://jasperreport.blog.hu/api/trackback/id/tr218738220

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása