Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--PDF预览器框选
项目地址:
Pdfium.Net:https://github.com/1000374/Pdfium.Net
PdfiumViewer:https://github.com/1000374/PdfiumViewer
框选PDF坐标及区域内文字:
关键代码:
//选中区域的坐标转成相对于pdf的坐标
var point1 = this.PointToPdf(new Point(_currRect.X, _currRect.Y));
var point2 = this.PointToPdf(e.Location);
int x = (int)point1.Location.X;
int y = (int)point2.Location.Y;
int x1 = (int)point2.Location.X;
int y1 = (int)point1.Location.Y;
var txt = this.Document.Pages[Page].GetBoundedText(x, y, x1, y1);
_currRect = Rectangle.Empty;
if (Math.Abs(x1 - x) * Math.Abs(y1 - y) == 0)//相当与未框选有效区域
return;
BoundedTextHandler?.Invoke(Page, x, y, x1, y1, txt, true);

截取pdf指定区域的图片:
关键代码:
//选中区域的坐标转成相对于pdf的坐标
var point1 = this.PointToPdf(new Point(_currRect.X, _currRect.Y));
var point2 = this.PointToPdf(e.Location); var bound = Document.Pages[Page].PageSize;
var rect = new Rectangle();
var x = (int)point1.Location.X;
var y = (int)Math.Abs(bound.Height - point1.Location.Y);
var x1 = (int)point2.Location.X;
var y1 = (int)Math.Abs(bound.Height - point2.Location.Y); rect.X = Math.Min(x, x1);
rect.Y = Math.Min(y, y1);
rect.Width = Math.Abs(x1 - x);
rect.Height = Math.Abs(y1 - y);
_currRect = Rectangle.Empty;
if (Math.Abs(x1 - x) * Math.Abs(y1 - y) == 0)//相当与未框选有效区域
return; var image = Document.Render(
Page,
(int)Document.Pages[Page].Width,
(int)Document.Pages[Page].Height,
rect.X, // x of the top/left of clipping rectangle
rect.Y, // y of the top/left point of clipping rectangle
rect.Width, // width of clipping reactangle
rect.Height, // height of clipping reactangle
_cutDpiX,
_cutDpiY,
FpdfRotation.Rotate0, // no rotation
RenderFlags.None // no render flags
);
BoundedCutHandler?.Invoke(Page, rect, image);

转换出来的效果:

Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--PDF预览器框选的更多相关文章
- dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.
http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术 ...
- DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.
DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库. 它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制. 试试看! 将文件拖至此处或点击上传.(这仅仅是 dropzo ...
- 【官方免费】Apple Silicon M1 + Parallels 16技术预览版 + Win 10 arm64
期待了好久,终于能用pd运行win10了,其实也就想写个c++,mac上配置个c++编译器太麻烦了.. 步骤: 打开 https://my.parallels.com/desktop/beta,这里下 ...
- 手把手教你用 Spring Boot搭建一个在线文件预览系统!支持ppt、doc等多种类型文件预览
昨晚搭建环境都花了好一会时间,主要在浪费在了安装 openoffice 这个依赖环境上(Mac 需要手动安装). 然后,又一步一步功能演示,记录,调试项目,并且简单研究了一下核心代码之后才把这篇文章写 ...
- 一个免费的、跨平台的、开源音频编辑器Audacity
Audacity 是一个免费的开源程序,用于编辑音频录制.它可在多个平台(windows/linux)上运行.Audacity 基于 GUI,是一个具有多种选项的强大程序.它支持您录制各种类型的声音. ...
- Caf.CMS是一个免费的、 开源,功能齐全的CMS
Caf.CMS(疯狂蚂蚁CMS) 是一个免费的. 开源,功能全面的CMS(内容管理系统).定位CMS也有点狭义呢,因为Caf.CMS是基于国外SmartStore.NET 开源商城源码的基础上改造而成 ...
- 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
喜欢写Blog的人,会经历三个阶段. 第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写. 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客. 第三阶段,觉得独立博客的管 ...
- 分享一个免费SSL证书申请网站,给网站开启https协议 | 张戈博客
这些天,由于公司的业务需求,接触到了ssl证书和https协议.博客前几篇文章也分享了在WEB服务器上安装SSL证书,为网站开启https协议的教程,感兴趣的童鞋可以前往查看相关文章: <Lin ...
- 一个免费的自动化跨平台测试JavaScript的工具——BrowserSwarm
BrowserSwarm是一个免费工具,能够自动化跨平台测试JavaScript.
- IETester是一个免费的Web浏览器调试工具
功能简介 IETester是一个免费的Web浏览器调试工具,可以模拟出不同的js引擎来帮助程序员设计效果统一的代码.IETester可以在独立的标签页中开启IE5.5.IE6.IE7以及最I新的IE8 ...
随机推荐
- Linux 下运行.NET 6 7 8 程序遇到的两个问题
一. /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的解决办法 1. 下载 libstdc++.so.6.0.21 文件 注意区分 ...
- linux服务器之间免密登录
目标 192.168.0.10 免密登录 192.168.0.11.192.168.0.12两台服务器 1.登录192.168.0.10 生成ssh密钥 ssh-keygen -t r ...
- 3 Englishi 词根
1 -able 能..的:具有...性质的 useable moveable adaptable 2 -al 具有...性质的; 属于...的 personal natural regional - ...
- sublime_text4 2023最新版 激活教程
官网 Sublime HQ - Remarkable Software 东西在教学的时候还是挺好用的,就是要付费购买,穷,没钱 买不起,自己动手丰衣足食. 下载安装包 我现在最新版是4.4152 下面 ...
- 调整PR界面字体大小
1.问题 界面字体太大或者太小,看得不舒服 2.解决问题 按住ctrl+F12,调出如下工作台 选择Debug Datatbase View 其中找到AdobeCleanFontSize,并修改 重启 ...
- 单例bean与原型bean的区别
在使用Spring开发时,Spring提供了五种scope,分别为singleton,prototype,request,session,global session. 上图为各个scope描述的官方 ...
- 如何让你的.NET WebAPI程序支持HTTP3?
下面我将总结构建Http3的经验,以Token Gateway的项目为例,请注意使用Http3之前你需要知道它的限制, Windows Windows 11 版本 22000 或更高版本/Window ...
- [转帖]可直接拿来用的kafka+prometheus+grafana监控告警配置
kafka配置jmx_exporter 点击:https://github.com/prometheus/jmx_exporter,选择下面的jar包下载: 将下载好的这个agent jar包上传到k ...
- [转帖]Prometheus监控系统存储容量优化攻略,让你的数据安心保存!
云原生监控领域不可撼动,Prometheus 是不是就没缺点?显然不是. 一个软件如果什么问题都想解决,就会导致什么问题都解决不好.所以Prometheus 也存在不足,广受诟病的问题就是 单机存储不 ...
- [转帖]信创从芯开始,CPU实现国产有多难?
https://www.eet-china.com/mp/a213516.html 数字底座的"底座"--CPU,决定信创底层逻辑的关键.CPU 是信息产业中最基础的核心部件,指令 ...