gpt4 book ai didi

java - 如何将 html 字符串转换为 PDF 输入流?

转载 作者:行者123 更新时间:2023-12-01 10:15:32 25 4
gpt4 key购买 nike

如果我们有一个包含 html 页面内容的字符串,我们如何将其转换为将此字符串转换为 pdf 文档后生成的 InputStream

我正在尝试将 iText 与 XMLWorkerHelper 一起使用,下面的代码可以工作,但问题是我不希望输出在文件上。我尝试了几种变体,以便在 InputStream 上获得结果,并将其转换为 Primefaces StreamedContent 但没有成功。我们怎样才能做到呢?

我们可以使用另一种技术来解决这个问题吗?这样做的动机是使用已经渲染的 xhtml 文件并将其输出为 pdf 供用户下载。

Document document = new Document();

PdfWriter writer = PdfWriter.getInstance(document,

new FileOutputStream("results/loremipsum.pdf"));

document.open();

XMLWorkerHelper.getInstance().parseXHtml(writer, document,

new FileInputStream("/html/loremipsum.html"));

document.close();

最佳答案

如果您需要一个InputStream,其他代码可以从中读取您的代码生成的 PDF,您可以简单地使用字节数组输出流创建 PDF,然后将该流中的字节数组包装在字节数组输入流:

ByteArrayOutputStream baos = new ByteArrayOutputStream();

Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, baos);
document.open();
XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream("/html/loremipsum.html"));
document.close();

ByteArrayInputStream pdfInputStream = new ByteArrayInputStream(baos.toByteArray());

您可以通过在不同线程中创建和处理 PDF 并使用 PipedOutputStreamPipedInputStream 来对此进行优化。

关于java - 如何将 html 字符串转换为 PDF 输入流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35921388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com