0

我正在尝试从一个流中创建一个位图,该流中保存了一个 PDF 文档,但我不断收到参数 null 异常。MS 不为空,它位于 0。所以我不知道还能做什么。

我正在使用 Windows 窗体应用程序沙箱测试功能,但我无法将内存流保存到位图。

有人可以指出我哪里出错了吗?

   private async void Form1_Load(object sender, EventArgs e)
{
    //4355,4373

    IElevation elev = await ElevationManager.GetElevationAsync(4355);

    PdfSharp.Pdf.PdfDocument pdfDoc =
      await (await AlumCloudPlans.Manager.GetLabelsAsync(elev)).GetPDF(new SheetInfo(/*settings for PDF, Img printing is different*/3, 10, 240, 95, 780, 1000));

    System.IO.Stream ms = new MemoryStream();

    pdfDoc.Save(ms, false);
    ms.Position = 0;

    Bitmap bm = new Bitmap(ms); <---------(Error right here, says argument null)

    this.AutoScroll = true;
    this.pictureBox1.Image = bm;
    this.pictureBox1.BackColor = Color.White;
    this.Size = new System.Drawing.Size(bm.Width, (bm.Height + 50) / 2);
    this.pictureBox1.Size = new System.Drawing.Size(bm.Width, bm.Height + 5);
}

我在这里想念什么?

4

1 回答 1

0

您正在尝试打开包含 PDF 文档的流,位图构造函数需要图像数据。PDFSharp 只能创建 PDF 文档,但不能将其呈现为图像。

要将 PDF 文档渲染为位图,您必须使用其他库,例如lib-pdfmupdf-converter或 Ghostscript 的 .NET 包装器。

于 2013-08-03T06:34:39.290 回答