加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

itext中使用PdfGraphics2D.drawString绘制中文的方法

[日期:2014-04-10] 作者: 来源: [字体: ]

项目使用itext生成pdf,因为原有项目不容易改动,所以需要使用PdfGraphics2D来替代Graphics2D绘制内容。但是很快发现无法使用PdfGraphics2D.drawString绘制中文。

初步猜测应该是编码问题,网上搜了很多方法,都是在使用itext自身绘制文本的api时,使用BaseFont装载字体,以解决中文绘制的问题。但是这个不适合我们的情况。最终找到PdfGraphics2D的一个构造函数可以传递FontMapper,这才是解决之道。

关键部分:

FontMapper fm = new AsianFontMapper(AsianFontMapper.ChineseSimplifiedFont, AsianFontMapper.ChineseSimplifiedEncoding_H);

PdfGraphics2D pdfG = new PdfGraphics2D(pdfCB, size.getWidth(), size.getHeight(), fm); 

pdfG.drawString("中文测试abc123", posX, posY);

 

完整示例:

        FileOutputStream fo = new FileOutputStream(filePath);

        Rectangle size = new Rectangle(500, 1200);

        Document doc = new Document(size);

       

        PdfWriter pdfWriter = PdfWriter.getInstance(doc, fo);        

        doc.open();

        PdfContentByte pdfCB =  pdfWriter.getDirectContent();        

       

        FontMapper fm = new AsianFontMapper(AsianFontMapper.ChineseSimplifiedFont, AsianFontMapper.ChineseSimplifiedEncoding_H);

        PdfGraphics2D pdfG = new PdfGraphics2D(pdfCB, size.getWidth(), size.getHeight(), fm); 

        pdfG.drawString("中文测试abc123", 30, 100);

 

        pdfG.dispose(); 

        pdfG = null;

        doc.close();

        pdfWriter.close();

        fo.close();

        doc = null;

        pdfWriter = null;

        fo = null;

关键词:中文  PDF  itext  PdfGraphics2D  drawString 

收藏 推荐 打印 | 录入:blue1000 | 阅读:
最新图文
本文评论   查看全部评论 (2)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 2 楼
* 匿名 发表于 2016/12/25 12:34:42
http://www.blue1000.com/bkhtml/c14/2014-05/71568.htm 生活需要快乐作文 http://www.135995.com/details/zs2198.html 假如我是妈妈作文 http://www.135995.com/details/zs2199.html
第 1 楼
* 匿名 发表于 2016/12/24 12:34:17
http://www.blue1000.com/bkhtml/c14/2014-05/71568.htm 再回首作文 http://www.135995.com/details/zs36.html 眼泪的作文 http://www.135995.com/details/zs248.html