【问题标题】:generate pdf from byte[] using iTextSharp使用 iTextSharp 从 byte[] 生成 pdf
【发布时间】:2016-01-13 10:54:18
【问题描述】:

我正在尝试创建一个新的 pdf 文件文件并使用 iTextSharp 将其保存到磁盘。

我有 pdf 内容的字节 [],但无法理解如何将其与 iTextSharp 一起使用。

public bool CreatePdf(string filepath, byte[] content)
{

}

谁能帮我提供一些示例代码,在 iTextSharp 中使用 byte[] 生成 pdf 并将其保存到磁盘。

我在 google 上找到了很多关于添加新段落或块的教程。但我想使用 byte[]。

【问题讨论】:

  • hmmm,如果你有 byte[] 的内容并且它应该是 pdf 文件的字节数据,那么为什么你需要通过 iTextSharp 创建 pdf。您可以使用 memorystream 或 File 类直接写入文件。
  • 绝对想多了。 File.WriteAllBytes(string path, byte[] bytes) 是要走的路
  • 我试过了,但 pdf 布局看起来不太好。使用(var fileStream = new FileStream(filePath,FileMode.Create,FileAccess.ReadWrite)){fileStream.Write(exportedByte,0,exportedByte.Length);文件流。关闭(); }
  • 您说您有“用于 pdf 内容的字节 []”,但这并没有真正的意义。如果你的字节数组是PDF?如果是,请按照丹尼尔所说的将其写入磁盘。如果它看起来不正确,那么你没有 PDF 的字节数组,你还有别的东西。检查字节数组,前四个字节应该是25-50-44-46,最后一个(或几乎最后一个)字节应该是25-25-45-4F-46
  • 由于数据机密性,无法共享 PDF。无论如何,问题现在已经解决了。感谢大家的帮助/建议。

标签: c# pdf itextsharp


【解决方案1】:
public bool CreatePdf(string filepath, byte[] content)
{
  PdfReader reader = new PdfReader(new MemoryStream(content));
  PdfStamper stamper = new PdfStamper(reader, new FileStream(filepath, FileMode.Create));
}

【讨论】:

  • 如果您的提议适用于 PDF,那么最初提议的将字节数组写入磁盘也同样有效,而且会更简单。
  • @Alfonso Rogero,它在第一行给出错误:“PDF header signature not found.”
猜你喜欢
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 2015-11-22
  • 2011-06-29
  • 2022-10-06
  • 1970-01-01
相关资源
最近更新 更多