在本篇文章中我将分享如何使用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组件下载和安装
如下图:
安装完成后,接下来就使用它来获取一个PDF文档的字体信息及指定文字的坐标,宽度和高度。
获取字体信息
步骤解析:
- 创建一个C#控制台应用程序,添加Spire.Pdf.dll作为引用,然后添加命名空间
- 加载PDF文档
- 获取当前文档的所有字体并将其保存到数组
- 遍历数组,获取每一个字体的信息如字体名称,字体大小,字体类型等
代码:
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);
}
}
}
}
运行结果:
获取指定文字的坐标,宽度及高度
步骤解析:
- 创建项目,添加对dll的引用及命名空间
- 加载PDF文档
- 遍历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");
}
}
}
}
}
运行结果:
感谢阅读,希望本文能给您带来一定的帮助!