html生成pdf为什么不支持中文??

咖啡加糖_ 2013-10-14 10:38:21
代码如下

public static void main(String[] args)
throws IOException, DocumentException {
String inputFile = "e://index.html";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "e://firstdoc.pdf";
OutputStream os = new FileOutputStream(outputFile);

ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/Fonts/ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();

}

网上说这段代码是支持中文的fontResolver.addFont("C:/Windows/Fonts/ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

我C:/Windows/Fonts/ARIALUNI.TTF这个下面文件是有的,但是一直行就报错
???

错误:“Invalid byte 1 of 1-byte UTF-8 sequence.”
Exception in thread "main" org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:191)
at org.xhtmlrenderer.resource.XMLResource.load(XMLResource.java:71)
at org.xhtmlrenderer.swing.NaiveUserAgent.getXMLResource(NaiveUserAgent.java:211)
at org.xhtmlrenderer.pdf.ITextRenderer.loadDocument(ITextRenderer.java:134)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:138)
at test99.main(test99.java:27)
Caused by: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:189)
... 5 more
Caused by: org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
... 8 more


求解了??????
帮帮忙
...全文
310 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
咖啡加糖_ 2013-10-14
  • 打赏
  • 举报
回复
引用 2 楼 AA5279AA 的回复:
报错和是不是中文没关系。 你这个报错说输入1字节的数据但是企图以UTF-8解码(UTF-8占用2字节),所以出错。 首先,你那个index.html里面有内容么?先把url(String)输出一下看看。 另外at test99.main(test99.java:27),哪行是你的第27行?
就是解析中文的时候报错,我的html见一楼,编码是utf-8,改成GB2312就不报错了,但是生成的pdf中文乱码???
失落夏天 2013-10-14
  • 打赏
  • 举报
回复
报错和是不是中文没关系。 你这个报错说输入1字节的数据但是企图以UTF-8解码(UTF-8占用2字节),所以出错。 首先,你那个index.html里面有内容么?先把url(String)输出一下看看。 另外at test99.main(test99.java:27),哪行是你的第27行?
咖啡加糖_ 2013-10-14
  • 打赏
  • 举报
回复
在放上e://index.html的代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>aa</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> body{font:12px/1.8 ;position:relative;} html,body{height:100%;overflow-y:hidden;margin:0;padding:0;} .strt-wrap{width:100000px;margin:10px;cursor:move;} .strt-part{text-align:center;float:left;position:relative;} .strt-part .line-v{position:relative;height:40px;width:100%;} .strt-part .line-v span{display:block;background:#ccc;position:absolute;top:0;font-size:0;line-height:1px;width:1px;height:40px;left:50%;} .strt-name{display:inline-block;padding:0 5px;height:24px;line-height:24px;border:1px solid #ccc;margin:0 10px;border-radius:3px;background:#f8f8f8;} .strt-part .line-h{height:1px;display:block;background:#ccc;position:absolute;top:0;font-size:0;} .strt-part .line-h-l{width:50%;left:0;} .strt-part .line-h-c{width:100%;left:0;} .strt-part .line-h-r{width:50%;right:0;} .strt-block{float:left;} </style> </head> <body style="overflow:hidden;"> <div class="strt-wrap" id="strtWrap"> <div class="strt-block"> <div class="strt-part"> <span class="strt-name">啊啊啊啊</span> <div class="line-v"><span></span></div> <div class="strt-block"> <div class="strt-part"> <span class="line-h line-h-r"></span> <div class="line-v"><span></span></div> <span class="strt-name">22</span> <div class="line-v"><span></span></div> <div class="strt-block"> <div class="strt-part"> <span class="line-h line-h-l"></span> <div class="line-v"><span></span></div> <span class="strt-name">33</span> </div> </div> </div> <div class="strt-part"> <span class="line-h line-h-c"></span> <div class="line-v"><span></span></div> <span class="strt-name">44</span> <div class="line-v"><span></span></div> <div class="strt-block"> <div class="strt-part"> <span class="line-h line-h-r"></span> <div class="line-v"><span></span></div> <span class="strt-name">HTC</span> <div class="line-v"><span></span></div> <div class="strt-block"> <div class="strt-part"> <span class="line-h line-h-r"></span> <div class="line-v"><span></span></div> <span class="strt-name">One X</span> </div> <div class="strt-part"> <span class="line-h line-h-c"></span> <div class="line-v"><span></span></div> <span class="strt-name">G8</span> </div> <div class="strt-part"> <span class="line-h line-h-l"></span> <div class="line-v"><span></span></div> <span class="strt-name">Butterfly</span> </div> </div> </div> <div class="strt-part"> <span class="line-h line-h-c"></span> <div class="line-v"><span></span></div> <span class="strt-name">55</span> </div> </div> </div> </div> </div> </div> </div> </body> </html>

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧