公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#使用開源免費庫 PdfiumViewer 實現(xiàn)PDF打印與查看

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

前言

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

PdfiumViewer

PdfiumViewer 是基于 Pdfium 庫的.NET PDF查看器組件。可以使我們輕松地在應(yīng)用程序中嵌入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用于呈現(xiàn) PDF 文檔的類。
PdfRenderer用于呈現(xiàn) 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;        }        // 讀取文件內(nèi)容        byte[] fileBuffer = File.ReadAllBytes(fileName);        // 將字節(jié)內(nèi)容轉(zhuǎn)為流        MemoryStream memoryStream = new MemoryStream(fileBuffer);        //         fileBuffer = null;        // 開始組件裝載文件        using (PdfiumViewer.PdfDocument pdfDocument = PdfiumViewer.PdfDocument.Load(memoryStream))        {            // 創(chuàng)建文檔輸出發(fā)送到打印機對像            PrintDocument printDocument = pdfDocument.CreatePrintDocument();            // 將文檔打印到打印機            printDocument.PrintController = new StandardPrintController();            if (!string.IsNullOrEmpty(printerName))            {                // 輸出的目標打印機                printDocument.PrinterSettings.PrinterName = printerName;            }            // 打印文檔名稱            printDocument.DocumentName = documentName;            // 打印份數(shù)            printDocument.PrinterSettings.Copies = printCopies;            // 開始發(fā)送打印            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))        {            // 獲取文檔總頁數(shù)            int pageCount = pdfDocument.PageCount;            // 獲取文件信息            PdfInformation pdfInformation = pdfDocument.GetInformation();            // 在文件中搜索指定內(nèi)容            var finder = pdfDocument.Search("文本",false,false);        }    }    catch (Exception exception)    {        MessageBox.Show(exception.Message);    }}

小結(jié)

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


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

主站蜘蛛池模板: 国产高清乱码又大又圆 | 国产精品看高国产精品不卡 | 69久久91麻豆一区二区三区 | 国产91艳遇在线观看 | 白浆喷潮在线不卡 | 国产精品偷伦视频观看免费 | 91久久婷婷国产麻豆精品电影 | 国产成人一区二区三区电影 | 国产成人欧美一区二区三区 | 91蜜桃国产成人精 | 国产在线高清精品1314 | a级毛片在线高清观看 | 国产综合变态自虐 | 国产午夜精品福利久久 | 国产一区二区电影在线观看 | 国产成人手机在线播放 | 丰满多毛少妇做爰视频 | 国产麻豆精品久久一二三 | 国产精品一区二区国产在线观看 | 国产水蜜桃视频在线 | 国产精品一区在线看 | 精品无码国产一区二区三区51 | 国产精品一卡二卡三卡 | 国产精品福利在线观看入口 | 国产av一区二区三区日韩 | 国产一区亚洲一区 | 国产欧美日韩灭亚洲精品 | 2025年b站大全入口地址 | 国产麻豆 | 成人色网站欧美大片在线观看 | 成人精品一区二区三区电影 | av一区二区三区蜜桃 | 国产自产一区二区三区视频在线 | 国产一级内射高清视频在线观看 | 精品视频久久久久 | a级片免费在线播放 | 国产精品欧美久久久久天天影视 | 国产成人av无码永久免费 | 国产成人无码情景av | 国产午夜免费啪视频观看视频 | av无码精品久久 |