我的应用程序在从磁盘读取 PDF 时遇到问题,然后必须稍后将其写回到不同的位置。
发出的文件不再是有效的 PDF。
以非常简化的形式,我尝试使用
读/写它var bytes = File.ReadAllBytes(@"c:\myfile.pdf");
File.WriteAllBytes(@"c:\output.pdf", bytes);
和
var input = new StreamReader(@"c:\myfile.pdf").ReadToEnd();
File.WriteAllText("c:\output.pdf", input);
...以及上面的大约 100 个排列,并指定了各种编码。所有输出文件都不是有效的 PDF。
有人可以帮忙吗?非常感谢!!
最佳答案
在 C#/.Net 4.0 中:
using (var i = new FileStream(@"input.pdf", FileMode.Open, FileAccess.Read))
using (var o = File.Create(@"output.pdf"))
i.CopyTo(o);
如果您坚持首先使用byte[]
:
using (var i = new FileStream(@"input.pdf", FileMode.Open, FileAccess.Read))
using (var ms = new MemoryStream())
{
i.CopyTo(ms);
byte[] rawdata = ms.GetBuffer();
using (var o = File.Create(@"output.pdf"))
ms.CopyTo(o);
}
在第二个 CopyTo 之前,内存流可能需要是 ms.Seek(0, SeekOrigin.Origin)
或类似的东西。查找或尝试一下
关于c# - 将 PDF 读入字符串或字节 [] 并将该字符串/字节 [] 写回磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771139/