首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用C# iTextSharp检测PDF中的矩形和方框

C# iTextSharp是一个用于处理PDF文件的开源库,可以通过它来检测PDF中的矩形和方框。下面是使用C# iTextSharp检测PDF中的矩形和方框的步骤:

  1. 首先,确保你已经安装了iTextSharp库。你可以通过NuGet包管理器来安装iTextSharp。
  2. 导入iTextSharp库的命名空间:
代码语言:txt
复制
using iTextSharp.text;
using iTextSharp.text.pdf;
  1. 加载PDF文件:
代码语言:txt
复制
PdfReader reader = new PdfReader("path/to/pdf/file.pdf");
  1. 获取PDF文件的页数:
代码语言:txt
复制
int pageCount = reader.NumberOfPages;
  1. 遍历每一页,检测矩形和方框:
代码语言:txt
复制
for (int i = 1; i <= pageCount; i++)
{
    // 获取当前页的内容
    PdfDictionary page = reader.GetPageN(i);
    PdfArray annots = page.GetAsArray(PdfName.ANNOTS);

    // 检测矩形和方框
    if (annots != null)
    {
        foreach (PdfObject annot in annots.ArrayList)
        {
            PdfDictionary annotation = (PdfDictionary)PdfReader.GetPdfObject(annot);
            PdfName subType = (PdfName)PdfReader.GetPdfObject(annotation.Get(PdfName.SUBTYPE));

            // 判断是否为矩形或方框注释
            if (subType.Equals(PdfName.RECT) || subType.Equals(PdfName.SQUARE))
            {
                // 获取矩形或方框的坐标信息
                PdfArray rect = annotation.GetAsArray(PdfName.RECT);
                float x = rect.GetAsNumber(0).FloatValue;
                float y = rect.GetAsNumber(1).FloatValue;
                float width = rect.GetAsNumber(2).FloatValue - x;
                float height = rect.GetAsNumber(3).FloatValue - y;

                // 在控制台输出矩形或方框的坐标信息
                Console.WriteLine("矩形或方框坐标:x={0}, y={1}, width={2}, height={3}", x, y, width, height);
            }
        }
    }
}

以上代码会遍历PDF文件的每一页,检测并输出矩形和方框的坐标信息。

关于iTextSharp的更多详细信息和用法,你可以参考腾讯云的iTextSharp产品介绍链接:iTextSharp产品介绍

注意:以上答案仅供参考,具体实现方式可能会因实际情况而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 iTextSharp VS ComPDFKit 在 C# PDF 中提取文本

对于开发人员来说,从 PDF 中提取文本是有效数据提取第一步。你们一些人可能会担心如何使用 C#PDF 中提取文本。iTextSharp 一直是 PDF 文本提取有效解决方案。...在本指南中,我们将深入研究如何使用 iTextSharpC# 中进行 PDF 文本提取,涵盖从安装项目设置到提供代码示例所有内容。...此外,我们将介绍并将其与另一个强大 C# 库 ComPDFKit 进行比较,以帮助您做出明智决策。1. 如何使用 ComPDFKit 在 C# PDF 中提取文本?...当未启用 OCR 时, CPDFConverterJsonText 类将返回 与 PDF 页面内容流定义完全相同文本对象。2. 如何使用 iTextSharpPDF 中提取文本?...使用 iTextSharp,开发人员需要编写自定义代码或逻辑来实现所需功能,这需要对库 C# 有深入了解。

11710
  • LIMS系统仪器数据采集-使用xpdf解析pdf内容

    不同语言解析PDF内容都有各自库,比如Javapdfbox,.netitextsharp。...c#解析PDF文本,关键代码可参考: http://www.cnblogs.com/mahongbiao/p/7652788.html 此外也可使用OCR,关键代码可参考: http://www.cnblogs.com...itextsharp或者pdfbox解析某PDF文件时,文本内容以竖排形式输出,不易解析信息。...而使用xpdf,则可以指定-layout参数,将其按照页面显示布局方式输出。 下图为PDF样式: ? 下图为pdfBox、itextsharp解析出内容样式: ?...例子中文没有解析出来,可通过配置PDF中文字体解决,xpdf另一个强项功能,就是它支持配置pdf字体,有些PDF内容通过itextsharp解析不出来情况下,使用xpdf在配置了正确字体后可以解析出内容

    1.8K40

    CSharp每日代码示例:使用iTextSharp创建PDF文件

    本文演示如何使用iTextSharp PDF库将文本文件转换为PDF文件。 iTextSharp是一个从JAVA项目iText衍生.Net版本开源项目,采用GPL许可证发布。...,你可能希望知道该用什么度量单位:厘米、英寸或象素,事实上,默认度量系统以排版单位磅为基础得出其他单位近似值,如1英寸=72磅,如果你想在A4页面的PDF创建一个矩形,你需要计算以下数据: 21...文件链接注释: 你需要指定一个可点击矩形一个字符串(文件名称)目的文件或页码。...所有其他注释需要指定想匹配矩形区域,在示例代码0304,我们画了一些正方形(使用函数将在第十章中介绍),为每个正方形添加了一些链接注释。...使用iTextSharp工具转换为单个PDF代码 The Code 1.

    3K10

    基于iTextSharpPDF文档操作

    最近在DHL物流公司(应该是个大公司)对接,取运单号方式是调用对方提供API,简单说,就是我们传一些发货地址客户信息,要发货物等,对方返回一个运单号物流面单(就是我们淘宝快递上面单)。...,DHL公司将物流面单以pdf文件流形式返回,就是我们可以保存成Pdf文件,这样就容易处理多,我们自己拣货面单,如果也可以保存至Pdf文件,这样就可以将这2个Pdf文件一块打印出来,这算是一个折中解决方案...技术点如下     1, 将DataTable导出至Pdf     2, DataTable包含图片,也要能导出     3, Pdf类库,字体引入(居然需要引用字体绝对路径,想不通)   下面分别讲解...    1, 这点就是直接创建iTextSharpPdfDataTable对象,直接映射即可。...前2联是DHL返回Pdf文件,第3联是我本地生成Pdf文件,合并成一个完整发货面单 ?

    1.8K100

    iText 制作PDF

    前言 由于在MVC项目中需要使用PDF,所以自己抽空也来看看itext,以便于丰富自己知识吧。在此也简单记录一下,说不定以后可能还用到。...在此您可以下载你想使用版本http://sourceforge.net/projects/itextsharp/files/itextsharp/。于是我就下载了现在最新版本5.4.0。   ?...,你可能希望知道该用什么度量单位:厘米、英寸或象素,事实上,默认度量系统以排版单位磅为基础得出其他单位近似值,如1英寸=72磅,如果你想在A4页面的PDF创建一个矩形,你需要计算以下数据:   21...、主题、关键字、作者、创建程序,但以下产品信息将始终被添加:   iTextSharp (或者iTextSharp引用)创建时间(实际上这两种方法是自动调用)。   ...();   你可以比较文件: Chap0111a.pdfChap0111b.pdf区别 第五步关闭 document   关闭 document 非常重要, 因为它将关闭正在运行Writer并将内容写入文件

    2.3K20

    Unity3D读取PDF文件内容

    最近在研究Unity3D读取PDF内容,预想了三种方案,一是用Java来实现,二是调用C#iTextSharp库或者PDFBox库来实现,三是下载PDF Renderer插件(土豪可以买这个插件,...支持系统也比较全面),java不是很精通,我就研究了一下C#调用iTextSharp库来实现,但是遗憾是不支持UWP系统。...再写代码之前呢,得在Assets下Plugins文件夹中导入itextsharp.dll、Spire.Pdf.dll、Spire.License.dll、System.Drawing.dll库,才能好使...strategy = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); text += iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage...图片 private void ReadPDFImage() { string path = Application.streamingAssetsPath + "/aa.pdf";

    1.6K30

    强大 .NET PDF处理神器:PDFSharp

    ://www.e-iceblue.cn/Introduce/Spire-Office-NET.html iTextSharp:https://github.com/itext/itextsharp 有一说一都挺好用...尝试使用了下,还不错,该有的都有,简单pdf文件可以直接使用PDFSharp库生成,复杂点则提供了MigraDoc来编辑。 自己小应用都已经上生成环境了,觉得该库是挺ok了。...主要功能 1、创建PDF:无需预先存在模板,PDFSharp允许您直接从头开始构建PDF文档。 2、内容插入:支持在PDF页面添加文本、图像、表格、图形等丰富元素。...PDFSharp文档 .NET Framework 文档站点下有很多例子大家可以看看 我使用方式较为粗暴,使用MigraDoc编辑文档表格,再生成PDF文件。...,当然了这里没有加上文件信息那些,仅仅是生成内容罢了,有那些需要可以自己根据文档站点看看如何设置。

    1.6K10

    C#如何使用Parallel.ForParallel.ForEach

    C#如何使用Parallel.ForParallel.ForEach 利用C#无锁,线程安全实现来最大化.NET或.NET Core应用程序吞吐量。 ?...本文讨论了如何在.NET Core应用程序中使用并行性。若要使用本文提供代码示例,您应该在系统安装Visual Studio 2019。...在本文后续部分,我们将使用该项目来说明.NET Core并行编程。 .NET Core并发性并行性 并发并行性是.NET.NET Core两个关键概念。...以下两种方法都使用IsPrime方法检查整数是否为质数,将质数托管线程ID存储在ConcurrentDictionary实例,然后返回该实例。第一种方法使用并发,第二种方法使用并行性。...如您所见,托管线程ID在每种情况下都是相同,因为在此示例我们使用了并发性。现在,让我们看一下使用线程并行性时输出结果。以下代码段说明了如何使用并行性检索介于1到100之间质数。

    5.9K20

    开源免费且稳定实用.NET PDF打印组件itextSharp(.NET组件介绍之八)

    对于项目开发中使用到打印地方会非常多,在.NET项目中,选择打印方式比较多,例如原始IE网页打印、水晶报表、JS插件实现打印、导出文档打印,以及今天提到使用itextSharp组件实现PDF打印等等...在.NET实现PDF打印组件比较多,例如PDFsharp、Report.NET、sharpPDF、itextSharp等等,今天主要简单介绍itextSharp组件。...一.itextSharp组件概述:          1.iTextPDF库,它允许你创建,调整,检查维护可移植文档格式文件(PDF):         (1).基于从XML文件或数据库数据生成文件报告...iText所使用Java,.NET,AndroidGAE开发人员加强与PDF功能应用程序。iTextSharp是.NET端口。    ...组件介绍之七)    口碑性能都高.NET PDF打印组件itextSharp(.NET组件介绍之八)

    7.6K50

    C#Abstract 、VirtualOverride使用

    标记为抽象或包含在抽象类成员必须通过从抽象类派生类来实现。 (1)抽象类具有以下特性: 1) 抽象类不能实例化。 2) 抽象类可以包含抽象方法抽象访问器。...除了在声明调用语法上不同外,抽象属性行为与抽象方法一样。在静态属性上使用abstract修饰符是错误。在派生类,通过包括使用 override 修饰符属性声明,可以重写抽象继承属性。...抽象方法相同点是都用了override关键字进行重写方法,不同点是抽象方法必须存在于抽象类,而子类必须重写,除非子类也是抽象。...注:从静态方法中使用 base 关键字是错误。 2)区别: base 是子类引用父类,用于在派生类访问重写基类成员。...this 是当前类,引用自己,用于访问本类成员,当然也包括继承而来公有保护成员。 3)注意: a).在静态成员中使用basethis都是不允许

    1.3K20

    如何使用SQLancer检测DBMS逻辑漏洞

    该工具可以帮助广大研究人员轻松识别应用程序实现逻辑漏洞。我们这里所指逻辑漏洞,即能够导致DBMS获取错误结果集安全漏洞(比如说忽略数据记录等等)。...SQLancer能够在下面两个阶段进行操作: 1,数据库生成:此阶段目标是创建一个填充有数据数据库,并向DBMS输入测试用例以尝试识别检测不一致数据库状态。...除此之外,该工具还会使用其他类型语句(如创建索引视图以及设置DBMS特定选项语句)来测试目标DBMS; 2,测试:此阶段目标是针对生成数据库检测逻辑错误。...SQLancer可能会找出SQLite漏洞,在报告漏洞信息之前,请确保处理信息仍在打印。我们可以按下CTRL + C组合键手动停止SQLancer运行。...如果SQLancer在没有参数情况下执行,工具则会输出所有可用选项命令。

    2.9K10

    PDF添加水印(Python+C#)

    1、Python + PDFlib    以下是用PDFlib给pdf添加水印速记,另外PDFStamp是个很好用pdf水印工具。PDFlib功能比较多、杂;PDFStamp功能单一,更方便使用。...2014-03-27 from PDFlib.PDFlib import PDFlib from PDFlib.PDFlib import PDFlibException #给单个文件添加水印,在右上角左下角各添加一个水印...p.end_page_ext("");                       p.close_p_w_picpath(p_w_picpath)     p.end_document("") 2、C#...+ iTextSharp using System; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; //给单个文件添加水印...,在右上角左下角各添加一个水印 //所有参数均为全路径文件名 bool add_watermark(string srcPdf, string dstPdf, string p_w_picpathpath

    1K30

    C#refout区别使用

    ref(C# 参考) ref 关键字会导致参数通过引用传递,而不是通过值传递。 通过引用传递效果是,对所调用方法参数进行任何更改都反映在调用方法。...有关如何传递数组信息,请参阅使用 ref out 传递数组(C# 编程指南)。 你不能将 ref out 关键字用于以下几种方法: 异步方法,通过使用 async 修饰符定义。...有关如何通过值引用传递引用类型详细信息,请参阅传递引用类型参数(C# 编程指南)。...Name: Stapler, ID: 12345 out(C# 参考) 你可以在两个上下文(每个都是指向详细信息链接)中使用 out 上下文关键字作为参数修饰符,或在接口委托中使用泛型类型参数声明...有关传递数组信息,请参阅使用 ref out 传递数组(C# 编程指南)。 你不能将 ref out 关键字用于以下几种方法: 异步方法,通过使用 async 修饰符定义。

    1.1K51
    领券