我正在使用 MigraDoc 进行 PDF 导出,并且应用程序的一部分允许用户将图像 (MigraDoc.DocumentObjectModel.Shapes.Image) 嵌入到文档中。图像存在于数据库中,我无法升级到处理来自内存的 FileStream 图像的最新 MigraDoc BETA。所以,我的解决方案是从数据库中读取图像并将它们存储在我的图像文件夹中的“临时”文件夹中,MigraDoc 将在那里引用图像。PDF 渲染完成后,我将不再需要该图像并希望摆脱它。
PDF 文档呈现如下:
PdfDocumentRenderer renderer = new PdfDocumentRenderer(true, PdfSharp.Pdf.PdfFontEmbedding.Always);
renderer.Document = this.document;
renderer.RenderDocument();
byte[] pdfContents = null;
using (MemoryStream stream = new MemoryStream())
{
renderer.PdfDocument.Save(stream, true);
pdfContents = stream.ToArray();
}
return pdfContents;
并最终作为 FileContentResult 传递。
我的问题是我似乎无法在流程的任何阶段删除添加到 PDF 文档中的文件......它们似乎是必需的,包括我返回 FileContentResult 的点。
PdfDocumentRenderer(或其他任何地方)上是否有一个设置可以嵌入图像,而不是依赖它们在原位直到 FileContentResult 被渲染?