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