Jasper/PDF/encoding

"Ing. Petr Michálek" petr.michalek na aca.cz
Středa Květen 27 13:30:32 CEST 2009


1. Report krmíte UTF-8, protože jí používá JAVA. Převod provedete v 
okamžiku načítání dat z databaze.

2. Někde v hlavičce reportu definujete fonty takto:
<reportFont name="Arial_Bold18" isDefault="false" fontName="Arial" 
size="18" isBold="true" isItalic="false" isUnderline="false" 
isStrikeThrough="false" pdfFontName="Helvetica-Bold" 
pdfEncoding="Cp1250" isPdfEmbedded="false"/>

Nic dalšího by nemělo být potřeba.

Petr Michálek

Gabriel Gajdos napsal(a):
> Zdravím.
> 
>  
> 
> Riešime práve jednu vec s JasperReports...
> 
>  
> 
> Klasický scenár: report v JasperReports (iReport), kŕmime ho dátami 
> a chceme z toho PDF na výstupe. Aby bola správna diakritika, bolo 
> potrebné nastaviť vlastnosť TextFieldu „pdfEncoding“ na „Cp1250“...
> 
> Problém je však v tom, že náš report budeme kŕmiť dátami z databázy 
> (UTF-8) a dáta budú obsahovať aj znaky špecifické pre iné znakové sady 
> (typicky najmä pre zápdoeurópsku Cp1252).
> 
>  
> 
> Inými slovami: nevieme sa počas dizajnu rozhodnúť, v ktorej z týchto 
> znakových sád bude PDF výstup vytvorený.
> 
> Počas behu viem dynamicky nastaviť pdfEncoding jednotlivých polí (cez 
> Scriptlet), ale aj tak nevieme presne, na akú hodnotu to máme nastaviť.
> 
>  
> 
> V podstate vidím dve cesty, ale riešenie nemáme:
> 1. nastaviť nejaký unicode (čo však nejde, lebo vraj iText to 
> nepodporuje, ale tu vidím trochu konflikt medzi tvrdením Jasper vs. 
> iText vývojárov).
> 
> –> toto by bolo samozrejme preferované riešenie
> 
> 2. Počas behu testovať dáta poľa a zisťovať znakovú sadu
> 
> –> nepoznám lepšie riešenie ako cez String.getBytes, prípadne 
> Charset.encode a potom testovať počet otáznikov (?)...
> 
> –> je to trochu ohavnosť, ale lepšie riešenie nemáme...
> 
>  
> 
>  
> 
> Riešil to už niekto?
> 
> Má niekto lepší nápad?
> 
>  
> 
> Dík za názory.
> 
>  
> 
>  
> 
> GG
> 
>  
> 




Další informace o konferenci Konference