【问题标题】:Generate PDF from multiple HTML pages using iText使用 iText 从多个 HTML 页面生成 PDF
【发布时间】:2015-10-09 18:50:12
【问题描述】:

我知道如何生成单个 HTML 页面。我想知道如何从多个 HTML 页面生成的 pdf 中生成单个 pdf 页面。

例如有HTMLX1.html还有另一个文件HTMLX2.html 我可以分别从html生成单独的pdf文件PDFX1.pdfPDFX2.pdf。我可以将它们写入文件系统,然后像iTextConcatenate Example 一样将它们连接起来。

我只是想知道是否可以在不将它们写入文件系统的情况下即时组合此操作。我无法识别丢失的链接

【问题讨论】:

  • 感谢大卫更新问题

标签: java itext


【解决方案1】:

当您创建 PDFX1.pdf 时,使用 PdfWriterByteArrayOutputStream 而不是 FileOutputStream

ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, baos1);

连接 PDF 文档时,使用 PdfReaderByteArrayInputStream

PdfReader reader = new PdfReader(new ByteArrayInputStream(baos1.toByteArray()));

或者你也可以直接使用字节数组:

PdfReader reader = new PdfReader(baos1.toByteArray());

(对 PDFX2.pdf 执行类似操作。)

【讨论】:

  • 不错。我在想我自己需要使用 BufferedOutStream。我希望这能解决问题。我会接受我在使用文件 I/O 时有点草率
  • @rhens 是否有任何完整的工作示例。
【解决方案2】:

如果您想避免写入文件,可以使用StringReaderStringWriter

Oracle 文档:

  1. StringReader

  2. StringWriter

它仍然是一个 I/O 进程,但您不会写入或读取实际文件。相反,您将使用字符串缓冲区。

【讨论】:

  • 不是最有用的方法。 PDF 文件不同于其他文本文件。它们可以存储在 InputStreamReader 中,但不能存储在 StringReader 中。
猜你喜欢
  • 2019-12-16
  • 2013-06-05
  • 2021-10-03
  • 2013-08-10
  • 1970-01-01
  • 2014-12-15
  • 2015-10-13
  • 2012-12-13
  • 2012-01-22
相关资源
最近更新 更多