2014-09-26 4 views
2

Я использую itext для создания pdf-файла из html-содержимого. Я создаю html-содержимое в виде таблицы, используя java String buffer. Карта содержит значения метаданных файлов в виде пар значений ключа. Я повторяю этот ключ и значения для построения таблицы html. Проблема в том, что некоторые из значений метаданных на карте являются бессмысленными/недопустимыми символами. Таким образом, создание PDF не выполняется с последующим исключением.IText Создание PDF из Html не удается, если HTML содержит специальные/незаконные символы

java.io.IOException: Expected > for tag: <{1}/> near line 1, column 717 
at com.lowagie.text.xml.simpleparser.SimpleXMLParser.throwException(SimpleXMLParser.java:568) 
    at com.lowagie.text.xml.simpleparser.SimpleXMLParser.go(SimpleXMLParser.java:331) 
    at com.lowagie.text.xml.simpleparser.SimpleXMLParser.parse(SimpleXMLParser.java:579) 
    at com.lowagie.text.html.simpleparser.HTMLWorker.parse(HTMLWorker.java:141) 


Content which caused the exception is 
“$é6莚ÆuCÅ ©À SÀF;r 1Ì/XQ‡,Ô<ÒÐ"‡(¢ËÄòÅ1¡Ø€ÌÅc 

Так что мой вопрос в том, каковы эти символы (Non-Ascii, utf-unsupported)? Есть ли способ идентифицировать и пропустить их при построении html?

+0

Единственным плохое character - это '<' здесь, который не должен появляться в вашем HTML. Преобразование его в его надлежащую экранированную форму '<' должно исправить. – usr2564301

+0

@Jongware: я избегаю всех возможных символов html. После побега контента ««$ é6莚ÆuCÅ © À \t SAF; г 1I/XQ ‡, Ö < О.Д. " ‡ (¢ ËÄòÅ1¡Ø € ИАЦ» Даже тогда он терпит неудачу .. – Vijay

+0

"Это терпит неудачу" является ** не ** полезное описание проблемы. Исходная ошибка была «Ожидаемая» для тега', наверняка вы должны получить новое сообщение об ошибке? – usr2564301

ответ

2

В режиме реального времени, трудно определить и пропустить при построении HTML Вы можете использовать Apache Commons-Ланг, чтобы избежать HTML

StringEscapeUtils.escapeHtml("“$é6莚ÆuCÅ ©À SÀF;r 1Ì/XQ‡,Ô<ÒÐ"‡(¢ËÄòÅ1¡Ø€ÌÅc") 

Выхода вышеперечисленного

&ldquo;$&eacute;6&egrave;&#381;&scaron;&AElig;uC&Aring; &copy;&Agrave; S&Agrave;F;r 1&Igrave;/XQ&Dagger;,&Ocirc;&lt;&Ograve;&ETH;&quot;&Dagger;(&cent;&Euml;&Auml;&ograve;&Aring;1&iexcl;&Oslash;&euro;&Igrave;&Aring;c