Ahoj,
ja pouzivam itext v ramci jasperreports. A je to jak jsem psal. Nove prohlizece acrobatu si s tim bez problemu poradi. Kpdf na unixu taky. Tak to nejak nemam moc proc resit.

Pet

On Wed, 03 Oct 2007 09:23:35 +0200, Podlesak Kamil <[EMAIL PROTECTED]> wrote:

Zdravím,

Ta zakomentovaná část je samozřejmě absolutní nesmysl. Zrovna nedávno zde o tomto proběhla diskuse, ale raději zopakuji:
 !! java.lang.String nemá žádný charset !!

Co se týče samotného problému, tak skutečně bude háček v tom, že ta knihovna nesprávně zpracuje unicode fonty. Možná ve výsledném PDF vůbec unicode nepoužívá, to by asi chtělo nastavit. Bohužel o ní nic nevím, takže ani netuším zda to vůbec dokáže.

Kamil Podlešák

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED]
Sent: Wednesday, October 03, 2007 2:04 AM
To: konference@java.cz
Subject: prevod ceských znaku iText


Ahoj,
mám následující problém.
Převádím pomocí iText .. JTextPane do Pdf.Problém je, že se
mi nepřevedou všechny české znaky. Převádím pomocí následující metody:

 public void paintToPDF(JTextPane ta) {

       /* String str = ta.getText();
        String help = null;
        try{
            help = new String(str.getBytes("WINDOWS-1250"));
        }catch(UnsupportedEncodingException ex){
            ex.printStackTrace();
        }
        ta.setText(help);*/

        try {
            document.setPageSize(new
com.lowagie.text.Rectangle(612, 792));
            PdfContentByte cb = writer.getDirectContent();

            cb.saveState();
            cb.concatCTM(1, 0, 0, 1, 0, 0);

            DefaultFontMapper mapper = new
DefaultFontMapper();
            mapper.insertDirectory("c:/windows/fonts");

            Graphics2D g2 = cb.createGraphics(612, 792,
mapper, true, .95f);

            AffineTransform at = new AffineTransform();
            at.translate(convertToPixels(20), convertToPixels(20));
            at.scale(pixelToPoint, pixelToPoint);

            g2.transform(at);

            g2.setColor(Color.WHITE);

            Rectangle alloc = getVisibleEditorRect(ta);
            ta.getUI().getRootView(ta).paint(g2, alloc);

            g2.dispose();
            cb.restoreState();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

zakomentovaná část metody s převodem stringu a byte, charset
jsem nemazal. S tím že jsem se pokusil převest string do
nějakého použitelného charsetu ale bez účinku.
Pokud nic nepřevedu pomocí pomocného stringu zobrazí se mě v
pdf šžýáíé ale ěčřů se mi převedou na mezery.
Problém bude asi bud ve fontech nebo v charsetu ale používám
jako font Times new roman, a defaultní charset.
Bohužel jsem nepřišel na to proč se mi některé znaky převedou
a některé ne, kdyby někdo mohl poradit navést... popřípadě měl řešení.
Předem díky za každou radu Petr
verze iTextu 2.0.4





--
Zpráva vytvořena poštovním klientem "M2", který je součástí webového prohlížeče Opera.
Více na http://www.opera.com/mail/ .

Odpovedet emailem