使用PDFsharp将PDF文档保存到Response.OutputStream

时间:2017-05-26 15:20:49

标签: c# asp.net pdfsharp

我正在尝试将源文件的副本直接保存到响应输出流中。但是,由于此代码,浏览器窗口背景较暗。如果不使用MemoryStream,我怎么能这样做?

public static void CreateCollage(IEnumerable<Stamp> stamps, Stream input)
{

    using (PdfDocument outDoc = new PdfDocument())
        using (PdfDocument inputDoc = PdfReader.Open(input, PdfDocumentOpenMode.Import))
        {
            for (int i = 0; i < inputDoc.PageCount; i++)
            {
                var page = inputDoc.Pages[i];
                var pageOut = outDoc.AddPage(page);

                foreach (var stamp in stamps.Where(s => s.xyp.page == (i + 1)))
                    InsertData(pageOut, stamp, page.Width.Value, page.Height.Value);
            }
            outDoc.Save(context.Response.OutputStream, true);
        }
}

如果我使用Save()函数 - 我收到错误:

  

不支持指定的方法。

System.Web.HttpResponseStream.get_Position()中的

   在PdfSharp.Pdf.IO.PdfWriter.WriteFileHeader(PdfDocument文档)中 在d:\ Users \ yudina \ Desktop \ pdfsharp \ PDFsharp \ src \ PdfSharp \ Pdf.IO \ PdfWriter.cs:row 488

1 个答案:

答案 0 :(得分:1)

您不会致电outDoc.Close(),也不会将任何内容写入您的OutputStream