我有幾個PDF加載到字節[]數組列表中。 我想在WPF表單中顯示這些PDF的第一頁。如果可能的話,一個圖像控件就可以。 但是,我想避免將Bytes寫出到本地機器上的PDF文件。從字節數組預覽PDF而不將字節寫入本地機器
問題: 我如何可以採取一個PDF(已在內存中)的字節],並且無需編寫PDF到本地機器上顯示的圖像控制的PDF的第一頁?
我有幾個PDF加載到字節[]數組列表中。 我想在WPF表單中顯示這些PDF的第一頁。如果可能的話,一個圖像控件就可以。 但是,我想避免將Bytes寫出到本地機器上的PDF文件。從字節數組預覽PDF而不將字節寫入本地機器
問題: 我如何可以採取一個PDF(已在內存中)的字節],並且無需編寫PDF到本地機器上顯示的圖像控制的PDF的第一頁?
您不必將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問題,這也會爲你工作:
你有什麼類型的需求(庫,API等)那也可能會影響解決方案?如果是的話,我會更新這個答案。