Sto usando iText per creare un PDF con caratteri cinesi. Il carattere Ho specificato è MS Mincho che avevo caricata mediante il codice,iText per generare PDF con caratteri cinesi, ma non visualizzato
FontFactory.registerDirectory("c:/windows/Fonts/");
new Phrase("Asian 汉字/漢字 characters", FontFactory.getFont("MS Mincho", 16, Font.NORMAL));
Il seguente codice recupera adeguatamente il carattere MS Mincho (cioè non nullo),
FontFactory.getFont("MS Mincho", 16, Font.NORMAL)
Tuttavia, il PDF generato solo visualizza il testo ASCII "caratteri asiatici", ovvero i caratteri cinesi non vengono visualizzati nel PDF.
Qualche idea sul motivo per cui i caratteri cinesi mancano nel PDF generato?
è necessario assicurarsi che a) utilizza il carattere con un appropriato [encoding] (http://itextpdf.com/themes/keyword.php?id=394) ('BaseFont.IDENTITY_H') eb) [embed] (http://itextpdf.com/themes/keyword.php?id=71) (' BaseFont.EMBEDDED'). Lasciati ispirare dai campioni di [chaptrer 11] (http://itextpdf.com/book/chapter.php?id=11) di [iText in Action - 2nd Edition] (http://itextpdf.com/book/) . – mkl
Grazie. Il PDF generato ora visualizza correttamente i caratteri cinesi. Non c'è bisogno di chiamare FontFactory.registerDirectory(). Basta usare BaseFont.createFont ("c: /windows/Fonts/MSMINCHO.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED) e istanziare Carattere (BaseFont, dimensione). FontFactory.getFont ("MS Mincho") non funziona con caratteri cinesi. –
In realtà 'FontFactory' può essere utilizzato anche per creare oggetti font opportunamente parametrizzati. Ma vero, non ne hai bisogno. – mkl