Похоже, вам нужно либо предоставить DTD , либо заменить имя сущности auml
на соответствующее шестнадцатеричное или десятичное значение, то есть ä
или ä
соответственно. См. А.2. Наборы сущностей и HTML 4 Имена сущностей .
Содержимое html будет выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html [
<!ENTITY auml "ä">
]>
<html>
<head>
</head>
<body>
käse
</body>
</html>
В качестве альтернативы, вы можете запустить через строку html и замените имена сущностей соответствующими значениями dec / hex, которые должны быть хорошими, или просто добавьте DTD к вашей строке html перед передачей ее конструктору pdf.
Обновление
Возможно, вы захотите попробовать библиотеку jsoup . Он анализирует и предоставляет вам org.w3c.dom.Document
, например,
Document jsoupDoc = Jsoup.parse(html); // org.jsoup.nodes.Document
W3CDom w3cDom = new W3CDom(); // org.jsoup.helper.W3CDom
org.w3c.dom.Document w3cDoc = w3cDom.fromJsoup(jsoupDoc);
. Затем вы можете передать w3cDoc
в PDF-конструктор, например,
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.withW3cDocument(w3cDoc, "file://localhost/");