欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#提取PDF中指定文本與圖片坐標(biāo)的示例代碼

 更新時(shí)間:2023年12月17日 09:29:01   作者:E-iceblue  
這篇文章主要為大家詳細(xì)介紹了如何使用國(guó)產(chǎn)PDF庫(kù)通過C# 提取PDF中指定文本或圖片的坐標(biāo)位置(X, Y軸),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

獲取PDF文件中文字或圖片的坐標(biāo)可以實(shí)現(xiàn)精確定位,這對(duì)于快速提取指定區(qū)域的元素,以及在PDF中添加注釋、標(biāo)記或自動(dòng)蓋章等操作非常有用。本文將詳解如何使用國(guó)產(chǎn)PDF庫(kù)通過C# 提取PDF中指定文本或圖片的坐標(biāo)位置(X, Y軸)。

用于操作PDF文件的第三方庫(kù)為Spire.PDF for .NET。可以下載產(chǎn)品包后手動(dòng)安裝或者直接通用Nuget安裝。

開始前我們首先了解該庫(kù)關(guān)于PDF中坐標(biāo)系的一些信息:

Spire.PDF for .NET使用 PdfPageBase 類表示PDF頁(yè)面,由內(nèi)容區(qū)域和四周的頁(yè)邊距組成。頁(yè)面上坐標(biāo)系的原點(diǎn)位于內(nèi)容區(qū)域的左上角,x 軸從原點(diǎn)開始水平向右延伸,y 軸從原點(diǎn)開始垂直向下延伸 (如下圖所示)。

通過指定坐標(biāo)XY軸,我們可以在PDF頁(yè)面指定位置處繪制文本、圖片、表格等元素。當(dāng)然Spire.PDF for .NET也提供了相應(yīng)的接口來(lái)幫助大家獲取已有PDF文件中指定文本或圖片的坐標(biāo)信息。具體操作如下。

C# 獲取 PDF 中指定文本的坐標(biāo)

要指定文本的坐標(biāo),主要分為兩步實(shí)現(xiàn):

  • 首先需要使用 PdfTextFinder.Find() 方法查找PDF文件中所有指定文本;
  • 查找到文本后,再通過 PdfTextFragment.Positions 屬性進(jìn)一步獲取其 (X, Y) 坐標(biāo)信息。

代碼:

using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Drawing;
 
namespace GetCoordinatesOfText
{
    class Program
    {
        static void Main(string[] args)
        {
            //創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();
 
            //加載PDF文件
            pdf.LoadFromFile("大數(shù)據(jù).pdf");
 
            //遍歷所有頁(yè)面
            foreach (PdfPageBase page in pdf.Pages)
            {
                //創(chuàng)建PdfTextFinder對(duì)象
                PdfTextFinder finder = new PdfTextFinder(page);
 
                //設(shè)置查找選項(xiàng)
                PdfTextFindOptions options = new PdfTextFindOptions();
                options.Parameter = TextFindParameter.IgnoreCase;
                finder.Options = options;
 
                //查找頁(yè)面中所有指定文本
                List<PdfTextFragment> fragments = finder.Find("海量");
 
                //遍歷所有查找的文本
                foreach (PdfTextFragment fragment in fragments)
                {
                    //獲取文本的坐標(biāo)信息
                    PointF found = fragment.Positions[0];
                    Console.WriteLine(found);
                }
            }
        }
    }
}

C# 獲取 PDF 中指定圖片的坐標(biāo)

與獲取文字坐標(biāo)類似,獲取圖片坐標(biāo)主要也分為兩步:

  • 首先使用 PdfImageHelper.GetImagesInfo() 方法獲取某個(gè)PDF頁(yè)面中所有圖片信息;
  • 獲取圖片后,再通過 PdfImageInfo.Bounds 屬性獲取其 (X, Y) 坐標(biāo)信息。

代碼:

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System;
 
namespace GetCoordinatesOfImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();
 
            //加載PDF文件
            pdf.LoadFromFile("大數(shù)據(jù).pdf");
 
            //獲取指定頁(yè)面
            PdfPageBase page = pdf.Pages[0];
 
            //創(chuàng)建PdfImageHelper對(duì)象
            PdfImageHelper helper = new PdfImageHelper();
 
            //獲取頁(yè)面中的圖片信息
            PdfImageInfo[] images = helper.GetImagesInfo(page);
 
            //獲取第一張圖片的 X、Y 坐標(biāo)
            float xPos = images[0].Bounds.X;
            float yPos = images[0].Bounds.Y;
            Console.WriteLine("圖片坐標(biāo)為({0},{1})", xPos, yPos);
        }
    }
}

加載的示例文檔:

獲取PDF中文字坐標(biāo)的返回結(jié)果:

獲取PDF中圖片坐標(biāo)的返回結(jié)果:

到此這篇關(guān)于C#提取PDF中指定文本與圖片坐標(biāo)的示例代碼的文章就介紹到這了,更多相關(guān)C#提取PDF文本與圖片坐標(biāo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • C#實(shí)現(xiàn)壓縮圖片為可控制的JPEG格式

    C#實(shí)現(xiàn)壓縮圖片為可控制的JPEG格式

    這篇文章主要為大家詳細(xì)介紹了使用C#實(shí)現(xiàn)將圖片壓縮為質(zhì)量可自己控制的JPEG的幾種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2024-01-01
  • C#中的Task使用方式

    C#中的Task使用方式

    本文介紹了C#中的Task,這是一種異步編程模型,允許你在不阻塞主線程的情況下執(zhí)行耗時(shí)的操作,文章詳細(xì)介紹了如何創(chuàng)建、等待、處理異常、延續(xù)以及并行執(zhí)行Task
    2024-12-12
  • 基于WPF實(shí)現(xiàn)繪制地鐵路線圖

    基于WPF實(shí)現(xiàn)繪制地鐵路線圖

    經(jīng)常坐地鐵,卻不知道地鐵多少條線路?哪個(gè)站下車?本文就來(lái)帶大家利用WPF繪制深圳地鐵路線圖,從而帶大家掌握WPF在圖形繪制方面的一些知識(shí),希望對(duì)大家有所幫助
    2023-06-06
  • c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List

    c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List

    這篇文章主要介紹了c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#實(shí)現(xiàn)TCP連接信息統(tǒng)計(jì)的方法

    C#實(shí)現(xiàn)TCP連接信息統(tǒng)計(jì)的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)TCP連接信息統(tǒng)計(jì)的方法,可實(shí)現(xiàn)有效獲取TCP連接信息及連接狀態(tài)的功能,需要的朋友可以參考下
    2015-07-07
  • 基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼的生成工具

    基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼的生成工具

    這篇文章主要為大家詳細(xì)介紹了如何基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼工具,用于二維碼條形碼的生成與識(shí)別,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C#實(shí)現(xiàn)將程序運(yùn)行信息寫入日志的方法

    C#實(shí)現(xiàn)將程序運(yùn)行信息寫入日志的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將程序運(yùn)行信息寫入日志的方法,可實(shí)現(xiàn)將程序運(yùn)行信息寫入日志并存儲(chǔ)在Debug目錄下的"/Log/PRG"下的功能,涉及C#針對(duì)日志的相關(guān)寫入技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#中實(shí)現(xiàn)線程安全單例模式的多種方法

    C#中實(shí)現(xiàn)線程安全單例模式的多種方法

    在C#中實(shí)現(xiàn)線程安全的單例模式通常涉及確保類的實(shí)例在多線程環(huán)境中只被創(chuàng)建一次,并且這個(gè)實(shí)例在應(yīng)用程序的生命周期內(nèi)是唯一的,以下是幾種常見的方法來(lái)實(shí)現(xiàn)線程安全的單例模式,需要的朋友可以參考下
    2025-01-01
  • C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)

    C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)

    這篇文章介紹了C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 最新評(píng)論