- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我加载 pdfdoc,通过:
PdfReader pdfReader = new PdfReader(byteArray);
LocationTextExtractionStrategyEx st3 = new LocationTextExtractionStrategyEx();
PdfTextExtractor.GetTextFromPage(pdfReader, 1, st3);
现在我可以从 st3.TextLocationInfo
获取页面元素列表。每个元素都有属性 TopLeft
和 BottomRight
,它们是 Vector
。如果我不知道比例的最大值,如何获得元素位置。我知道矢量从左下角开始,但我不知道在哪里结束,因为我不知道与矢量相同比例的页面大小。
我能跑
var pageSize = pdfReader.GetPageSize(1)
但是向量的值大于 pageSize Width
和 Height
另一方面,我可以加载页面上的每个字符位置吗?
最佳答案
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
andHeight
首先:您从 LocationTextExtractionStrategyEx.TextLocationInfo
获得的坐标确实要在 pdfReader.GetPageSize
的上下文中进行解释。
向量值可以超出后者的Width
和Height
的主要原因有两个:
pdfReader.GetPageSize
返回的矩形不需要基于 (0,0)。它可以例如在 301..400 中有 x 坐标,在 501..600 中有 y 坐标。在那种情况下,高度和宽度都将是 100,但该矩形中所有点的坐标都会更高。
因此,不要查看 Width
和 Height
,而是查看 Left
、Bottom
、右
和顶部
。
文本实际上可能位于可见页面之外,因此其坐标位于 pdfReader.GetPageSize
之外。
如需最终裁决,请提供相关 PDF。
关于c# - 如何从 pdf 文档加载文本位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245897/
我是一名优秀的程序员,十分优秀!