用户登录
用户注册

分享至

PDFsharp 保存到 MemoryStream

  • 作者: 唐耀德
  • 来源: 51数据库
  • 2023-02-13

问题描述

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

I want to save a PdfSharp.Pdf.PdfDocument by its Save method to a Stream, but it doesn't attach the PDF header settings to it. So when I read back the Stream and return it to the user, he see that the PDF file is invalid. Is there a solution to attach the PDF header settings when PDFsharp saves to memory?

推荐答案

所以解决方案:

MigraDoc.DocumentObjectModel.Document doc = new MigraDoc.DocumentObjectModel.Document();
MigraDoc.Rendering.DocumentRenderer renderer = new DocumentRenderer(doc);
MigraDoc.Rendering.PdfDocumentRenderer pdfRenderer = new MigraDoc.Rendering.PdfDocumentRenderer();
pdfRenderer.PdfDocument = pDoc;
pdfRenderer.DocumentRenderer = renderer;
using (MemoryStream ms = new MemoryStream())
{
  pdfRenderer.Save(ms, false);
  byte[] buffer = new byte[ms.Length];
  ms.Seek(0, SeekOrigin.Begin);
  ms.Flush();
  ms.Read(buffer, 0, (int)ms.Length);
}

有 PdfSharp 附带的 MigraDoc 东西,但我几乎找不到任何合适的文档/常见问题解答.经过数小时的谷歌搜索,我发现了一个类似这样的片段.现在它可以工作了.

There is this MigraDoc stuff which comes with PdfSharp, but i hardly found any proper doc/faq for it. After hours of googling i've found a snippet which was something like this. Now it works.

软件
前端设计
程序设计
Java相关