2015-10-09 90 views
2

我知道如何生成一个HTML页面。我想知道如何从多个HTML页面生成的pdf生成单个pdf页面。使用iText从多个HTML页面生成PDF

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

我只是想知道如果我可以在不将它们写入文件系统的情况下将这个动作结合起来。我无法识别缺失的链接

+0

感谢David更新问题 – Acewin

回答

2

当您创建PDFX1.pdf,使用具有的ByteArrayOutputStream而不是FileOutputStream一个PdfWriter

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执行同样的操作。)

+0

不错。我在想我自己,我将需要使用BufferedOutStream。我希望这会做的伎俩将尝试。我会接受我在使用File I/O时变得有点sl sl – Acewin

0

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

的Oracle文档:

  1. StringReader

  2. StringWriter

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

+0

不是最有用的方法。 PDF文件不像其他文本文件。它们可以存储在InputStreamReader中,但不能存储在StringReader中。 – Acewin