我正在使用此示例將java swing JFrame轉換爲pdf:export jcomponent to pdf with itext。問題是當我的框架包含像čěř...這樣的UTF-8字符時。這些字符在導出的文檔中缺失。我如何在我的pdf中打開這些字符?當導出java swing組件時,IText忽略UTF-8字符
UPDATE:
我嘗試你的榜樣,但我得到異常:
ExceptionConverter: com.itextpdf.text.DocumentException: Font 'fonts/verdana.ttf,1' with 'Identity-H' is not recognized.
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:699)
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:606)
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:549)
at com.itextpdf.text.pdf.DefaultFontMapper.awtToPdf(DefaultFontMapper.java:107)
at com.itextpdf.text.pdf.PdfGraphics2D.getCachedBaseFont(PdfGraphics2D.java:1082)
at com.itextpdf.text.pdf.PdfGraphics2D.setFont(PdfGraphics2D.java:1075)
at javax.swing.JComponent.paintChildren(JComponent.java:855)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at javax.swing.JComponent.paintChildren(JComponent.java:874)
at javax.swing.JComponent.printChildren(JComponent.java:1214)
at javax.swing.JComponent.paint(JComponent.java:1049)
at javax.swing.JComponent.print(JComponent.java:1183)
at GUI.PlayOffPanel.export(PlayOffPanel.java:322)
看起來像有一些是一些問題,進口的.ttf像宋體或時間,但與例如你加什麼字體工作。但我真的很想使用Verdana字體,所以仍然在尋找答案
我沒有答案,但可能會幫助您解決問題。我曾經有JasperReport(它使用iText生成PDF)的問題,我不得不添加我的字體文件(包含所需字符的字體)組織在一個.jar(一些XML和TTF文件) – JScoobyCed 2013-02-12 07:40:56
我發現TTF文件我的字體,但你用xml意味着什麼? – hudi 2013-02-12 07:43:28
取決於你如何編碼non_ascii字符, – mKorbel 2013-02-12 07:45:44