C# 获取PDF文档的字体信息及指定文字的坐标,宽度和高度

在本篇文章中我将分享如何使用C#编程的方法来获取PDF文档中文字的字体信息(字体名称大小类型等)及指定文字的坐标(X,Y),宽度高度。这个方法使用了一个免费PDF组件Free Spire.PDF。


Free Spire.PDF简单介绍


Free Spire.PDF是Spire.PDF的免费版本。Spire.PDF是一款独立 的PDF 控件,用于在.NET 程序中创建、读取、写入、编辑和操作PDF 文档且无需系统安装Adobe Acrobat。它支持的功能也很全面,例如文档安全性设置(电子签名),提取文本、图片,PDF文档合并和拆分及打印,插入图片、创建表格和导入数据等等。除此以外,还支持将TXT、图片、HTML等格式转换为PDF格式。


Free Spire.PDF组件下载和安装

  1. 官网下载
  2. Nuget下载
  3. 在VS中直接使用NuGet Package Manager 搜索FreeSpire.PDF

如下图:

C# 获取PDF文档的字体信息及指定文字的坐标,宽度和高度_第1张图片


安装完成后,接下来就使用它来获取一个PDF文档的字体信息及指定文字的坐标,宽度和高度。


获取字体信息

步骤解析:

  1. 创建一个C#控制台应用程序,添加Spire.Pdf.dll作为引用,然后添加命名空间
  2. 加载PDF文档
  3. 获取当前文档的所有字体并将其保存到数组
  4. 遍历数组,获取每一个字体的信息如字体名称,字体大小,字体类型等

代码:

using System;
using Spire.Pdf;
using Spire.Pdf.Graphics.Fonts;
 
namespace 获取字体信息
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载文档
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"E:\Program Files\示例.pdf");
            //获取当前文档的所有字体
            PdfUsedFont[] usedfont = doc.UsedFonts;
            foreach (PdfUsedFont font in usedfont)
            {
               //打印每个字体的字体名称、大小及类型
               Console.WriteLine("{0}, {1}, {2}", font.Name, font.Size, font.Type);
            }
        }
    }
}

运行结果:

C# 获取PDF文档的字体信息及指定文字的坐标,宽度和高度_第2张图片

 

获取指定文字的坐标,宽度及高度

步骤解析:

  1. 创建项目,添加对dll的引用及命名空间
  2. 加载PDF文档
  3. 遍历PDF文档的所有页,查找指定的文字,并将查找结果保存到数组,之后遍历该数组来获取每一个查找结果的宽度、高度和坐标信息

代码:

using System;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.General.Find;
 
namespace 获取指定文字的坐标
{
    class Program
    {
        static void Main(string[] args)
        {
           //加载文档
           PdfDocument doc = new PdfDocument();
           doc.LoadFromFile(@"E:\ProgramFiles\PDF.pdf");
           PdfTextFind[] result = null;
           foreach (PdfPageBase page in doc.Pages)
           {
                result = page.FindText("PDF").Finds;
                foreach (PdfTextFind text in result)
                {
                   //获取文字的坐标,宽度和高度
                   PointF pf = text.Position;
                   SizeF size = text.Size;
 
                   Console.WriteLine(pf);
                   Console.WriteLine(size + "\n");
                }
            }
        }
    }
}

运行结果:

C# 获取PDF文档的字体信息及指定文字的坐标,宽度和高度_第3张图片


感谢阅读,希望本文能给您带来一定的帮助!

 

 

 

你可能感兴趣的:(.NET,PDF)