字节数组到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);