当前位置: 首页 > article >正文

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

  开发上位机过程中遇到软件要内嵌说明书的需求,需要用按钮调出带有文字和图片的操作手册。思虑再三后觉得用一个窗口显示操作手册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.kler.cn/a/452513.html

相关文章:

  • 【唐叔学算法】第19天:交换排序-冒泡排序与快速排序的深度解析及Java实现
  • Kubernetes 常用的网络插件
  • 【C语言】深入探讨 C 语言 `int` 类型大小及其跨平台影响
  • (echarts)数据地图散点类型根据条件设置不同的标记图片
  • Linux之ARM(MX6U)裸机篇----2.汇编LED驱动实验
  • Mybatis 小结
  • EMS(energy managment system)从0到1
  • 软考架构师笔记-计算机系统组成-1
  • 10. zynq应用开发--camke编译
  • 【每日学点鸿蒙知识】Charles抓包、lock文件处理、WebView组件、NFC相关、CallMethod失败等
  • Spring源码_05_IOC容器启动细节
  • Oracle 备份与恢复 (Docker部署版)
  • 单机服务和微服务
  • 模型的量化(Quantization)
  • 一篇梳理清楚JavaScript ES6中的Promise
  • [WASAPI]音频API:从Qt MultipleMedia走到WASAPI,相似与不同
  • 钢材缺陷识别分割数据集labelme格式693张4类别
  • leetcode hot100 将有序数组转化为二叉搜索树
  • 微服务: 06-rabbitmq设置延时队列,场景与使用(springboot)
  • 图神经网络_图嵌入_SDNE
  • 【Rust自学】6.4. 简单的控制流-if let
  • 【每日学点鸿蒙知识】指纹识别隐藏背面、数组内部值变化刷新UI、键盘输入类型、跨组件路由、C++20特性支持
  • 智谱BigModel研习社|搭建 AI 搜索引擎 - 使用免费的Web-Search-Pro+脑图Agent智能体
  • Gmsh有限元网格剖分(Python)---点、直线、平面的移动
  • STL 六大组件
  • 私域电商逆袭密码:AI 智能名片小程序与商城系统如何梦幻联动