C# Winform打开和预览PDF,方法一:调用CefSharp包,内嵌浏览器

devtools/2024/12/27 3:22:18/

  开发上位机过程中遇到软件要内嵌说明书的需求,需要用按钮调出带有文字和图片的操作手册。思虑再三后觉得用一个窗口显示操作手册pdf文件的方式,于是找到了一个CefSharp的nuget包能够用来显示pdf

一、预览效果

二、实现步骤

1、右击需要加pdf预览功能的项目,安装CefSharp.WinForms

2、在需要显示pdf的窗口增加一个放置pdf的panel

 3、通过代码调用pdf文件显示到页面控件中

代码如下:

//获取文件路径,这里可以改成指定文件的默认路径
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "(*.PDF)|*.PDF";
if (dlg.ShowDialog() == DialogResult.OK)
{//清理放置pdf的panel控件panel_pdf.Controls.Clear();//根据pdf文件路径创建一个ChromiumWebBrowser实例,用于显示PDF文件ChromiumWebBrowser browser = new ChromiumWebBrowser(dlg.FileName);// 设置浏览器控件的停靠方式为填充其父容器(即panel_pdf)browser.Dock = DockStyle.Fill;// 将浏览器控件添加到panel_pdf控件中panel_pdf.Controls.Add(browser);
}

三、方法优缺点

1、优点

  • 操作简单,下载个包,几行代码就能实现pdf阅读
  • 自带多浏览器对pdf的操作、目录预览、缩放等功能

2、缺点

  • 相当于是内嵌了个浏览器,占用控件比较大,大小为200多MB

http://www.ppmy.cn/devtools/145698.html

相关文章

判断实例化或推断的时机

判断实例化或推断的时机 赛灵思建议用户使用 RTL 来描述设计,然后用综合工具把代码映射到 FPGA 器件中的可用资源上。推断得到的逻辑不 仅能够增强代码的可移植性,还便于综合工具查看,以完成各项功能优化。优化内容包括逻辑复制、结构重组…

芯科科技蓝牙、Wi-Fi、Wi-SUN产品广获业界认可,技术创新引领行业潮流

物联网领军企业领跑未来无线开发平台发展 2024年,Silicon Labs(亦称“芯科科技“,NASDAQ:SLAB)在物联网(IoT)领域持续深耕,凭借创新的企业发展理念与实践、行业领先的技术与产品&am…

使用Python实现量子电路模拟:走进量子计算的世界

量子计算作为一项前沿科技,因其能够解决经典计算无法应对的复杂问题而备受关注。通过量子电路模拟,我们可以在经典计算机上模拟量子计算过程,从而进行量子算法的研究和验证。Python作为一种强大且易用的编程语言,为量子电路模拟提…

计算机视觉目标检测-1

文章目录 摘要Abstract1.目标检测任务描述1.1 目标检测分类算法1.2 目标定位的简单实现思路1.2.1 回归位置 2.R-CNN2.1 目标检测-Overfeat模型2.1.1 滑动窗口 2.2 目标检测-RCNN模型2.2.1 非极大抑制(NMS) 2.3 目标检测评价指标 3.SPPNet3.1 spatial pyr…

python爬取网站

这个示例将抓取一个假设的商品列表网站,提取商品名称和价格,并将数据保存到CSV文件中。 pip install requests beautifulsoup4 pandas然后,使用以下代码: import requests from bs4 import BeautifulSoup import pandas as pd i…

【提取学习通作业考试题目答案下载到本地或者POST数据库】

这段油猴(Tampermonkey)脚本是用来提取学习通(Chaoxing)平台上作业和考试题目的个人答案,并将其转换成Excel格式的题库,方便浏览或分享给他人。让我们逐步分析脚本的功能和结构: 脚本功能概述 …

WEB安全漏洞之路径遍历、跳转等漏洞解析

1. 路径遍历漏洞(Path Traversal Vulnerability) 路径遍历漏洞(又叫目录遍历漏洞)是指攻击者通过操控文件路径,使得应用访问服务器上未授权的文件或目录。攻击者通常通过操控文件路径中的 ../ (路径上移符…

WPF制作图片闪烁的自定义控件

1.定义自定义控件 BlinkingImage.cs: using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Animation; using System.Windows.Media.Imaging;namespace YourNamespace {public class BlinkingImage : Control{public static rea…