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

C#测试调用Ghostscript.NET浏览PDF文件

  Ghostscript.NET是针对Ghostscript的C#封装库,支持解析PostScript语言、操作PDF文件等。使用Ghostscript.NET的GhostscriptViewer 模块可以以图片形式查看PDF文档。本文学习并测试调用Ghostscript.NET模块打开及浏览PDF文件的基本用法。
  Ghostscript.NET目前主要支持.net framework,使用VS2022创建基于.net framework 4.8的Winform项目,在Nuget包管理器中搜索并安装Ghostscript.NET包。同时还需在参考文献4中下载相应32位或者64位的依赖包,否则程序运行过程中会报下面截图错误,提示需下载依赖安装包。
在这里插入图片描述

在这里插入图片描述
  Ghostscript.NET的GitHub官网中提供了GhostscriptViewer的使用案例(参考文献3),主要是配合PictureBox控件使用,调用GhostscriptViewer的Open函数打开PDF文件,然后处理GhostscriptViewer的DisplayPag、DisplaySize、DisplayUpdate事件,更新PictureBox控件的显示图片。同时,调用GhostscriptViewer的ShowFirstPage、ShowLastPage、ShowPreviousPage、ShowNextPage函数切换当前显示图片。
  主要代码包括(从参考文献3的示例中简化而来):

private GhostscriptViewer _viewer;public Form1()
{......_viewer = new GhostscriptViewer();_viewer.DisplaySize += new GhostscriptViewerViewEventHandler(_viewer_DisplaySize);_viewer.DisplayUpdate += new GhostscriptViewerViewEventHandler(_viewer_DisplayUpdate);_viewer.DisplayPage += new GhostscriptViewerViewEventHandler(_viewer_DisplayPage);
}void _viewer_DisplaySize(object sender, GhostscriptViewerViewEventArgs e){pbPage.Image = e.Image;}void _viewer_DisplayUpdate(object sender, GhostscriptViewerViewEventArgs e){pbPage.Invalidate();pbPage.Update();}void _viewer_DisplayPage(object sender, GhostscriptViewerViewEventArgs e){pbPage.Invalidate();pbPage.Update();}
private void btnFirst_Click(object sender, EventArgs e)
{_viewer.ShowFirstPage();
}private void btnLast_Click(object sender, EventArgs e)
{_viewer.ShowLastPage();
}private void btnPre_Click(object sender, EventArgs e)
{_viewer.ShowPreviousPage();
}private void btnNext_Click(object sender, EventArgs e)
{_viewer.ShowNextPage();
}

  下图为程序运行效果。Ghostscript.NET与PdfiumViewer相比,两者的Nuget包安装及依赖包安装类似,但后者提供有简单的浏览控件,且支持.net core。因此两者相比,PdfiumViewer使用相对更方便。
在这里插入图片描述

参考文献:
[1]https://github.com/ArtifexSoftware/Ghostscript.NET
[2]https://blog.csdn.net/gitblog_00044/article/details/138558845
[3]https://github.com/ArtifexSoftware/Ghostscript.NET/blob/master/Ghostscript.NET.Viewer/FMain.cs
[4]https://ghostscript.com/releases/gsdnld.html

相关文章:

  • 用户体验测试——什么是用户体验?
  • Axure9破解
  • iOS实现解压文件
  • 【C++篇】启航——初识C++(下篇)
  • 如何从huggingface下载
  • .NetCore 8 SwaggerGen 显示接口注析
  • SqlSugar使用
  • [大语言模型-论文精读] 大语言模型是单样本URL分类器和解释器
  • 828华为云征文|针对Flexus X实例云服务器的CPU和内存性能测评
  • PE节表中是否存在misc.VirtualSize 比SizeofRawData还要大的情况
  • 河南移动:核心营业系统稳定运行超300天,数据库分布式升级实践|OceanBase案例
  • 等保测评:如何应对网络攻击
  • webpack使用
  • 如何使用ssm实现基于在线开放课程的Web前端设计与实现+vue
  • 【Linux探索学习】第二弹——Linux的基础指令(中)——夯实基础第二篇
  • 【剑指offer】让抽象问题具体化
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • go语言学习初探(一)
  • Java多线程(4):使用线程池执行定时任务
  • js ES6 求数组的交集,并集,还有差集
  • Puppeteer:浏览器控制器
  • Redash本地开发环境搭建
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何选择开源的机器学习框架?
  • 一文看透浏览器架构
  • 源码安装memcached和php memcache扩展
  • ​你们这样子,耽误我的工作进度怎么办?
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #### golang中【堆】的使用及底层 ####
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (9)目标检测_SSD的原理
  • (done) 两个矩阵 “相似” 是什么意思?
  • (poj1.2.1)1970(筛选法模拟)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (蓝桥杯每日一题)love
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (转)C#调用WebService 基础
  • (转)visual stdio 书签功能介绍
  • (转)用.Net的File控件上传文件的解决方案
  • .NET Core跨平台微服务学习资源
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET 回调、接口回调、 委托
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .net中调用windows performance记录性能信息
  • [14]内置对象
  • [3]Opengl ES着色器
  • [AI Embedchain] 开始使用 - 全栈
  • [APIO2015]巴厘岛的雕塑
  • [BSGS算法]纯水斐波那契数列
  • [BUAA软工]第一次博客作业---阅读《构建之法》