2014-01-20 80 views
1

我使用ITextRenderer使用HTML字符串生成PDF HTML的特殊符號,但其生成的PDF,但給我的錯誤時,HTML字符串包含類似&度 HTML實體, & NBSP **等符號,其輸出誤差作爲ITextRenderer不接受

org.xml.sax.SAXParseException: The entity "deg" was referenced, but not declared. 

像例如

String myString=<html><head></head><body><div>**1L of water at 100&deg;C is mixed with 1 L of water at 0&deg;**</div></body></html> 

和我的Java代碼

StringBuffer buf = new StringBuffer(); 
buf.append(myString); 

try { 
      DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 

      Document doc = builder.parse(new StringBufferInputStream(buf.toString())); 
      ITextRenderer renderer = new ITextRenderer(); 
      renderer.setDocument(doc, null); 
      renderer.getFontResolver(); 
      renderer.layout(); 
      java.io.OutputStream os = response.getOutputStream(); 
      renderer.createPDF(os); 
      os.flush(); 
      os.close(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 

甚至還添加了像

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> 

meta標籤,也有一些東西像

<?xml version=\'1.0\' encoding=\'UTF-8\'?><html xmlns=\'http://www.w3.org/1999/xhtml\' lang=\'en\'><head> 

還是同樣的錯誤。 任何幫助 在此先感謝。

+0

即使我嘗試使用這個鏈接「http://www.dayon.nl/content/xhtml-pdf-java-0」等,但是給我的線程錯誤「異常「main」org.xhtmlrenderer.util.XRRuntimeException:無法加載XML資源(使用TRaX轉換器)。java.io.IOException:Stream closed「它顯示了我們如何清理html。但不起作用 – Anurag

回答

1

問題是& deg;被視爲一個Html標記。因此,逃脫&& amp;將解決您的問題。

例子:

String myString = "<html><head></head><body><div>**1L of water at 100&amp;deg;C is mixed with 1 L of water at 0&amp;deg;**</div></body></html>";