2017-08-30 93 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等)那也可能会影响解决方案?如果是的话,我会更新这个答案。

相关问题