壊れた HTML を iText に渡す前に、TagSoupを使用します。壊れた HTML をクリーンアップし、有効な X(HT)ML を返します。
TagSoup は、SAX パーサー インターフェイスを実装します。使用方法の例はいくつかありますが 、「実際の」ドキュメントが不足しています。
おそらく、XML を再度シリアル化し、ファイルにダンプして iText にフィードする必要があります。そのインターフェイスはわかりません。
XMLWriterを使用すると、SAXストリームをシリアライズできます。たまたま TagSoup に既に含まれているため、追加の依存関係を追加する必要はありません。
final Parser parser = new Parser();
final StringWriter writer = new StringWriter();
parser.setContentHandler(new XMLWriter(writer));
parser.parse(new InputSource(
new URL("http://oregonstate.edu/instruct/phl302/texts/hobbes/leviathan-c.html")
.openConnection().getInputStream()));
System.out.println(writer.toString());
writer
の出力をファイルにダンプするか、別の方法で渡すかは、iText の API に基づいて決定します。