mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
Fix to allow html entities by going through a w3c DOM
This commit is contained in:
@ -35,6 +35,7 @@ import com.openhtmltopdf.pdfboxout.PdfBoxFontResolver;
|
|||||||
import com.openhtmltopdf.pdfboxout.PdfBoxRenderer;
|
import com.openhtmltopdf.pdfboxout.PdfBoxRenderer;
|
||||||
import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
|
import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
|
||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
|
import org.jsoup.helper.W3CDom;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
|
|
||||||
|
|
||||||
@ -67,6 +68,7 @@ public class ConvertHtmlToPdfAction extends AbstractQActionFunction<ConvertHtmlT
|
|||||||
//////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////
|
||||||
Document document = Jsoup.parse(input.getHtml());
|
Document document = Jsoup.parse(input.getHtml());
|
||||||
document.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
|
document.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
|
||||||
|
org.w3c.dom.Document w3cDoc = new W3CDom().fromJsoup(document);
|
||||||
|
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
// convert the XHTML to PDF //
|
// convert the XHTML to PDF //
|
||||||
@ -74,7 +76,7 @@ public class ConvertHtmlToPdfAction extends AbstractQActionFunction<ConvertHtmlT
|
|||||||
PdfRendererBuilder builder = new PdfRendererBuilder();
|
PdfRendererBuilder builder = new PdfRendererBuilder();
|
||||||
builder.toStream(input.getOutputStream());
|
builder.toStream(input.getOutputStream());
|
||||||
builder.useFastMode();
|
builder.useFastMode();
|
||||||
builder.withHtmlContent(document.html(), input.getBasePath() == null ? "./" : input.getBasePath().toUri().toString());
|
builder.withW3cDocument(w3cDoc, input.getBasePath() == null ? "./" : input.getBasePath().toUri().toString());
|
||||||
|
|
||||||
try(PdfBoxRenderer pdfBoxRenderer = builder.buildPdfRenderer())
|
try(PdfBoxRenderer pdfBoxRenderer = builder.buildPdfRenderer())
|
||||||
{
|
{
|
||||||
|
@ -79,6 +79,7 @@ class ConvertHtmlToPdfActionTest extends BaseTest
|
|||||||
</h1>
|
</h1>
|
||||||
<div class="myclass">
|
<div class="myclass">
|
||||||
<p>This is a test of converting HTML to PDF!!</p>
|
<p>This is a test of converting HTML to PDF!!</p>
|
||||||
|
<p>This is a line with • some entities <</p>
|
||||||
<p style="font-family: SF-Pro; font-size: 24px;">(btw, is this in SF-Pro???)</p>
|
<p style="font-family: SF-Pro; font-size: 24px;">(btw, is this in SF-Pro???)</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user