c# - 将 PDF 读入字符串或字节 [] 并将该字符串/字节 [] 写回磁盘

标签 c# file pdf

我的应用程序在从磁盘读取 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/

相关文章:

c# - 在 Xamarin.Forms 中录制语音后如何保存音频文件

C# IronPDF 将纯文本发送到 PDF

java - 如何区分可搜索的 pdf 和不可搜索的 pdf?

c# - 由多个线程读取/写入的字段,Interlocked 与 volatile

c# - 在 ASP.NET MVC 中将多个参数传递给 Controller ​​;此外,在 LINQ-to-SQL 中生成即时查询

c# - ASP.Net MVC 4 使用属性还是 BaseController?

pdf - Jasperreports NulPointerException 生成 PDF/A 文件

c# - 如何反转 LINQ to SQL 查询

python - 使用 python 将 JSON 对象写入文件

.net - 如果该文件夹不存在,如何通过创建文件夹将文件从一个目录复制到另一个目录