Essential Studio for WPF界面控件教程:如何轻松将PDF转换为图像?

我们都觉得很难将PDF文档页面导出为各种用例的图像。这就是为什么我们决定在WPF PDF Viewer中它。在此博客中,我们将引导您完成使用此WPF PDF Viewer将PDF页面导出为高质量图像的步骤。

我们都觉得很难将PDF文档页面导出为各种用例的图像。这就是为什么我们决定在WPF PDF Viewer中它。在此博客中,我们将引导您完成使用此组件将PDF页面导出为高质量图像的步骤。

PDF Viewer允许您导出为以下格式:

  • JPG格式
  • PNG
  • TIFF
  • 骨形态发生蛋白

如何将PDF文件页面导出为图像

您可以使用ExportAsImage 方法将PDF文件的页面导出为图像 。我们将看到如何将单个页面导出到图像中,以及如何将特定范围的页面导出到普通和缩略图尺寸的图像中。

将PDF文件的一页导出为图像

通过将页面索引作为ExportAsImage 方法的参数传递,可以将PDF文件的单个页面导出到图像 。以下代码示例演示如何在不使用PDF Viewer UI的情况下以编程方式将单个页面导出为JPEG图像。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//初始化PdfViewerControl</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">PdfViewerControl pdfViewer =新的PdfViewerControl();</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//加载输入的PDF文件。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">PdfLoadedDocument loadingDocument = new PdfLoadedDocument(“ Sample.pdf”);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">pdfViewer.Load(loadedDocument);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//将特定的PDF页面作为图像导出到页面索引为0处。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">BitmapSource图片= pdfViewer.ExportAsImage(0);</font></font><font></font> <font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//设置输出路径。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">字符串输出= @“ ..  ..  Output  Image”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">如果(图片!= null)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">{</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        //初始化新的Jpeg位图编码器。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        BitmapEncoder编码器=新的JpegBitmapEncoder();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        //使用位图源创建位图框架,并将其添加到编码器中。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        encoder.Frames.Add(BitmapFrame.Create(image));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        //以所需的图像格式为输出创建文件流。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        FileStream流=新的FileStream(输出+“ .Jpeg”,FileMode.Create);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        //保存流,以便在输出位置生成图像。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        encoder.Save(stream);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">}</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//处理文档。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">loadedDocument.Dispose();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">loadingDocument = null;</font></font><font></font> 

将PDF文件中特定范围的页面导出为图像

通过将起始页和结束页索引作为ExportAsImage 方法的参数传递,可以将特定范围的PDF页面导出到图像 。以下代码示例演示了如何在不使用PDF Viewer UI的情况下以编程方式将一系列PDF页面导出为JPEG图像。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//初始化PdfViewerControl。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">PdfViewerControl pdfViewer =新的PdfViewerControl();</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//加载输入的PDF文件。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">PdfLoadedDocument loadingDocument = new PdfLoadedDocument(“ Sample.pdf”);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">pdfViewer.Load(loadedDocument);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//将所有页面导出为特定页面范围内的图像。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">BitmapSource []图片= pdfViewer.ExportAsImage(0,loadedDocument.Pages.Count-1);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//设置输出路径。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">字符串输出= @“ ..  ..  Output  Image”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">如果(图片!= null)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">{</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        对于(int i = 0; i <image.Length; i ++)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //初始化新的Jpeg位图编码器。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                BitmapEncoder编码器=新的JpegBitmapEncoder();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //使用位图源创建位图框架,并将其添加到编码器中。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                encoder.Frames.Add(BitmapFrame.Create(image [i]));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //以所需的图像格式为输出创建文件流。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                FileStream流=新的FileStream(输出+ i.ToString()+“ .Jpeg”,FileMode.Create);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //保存流,以便在输出位置生成图像。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                encoder.Save(stream);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">}</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//处理文档。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">loadedDocument.Dispose();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">loadingDocument = null;</font></font><font></font>

将PDF文件中的页面导出为缩略图

通过将开始页面索引,结束页面索引和大小(宽度和高度)作为ExportAsImage 方法的参数传递,可以将PDF页面导出为具有自定义尺寸的缩略图 。以下代码段演示了如何在不使用PDF Viewer UI的情况下以编程方式将PDF页面导出为JPEG格式的缩略图。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//初始化PdfViewerControl。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">PdfViewerControl pdfViewer =新的PdfViewerControl();</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//加载输入的PDF文件。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">PdfLoadedDocument loadingDocument = new PdfLoadedDocument(“ Sample.pdf”);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">pdfViewer.Load(loadedDocument);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//将所有页面导出为大小为(150,225)的缩略图。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">BitmapSource []图片= pdfViewer.ExportAsImage(0,loadedDocument.Pages.Count – 1,新的SizeF(150,225),false);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//设置输出路径。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">字符串输出= @“ ..  ..  Output  Image”;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">如果(图片!= null)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">{</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        对于(int i = 0; i <image.Length; i ++)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //初始化新的Jpeg位图编码器。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                BitmapEncoder编码器=新的JpegBitmapEncoder();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //使用位图源创建位图框架,并将其添加到编码器中。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                encoder.Frames.Add(BitmapFrame.Create(image [i]));</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //以所需的图像格式为输出创建文件流。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                FileStream流=新的FileStream(输出+ i.ToString()+“ .Jpeg”,FileMode.Create);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                //保存流,以便在输出位置生成图像。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                encoder.Save(stream);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">        }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">}</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">//处理文档。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">loadedDocument.Dispose();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">loadingDocument = null;</font></font><font></font>

您可以从此GitHub位置找到示例项目,解释导出图像的功能。在此示例中,您将发现PDF文件(“ Barcode.pdf”)中的页面被导出为具有默认尺寸的图像和具有较小尺寸的缩略图。执行此示例应用程序会将普通和缩略图尺寸的图像导出到应用程序目录中的Output文件夹。

结论

希望您对如何将PDF文档的页面导出为图像有一个清晰的了解。通过将页面转换为JPG格式来提供所有示例。您也可以将它们导出为其他格式,例如PNG,BMP和TIFF。自己尝试一下,并在下面的评论部分中分享您的反馈。

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月18日
下一篇 2021年4月18日

相关推荐

发表回复

登录后才能评论