【问题标题】:Creating pdf from byte array从字节数组创建pdf
【发布时间】:2013-06-28 19:25:10
【问题描述】:

我正在尝试从一个字节数组创建一个 pdf 文件为

string str = "Hello World";
byte[] byteArray = Encoding.ASCII.GetBytes(str);
using(FileStream fs = new FileStream(path, FileMode.OpenorCreate, FileAccess.ReadWrite, FileShare.None))
 {
     fs.Write(byteArray, 0, byteArray.Length);
 }

它创建文件。但是,当我尝试打开文件时,出现以下错误:

adobe reader could not open file because it is not a supported file type

我可以打开其他 pdf 文件就好了。是什么导致了这个错误?

【问题讨论】:

  • 你确定你的字节数组是一个完整的pdf文件吗?
  • 请查看我的编辑。我正在将字符串转换为字节数组
  • 在您的代码示例中,您正在将常规字符串写入文件。您是否要打开那个不包含“pdf”信息的文件?
  • 您是真的想将“Hello World”转换为 PDF 文件,还是只是真实 PDF 数据的占位符?
  • 这里保存的是 ASCII 文件而不是 PDF。仅添加 .pdf 扩展名并不能使其成为 PDF。就像给 .jpg 扩展名和写“阿曼达·皮特”一样,并不能使它成为阿曼达·皮特的照片。

标签: c# pdf-generation adobe-reader


【解决方案1】:

pdf 格式不仅仅是一个简单的“Hello World”。它包含有关格式和文件本身的大量信息。您需要查看可帮助您创建 pdf 文件而不是写出“Hello World”的库。这有点像在 txt 文件中写一些东西并在 photoshop 中打开它——它不是一个有效的文件。

【讨论】:

    【解决方案2】:

    如果您想创建一个 PDF 格式的 Hello World 文件,您需要一个库来执行此操作。

    例如:此 Java HelloWorld 示例创建此 hello.pdf。下载hello.pdf 并在文本编辑器中打开它,您会发现它包含的内容远不止“Hello World”字节。

    我知道您是一名 C# 程序员。您可以找到 HelloWorld 示例的 C# 端口here。 iText 只是众多库之一,我之所以提到它是因为我是 iText 的原始开发人员。简单搜索PDF libraries 将显示更多选项。

    【讨论】:

      猜你喜欢
      • 2011-04-27
      • 2011-10-05
      • 2015-11-19
      • 2013-09-23
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多