首页 > 其他分享 >Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--PDF预览器框选

Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--PDF预览器框选

时间:2024-01-25 18:48:48浏览次数:23  
标签:rect int Pdfium Free y1 Location var PDF Math

项目地址:

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);

  

 转换出来的效果:

 

标签:rect,int,Pdfium,Free,y1,Location,var,PDF,Math
From: https://www.cnblogs.com/xiaohemiao/p/17987167

相关文章

  • Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--打开大文件处理
    项目地址:Pdfium.Net:https://github.com/1000374/Pdfium.NetPdfiumViewer:https://github.com/1000374/PdfiumViewerPDFium支持打开文件支持传入文件流加载PDF到内存流(此种方式不占用文件):varstream=newMemoryStream(File.ReadAllBytes(fileName));vardoc=PdfDocumentGdi.......
  • Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--快速入门
    Pdfium.Net.Free支持.NETFramework4.0.NETFramework4.5.NETStandard2.0可以和PdfiumViewer.Free共同使用预览pdf,也可以直接引用Pdfium.Net.Free操作pdf,解决部分.NetCore调用的问题,Pdfium.Net.Free封装了现有Pdfium的函数,实现了部分操作pdf的功能,部分功能等待后......
  • 基于Apache PDFBox的PDF数字签名
    在Java语言环境中完成数字签名主要基于itext-pdf、PDFBox两种工具,itext-pdf受商业限制,应用于商业服务中需要购买授权。PDFBox是apache基金会开源项目,基于apache2.0开源协议,不受商业限制,开发者可放心使用。以下是基于PDFBox的数字签名源码,使用该源码可使用PDFBox对PDF格式的文件进行......
  • 基于Apache PDFBox的PDF数字签名
    在Java语言环境中完成数字签名主要基于itext-pdf、PDFBox两种工具,itext-pdf受商业限制,应用于商业服务中需要购买授权。PDFBox是apache基金会开源项目,基于apache2.0开源协议,不受商业限制,开发者可放心使用。以下是基于PDFBox的数字签名源码,使用该源码可使用PDFBox对PDF格式的文件进......
  • 再获认可|原点安全入选 FreeBuf《CCSIP 2023中国网络安全行业全景册》
    1月24日,FreeBuf咨询正式发布《CCSIP(China Cyber Security Industry Panorama)2023中国网络安全行业全景册(第六版)》(下称“全景册”)。全景册旨在为企业提供更好的网络安全产品选型参考,帮助企业了解中国网络安全技术与市场的发展趋势,受到行业的广泛关注与一致认可。原点安全凭借领......
  • 数据结构与算法 pdf下载
    《数据结构与算法》涉及计算机中数据的组织、重组、移动、使用和提取等操作方法,及相关的数学分析。《数据结构与算法》所选的主题基于以下几个朴素的原则。第一,本书只讲解实用的技术,而忽略一些理论上非常虽然出色、但不太实用的算法。第二,本书既包含经典的方法,也包括最近发现的......
  • 除了Adobe之外,还有什么方法可以将Excel转为PDF?
    前言Java是一种广泛使用的编程语言,它在企业级应用开发中发挥着重要作用。而在实际的开发过程中,我们常常需要处理各种数据格式转换的需求。今天小编为大家介绍下如何使用葡萄城公司的的JavaAPI组件GrapeCityDocumentsforExcel(以下简称为GcExcel)将ExcelXLSX文件转换为PDF。......
  • 【专题】2023年中国工业机器人行业研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34144原文出处:拓端数据部落公众号仿生机器人作为一类结合了仿生学原理的机器人,具备自主决策和规划行动的能力,正逐渐进入大众视野。它们的核心技术要素包括感知与认知技术、运动与控制技术、人机交互技术和自主决策技术。阅读原文,获取专题报告合集......
  • 《设计模式:可复用面向对象软件的基础》PDF
    内容简介本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中*有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。本书适合大学计算机专业的学生、研究生及相关人......
  • 《设计模式之美》PDF
    内容简介本书结合真实项目案例,从面向对象编程范式、设计原则、代码规范、重构技巧和设计模式5个方面详细介绍如何编写高质量代码。第1章为概述,简单介绍了本书涉及的各个模块,以及各个模块之间的联系;第2章介绍面向对象编程范式;第3章介绍设计原则;第4章介绍代码规范;第5章介绍重构技巧;......