【问题标题】:Generate inputStream from Itext pdf source从 Itext pdf 源生成 inputStream
【发布时间】:2017-04-11 10:45:51
【问题描述】:

我正在尝试从 iText 库生成的文件中生成 inputStream 对象。这些是文件中的第一个字节:

%PDF-1.4
%âãÏÓ
2 0 obj
<</Length 1571/Filter/FlateDecode>>stream
)©toÿqûºÒç¹Ð4)ÖÞ{Ñ$,·7?ÂDCþDÆü½

【问题讨论】:

  • 你的问题是错误的。我纠正了它。您不是在创建“文本”;您正在创建 PDF 文件(或文档)。您希望该文件的字节以InputStream 的形式提供,但您并没有告诉我们您是否在磁盘上创建了文件(在这种情况下,您可以简单地创建一个FileInputStream)或者您是否在内存(在这种情况下,您有一个 ByteArrayOutputStream,您可以轻松地将其转换为 ByteArrayInputStream)。

标签: java pdf itext


【解决方案1】:

假设您这样创建 PDF:

ByteArrayOutputStream out = new ByteArrayOutputStream();
Document document = new Document();
PdfWriter.getInstance(document, out);
document.open();
document.add(new Paragraph("Hello World"));
document.close();

在这种情况下,您可以像这样将OutputStream 转换为InputStream

InputStream in = ByteArrayInputStream(out.toByteArray());

假设您这样创建 PDF:

FileOutputStream out = new FileOutputStream("my.pdf");
Document document = new Document();
PdfWriter.getInstance(document, out);
document.open();
document.add(new Paragraph("Hello World"));
document.close();

然后你可以像这样创建一个InputStream

InputStream in = new FileInputStream("my.pdf");

【讨论】:

  • 应该是InputStream in = new ByteArrayInputStream(out.toByteArray());
猜你喜欢
  • 2011-08-04
  • 2012-01-02
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
相关资源
最近更新 更多