轉帖|使用教程|編輯:鮑佳佳|2021-05-21 10:07:17.997|閱讀 133 次
概述:我們都覺得很難將PDF文檔頁面導出為各種用例的圖像。這就是為什么我們決定在WPF PDF Viewer中它。在此博客中,我們將引導您完成使用此WPF PDF Viewer將PDF頁面導出為高質量圖像的步驟。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Essential Studio for WPF界面控件包含了利于分析且高性能的Windows應用程序開發中所需的所有控件,如 WPF PDF Viewer、grids、charts、gauges、menus、calendars、editors等等。同時,我們的文件格式庫還允許您導出資料到Excel、World和PDF文件中,以及對這些格式的文件進行處理。
我們都覺得很難將PDF文檔頁面導出為各種用例的圖像。這就是為什么我們決定在WPF PDF Viewer中它。在此博客中,我們將引導您完成使用此組件將PDF頁面導出為高質量圖像的步驟。
PDF Viewer允許您導出為以下格式:
如何將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。自己嘗試一下,并在下面的評論部分中分享您的反饋。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: