2015-11-15 117 views
0

我想加載一個pdf文件到字節數組,但代碼運行後,字節數組長度爲零。不知道我做錯了什麼。該項目是vs 2010,在vm 9x上運行贏得7 32位操作系統。希望這個問題有一個簡單的解決方法。提前致謝。流PDF到字節數組

Demonstrates the code I'm using to stream the pdf file to byte array

+0

也許路徑是不正確的。文件名中有空格。 –

+0

路徑和文件字符串都是正確的。問題很簡單,文件是空的。我在原來的帖子後發現了這個,並且有點不好意思承認網站。 – Paul

+0

路徑是正確的。我所引用的文件竟然是空的。最後要分享的是,pdf查看器上有一個屬性,需要設置文檔屬性才能使其正常工作。渲染器的工作原理如下所示,但觀看者具有的附加特性使其更適合使用,因此效果更好。謝謝您的幫助... – Paul

回答

1

下面的代碼爲我工作:

private void btnOpenFile_Click(object sender, EventArgs e) 
    { 
     string strId = gridViewMain.SelectedRows[0].Cells["id"].Value.ToString(); 

     if (!string.IsNullOrEmpty(strId)) 
     { 

      SqlCommand cmd = new SqlCommand(strQuery_GetAttachmentById, objConn); 
      cmd.Parameters.AddWithValue("@attachId", strId); 

      SqlDataAdapter da = new SqlDataAdapter(cmd); 

      DataTable dt = new DataTable(); 

      da.MissingSchemaAction = MissingSchemaAction.AddWithKey; 
      SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(da); 

      da.Fill(dt); 

      DataRow dr = dt.Rows[0]; 

      byte[] PDFBytes = (byte[])dr["attachment"]; 
      LoadPdf(PDFBytes); 
     } 

    } 

    public void LoadPdf(byte[] pdfBytes) 
    { 
     var PDFstream = new MemoryStream(pdfBytes); 
     LoadPdf(PDFstream); 
    } 

    public void LoadPdf(Stream pdfstream) 
    { 
     // Create PDF Document 
     var pdfDocument = PdfDocument.Load(pdfstream); 

     // Load PDF Document into WinForms Control 
     pdfRenderer1.Load(pdfDocument);  
    } 
}