gpt4 book ai didi

c# - 如何从 pdf 文档加载文本位置?

转载 作者:行者123 更新时间:2023-11-30 17:48:20 25 4
gpt4 key购买 nike

我加载 pdfdoc,通过:

PdfReader pdfReader = new PdfReader(byteArray);
LocationTextExtractionStrategyEx st3 = new LocationTextExtractionStrategyEx();
PdfTextExtractor.GetTextFromPage(pdfReader, 1, st3);

现在我可以从 st3.TextLocationInfo 获取页面元素列表。每个元素都有属性 TopLeftBottomRight,它们是 Vector。如果我不知道比例的最大值,如何获得元素位置。我知道矢量从左下角开始,但我不知道在哪里结束,因为我不知道与矢量相同比例的页面大小。

我能跑

var pageSize = pdfReader.GetPageSize(1)

但是向量的值大于 pageSize WidthHeight

另一方面,我可以加载页面上的每个字符位置吗?

最佳答案

LocationTextExtractionStrategyEx 不是 iTextSharp 的一部分。因此,我假设您谈论的是 this answer 中提供的类(class).那个类(class)对职位没有任何幻想。因此,为了回应您的问题:

I know that vector start on left bottom page corner but I don't know where is end because I don't know page size in the same scale like vector.

I can run

var pageSize = pdfReader.GetPageSize(1)

But values from vectors are bigger than pageSize Width and Height

首先:您从 LocationTextExtractionStrategyEx.TextLocationInfo 获得的坐标确实要在 pdfReader.GetPageSize 的上下文中进行解释。

向量值可以超出后者的WidthHeight的主要原因有两个:

  1. pdfReader.GetPageSize 返回的矩形不需要基于 (0,0)。它可以例如在 301..400 中有 x 坐标,在 501..600 中有 y 坐标。在那种情况下,高度和宽度都将是 100,但该矩形中所有点的坐标都会更高。

    因此,不要查看 WidthHeight,而是查看 LeftBottom顶部

  2. 文本实际上可能位于可见页面之外,因此其坐标位于 pdfReader.GetPageSize 之外。

如需最终裁决,请提供相关 PDF。

关于c# - 如何从 pdf 文档加载文本位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com