使用 iText 从多个 HTML 页面生成 PDF

Generate PDF from multiple HTML pages using iText

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

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

那样连接它们

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

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

Oracle 文档:

  1. StringReader

  2. StringWriter

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

当您创建 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 执行类似操作。)