字节数组为pdf



我正在尝试将存储在sql列中的文件内容转换为pdf。

我使用下面的代码:

byte[] bytes;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, fileContent);
bytes = ms.ToArray();
System.IO.File.WriteAllBytes("hello.pdf", bytes);

生成的pdf在某种意义上是损坏的,当我在notepad++中打开pdf时,我看到一些垃圾头(无论fileContent如何,都是相同的)。垃圾头是NUL SOH NUL NUL NUL ....

您不应该使用BinaryFormatter -这是用于将。net类型序列化为二进制文件,以便它们可以再次作为。net类型读取。

如果它被存储在数据库中,希望,作为一个varbinary -然后所有你需要做的是得到字节数组从(这将取决于你的数据访问技术- EF和Linq Sql,例如,将创建一个映射,使它琐碎的得到一个字节数组),然后写到文件,你在你的最后一行代码。

有任何运气-我希望fileContent这里是字节数组?在这种情况下,你可以直接输入

System.IO.File.WriteAllBytes("hello.pdf", fileContent);

如果字节数组有问题,通常会发生这种情况。

File.WriteAllBytes("filename.PDF", Byte[]);

创建一个新文件,将指定的字节数组写入该文件,然后关闭该文件。如果目标文件已经存在,则覆盖该文件。

异步实现也是可用的。

public static System.Threading.Tasks.Task WriteAllBytesAsync 
(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = null);

相关内容

  • 没有找到相关文章

最新更新