欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#使用開源免費庫 PdfiumViewer 實現PDF打印與查看

admin
2024年7月1日 16:14 本文熱度 2054

前言

PDF是一種常用的文件格式,實現其打印、查看操作是較為常見的需求。例如打印PDF格式的快遞面單、發票等。如何通過編寫C#代碼實現打印、查看需求,可以使用一些三方C#組件庫。如Spire.PDF for .NET、PdfiumViewer等,本文介紹使用PdfiumViewer實現方式。

PdfiumViewer

PdfiumViewer 是基于 Pdfium 庫的.NET PDF查看器組件。可以使我們輕松地在應用程序中嵌入PDF文檔,對文檔的查看與打印。(或其他基于 Pdfium 庫.NET庫).NET Framework》PdfiumViewer;.NET 6》PdfiumViewer.Core

1、使用和附錄

github地址:
https://github.com/pvginkel/PdfiumViewer
https://github.com/TimChen44/PdfiumViewer.Core
通過包管理器安裝下面幾個包:
PdfiumViewer
PdfiumViewer.Native.x86_64.v8-xfa:64位的Pdfium。
PdfiumViewer.Native.x86.v8-xfa:32位的Pdfium。

2、使用的類或控件

類名描述
PdfDocument用于呈現 PDF 文檔的類。
PdfRenderer用于呈現 PdfDocument 的控件類。
PdfViewer托管 PdfRenderer 的控件。

示例代碼

1、打印示例

/// <summary>/// 靜默打印 /// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void buttonPrint_Click(object sender, EventArgs e){    try    {        string printerName = "Microsoft Print to PDF";        string documentName = Guid.NewGuid().ToString("N");        short printCopies = 1;        //         string fileName = string.Format(@"D:\Temp\{0}""20240512193805.pdf");        // 判斷文件是否存在        if (!File.Exists(fileName))        {            MessageBox.Show(string.Format("【{0}】文件不存在!",fileName));            return;        }        // 讀取文件內容        byte[] fileBuffer = File.ReadAllBytes(fileName);        // 將字節內容轉為流        MemoryStream memoryStream = new MemoryStream(fileBuffer);        //         fileBuffer = null;        // 開始組件裝載文件        using (PdfiumViewer.PdfDocument pdfDocument = PdfiumViewer.PdfDocument.Load(memoryStream))        {            // 創建文檔輸出發送到打印機對像            PrintDocument printDocument = pdfDocument.CreatePrintDocument();            // 將文檔打印到打印機            printDocument.PrintController = new StandardPrintController();            if (!string.IsNullOrEmpty(printerName))            {                // 輸出的目標打印機                printDocument.PrinterSettings.PrinterName = printerName;            }            // 打印文檔名稱            printDocument.DocumentName = documentName;            // 打印份數            printDocument.PrinterSettings.Copies = printCopies;            // 開始發送打印            printDocument.Print();        }    }    catch(Exception exception)    {        MessageBox.Show(exception.Message);    }}

2、查看示例

/// <summary>/// 打開閱讀/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){    try    {        // PDF 文件        string fileName = string.Format(@"D:\Temp\{0}""20240512193805.pdf");        // 判斷文件是否存在        if (!File.Exists(fileName))        {            MessageBox.Show(string.Format("【{0}】文件不存在!", fileName));            return;        }        // 開始組件裝載文件        PdfiumViewer.PdfDocument pdfDocument = PdfiumViewer.PdfDocument.Load(fileName);         this.pdfViewer.Document = pdfDocument;        this.pdfViewer.Show();    }    catch (Exception exception)    {        MessageBox.Show(exception.Message);    }}

3、其它示例

/// <summary>/// 其它/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void buttonOther_Click(object sender, EventArgs e){    try    {        // PDF文件        string fileName = string.Format(@"D:\Temp\{0}""20240512193805.pdf");        // 判斷文件是否存在        if (!File.Exists(fileName))        {            MessageBox.Show(string.Format("【{0}】文件不存在!", fileName));            return;        }        // 開始組件裝載文件        using (PdfiumViewer.PdfDocument pdfDocument = PdfiumViewer.PdfDocument.Load(fileName))        {            // 獲取文檔總頁數            int pageCount = pdfDocument.PageCount;            // 獲取文件信息            PdfInformation pdfInformation = pdfDocument.GetInformation();            // 在文件中搜索指定內容            var finder = pdfDocument.Search("文本",false,false);        }    }    catch (Exception exception)    {        MessageBox.Show(exception.Message);    }}

小結

以上是PdfiumViewer組件簡單介紹,通過實現打印與查看示例了解其使用方式。對.NET 6及以上版本使用PdfiumViewer.Core,有興趣的可以試試。


該文章在 2024/7/2 8:35:40 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved