2017-08-30 82 views
0

我有幾個PDF加載到字節[]數組列表中。 我想在WPF表單中顯示這些PDF的第一頁。如果可能的話,一個圖像控件就可以。 但是,我想避免將Bytes寫出到本地機器上的PDF文件。從字節數組預覽PDF而不將字節寫入本地機器

問題: 我如何可以採取一個PDF(已在內存中)的字節],並且無需編寫PDF到本地機器上顯示的圖像控制的PDF的第一頁?

回答

2

您不必將PDF寫入磁盤,可以將其保存在內存中。但是,您需要將PDF作爲內存中的對象完全加載。

這是一篇關於如何在C#中使用PDF轉換圖像的Microsoft文章,我認爲這對您來說是一個很好的起點。以下示例來自下面的鏈接,對於您的需求,您可以跳過for循環並轉換第一頁。請注意,在實例化PdfImageConverter對象時,有多個重載,需要一個流,這是你的byte []。

PdfImageConverter pdfConverter = new PdfImageConverter("sample.pdf"); 

pdfConverter.DPI = 96; 

for (int i = 0; i < pdfConverter.PageCount; i++) 
{  
    Image pageImage = pdfConverter.PageToImage(i, 500, 800); 

    pageImage.Save("Page " + i + ".jpg", ImageFormat.Jpeg); 
} 

https://code.msdn.microsoft.com/windowsdesktop/How-to-Convert-PDF-to-84ac3273


代碼項目有從PDF創建縮略圖答案(VB.NET)

https://www.codeproject.com/Articles/5887/Generate-Thumbnail-Images-from-PDF-Documents

這是寫在VB.NET,但過程將是對於C#也是一樣。


還有關於把一個PDF到圖像中另一個SO問題,這也會爲你工作:

Save pdf to jpeg using c#

你有什麼類型的需求(庫,API等)那也可能會影響解決方案?如果是的話,我會更新這個答案。