2013-08-03 39 views
0

我想從流中創建一個具有保存在流中的PDF文檔的位圖,但我不斷收到參數爲null的異常。 MS不是空的,它被定位在0.所以我迷失在做什麼。當從流中創建新的位圖時MemoryStream爲空

我通過使用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); 
} 

我在這裏錯過了什麼?

+0

爲什麼人們認爲PDF是一種圖像格式?它不_。 – Nyerguds

回答

0

您試圖打開包含PDF文檔的流,位圖構造函數期待圖像數據。 PDFSharp只能創建PDF文檔,但不能將其渲染爲圖像。

要將PDF文檔呈現爲位圖,您必須使用其他庫,例如, lib-pdf,mupdf-converter或.NET封裝的Ghostscript。

+0

爲什麼你一早就要這麼醜陋! ;)我可以在Windows窗體圖片框中顯示pdf嗎? –

相關問題