我假设您正在使用 iTextSharp 中提供的解析器功能解析您的 PDF 文件。例如,请参阅使用 iText/iTextSharp 从 PDF 文件中提取字体高度和旋转,以了解其他人在您之前是如何做到这一点的。可以在此处找到更详细的文章:使用开源 PDF 技术解决医疗保健中的非结构化数据问题
您的问题是:我如何计算领先?那就是:我怎么知道两条连续线的基线之间的距离?
当您使用 iTextSharp 解析 PDF 时,您会将每一行视为一系列TextRenderInfo
对象。这些对象允许您获取文本的基线:
LineSegment baseline = renderInfo.GetBaseline();
Vector startpoint = baseline.GetStartPoint();
这Vector
由不同的元素组成:Getting Coordinates of string using ITextExtractionStrategy and LocationTextExtractionStrategy in Itextsharp
你需要startpoint[Vector.I2]
. 另请参阅:如何使用 iTextSharp 从 PDF 中检测换行符
两个连续行的该值之间的差异为您提供了现代意义中前导的值。在过去的印刷时代,每个字符都是一个固定大小的块。打印机(人,而不是机器)在成排的块之间放置一条铅,以在线条之间创造一些额外的空间。在现代计算中,这个词被保留了下来,但它的含义发生了变化。不再有“块”,但您可以使用字体大小。字体大小是字体中字形的平均大小。有些字形会占用更多的高度空间,有些会占用更少的空间,但是考虑到前导(基线之间的距离)和字体大小(每个字形的平均高度),您可以对“间距线条”。