gpt4 book ai didi

c# - PDFsharp 保存到 MemoryStream

转载 作者:IT王子 更新时间:2023-10-29 04:10:19 25 4
gpt4 key购买 nike

我想通过其 Save 方法将 PdfSharp.Pdf.PdfDocument 保存到 Stream,但它没有将 PDF 标题设置附加到它。因此,当我读回 Stream 并将其返回给用户时,他看到 PDF 文件无效。 PDFsharp 保存到内存时,是否有附加 PDF 标题设置的解决方案?

最佳答案

如果您认为 PdfDocument.Save 存在问题,请在 PDFsharp 论坛上报告此问题(但请更具体地说明您的错误)。你的“解决方案”对我来说就像一个黑客。“pdfRenderer.Save”在内部调用“PdfDocument.Save”。无论问题是什么 - 您的“解决方案”仍然调用相同的保存例程。

编辑:要获取包含 PDF 文件的 byte[],您只需调用:

MemoryStream stream = new MemoryStream();
document.Save(stream, false);
byte[] bytes = stream.ToArray();

PDFsharp 的早期版本不会重置流位置。

所以你必须打电话

ms.Seek(0, SeekOrigin.Begin); 

在从流中读取之前重置流位置;当前版本不再需要。

通常可以使用 ToArray 而不是从流中读取。

编辑 2:代替 stream.ToArray() 使用 stream.GetBuffer() 可能更有效,但此缓冲区通常比 PDF 文件大并且您只需使用该缓冲区中的 stream.Length 字节。对于采用 byte[] 和长度参数的方法非常有用。

关于c# - PDFsharp 保存到 MemoryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1073277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com