代码如下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
求解了??????
帮帮忙

解决方案 »

  1.   

    在放上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>
      

  2.   

    报错和是不是中文没关系。
    你这个报错说输入1字节的数据但是企图以UTF-8解码(UTF-8占用2字节),所以出错。
    首先,你那个index.html里面有内容么?先把url(String)输出一下看看。
    另外at test99.main(test99.java:27),哪行是你的第27行?
      

  3.   


    就是解析中文的时候报错,我的html见一楼,编码是utf-8,改成GB2312就不报错了,但是生成的pdf中文乱码???