java html生成pdf文件_java下html导出pdf文件

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

项目有个问题,页面动态导出pdf,用了itext2.0.8jar core-renderer.jar iTextAsian.jar 包,正确生成pdf文件。

由于项目原来使用了iText-2.1.4.jar包,经理不许jar降级,先在是修改iText-2.1.4.jar包中package com.lowagie.text.pdf; BaseFont.java文件中的getCharBBox方法 2.08传的字符,其他的传的int ,

public int[] getCharBBox(char paramChar)

{

byte[] arrayOfByte = convertToBytes(paramInt);

if (arrayOfByte.length == 0)

return null;

return this.charBBoxes[(arrayOfByte[0] & 0xFF)];

}

修改后重新打包 ,之后汉字支持出现问题。

代码如下

ITextRenderer renderer = new ITextRenderer();

ITextFontResolver fontResolver = renderer.getFontResolver();

try {

OutputStream os = new FileOutputStream(pdfPath);

//解决中文问题

fontResolver.addFont("C:\Windows\Fonts\simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

renderer.setDocumentFromString(htmlCode);//引入html字符串

renderer.layout();

renderer.createPDF(os);

os.close();

} catch (Exception e) {

e.printStackTrace();

}

报错如下

ExceptionConverter: java.io.UnsupportedEncodingException: Identity-H

at java.lang.StringCoding.encode(StringCoding.java:269)

at java.lang.String.getBytes(String.java:947)

at com.lowagie.text.pdf.PdfEncodings.convertToBytes(Unknown Source)

at com.lowagie.text.pdf.BaseFont.convertToBytes(Unknown Source)

at com.lowagie.text.pdf.BaseFont.getCharBBox(Unknown Source)

at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.setMetricDefaults(ITextFontResolver.java:679)

at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.(ITextFontResolver.java:610)

at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.(ITextFontResolver.java:603)

at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:169)

at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:157)

at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:180)

at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:157)

at cn.com.pdf.demo.Demo.htmlCodeComeString(Demo.java:77)

at cn.com.pdf.demo.Demo.test(Demo.java:115)

at cn.com.pdf.demo.Demo.main(Demo.java:124)

不知道怎么办了,求教诸位大神

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值