- Code: Select all
PdfPageBase page = doc.Pages[0];//仅获取第一页
string name=page.ExtractText(new RectangleF(460, 20, 100, 10))
虽然能提取指定区域坐标的文字内容,但是仍会有一定的偏差(具体表现在识别某些发票文字不完整或者识别后缺少文字等情况)
请教下如何才能更精准的提取不同类型发票上的内容?并且RectangleF里面的x,y坐标是如何定位的?
盼复,谢谢~
PdfPageBase page = doc.Pages[0];//仅获取第一页
string name=page.ExtractText(new RectangleF(460, 20, 100, 10))
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("input.pdf");
PdfTextFind[] result = null;
foreach (PdfPageBase page in pdf.Pages)
{
result = page.FindText("key word", TextFindParameter.None).Finds;
foreach (PdfTextFind find in result)
{
RectangleF rect = find.Bounds;
}
}rachel.lei wrote:您好,
感谢您的咨询。
我们产品提取文本的逻辑是,文本内容至少要有一半在提取区域内才能被正确提取出来。请确保您需要提取的文本的全部字符,是包含在您指定的矩形区域范围内的。
我们产品的x,y坐标是以文档的左上角为原点的。关于精确得到文本所在的矩形区域,如果您的文档都是相同的模板,那么您可以参考下面的代码通过查找文本来获取它的矩形区域,然后基于这个矩形区域进行提取文本。
- Code: Select all
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("input.pdf");
PdfTextFind[] result = null;
foreach (PdfPageBase page in pdf.Pages)
{
result = page.FindText("key word", TextFindParameter.None).Finds;
foreach (PdfTextFind find in result)
{
RectangleF rect = find.Bounds;
}
}
Sincerely,
Rachel
E-iceblue support team