pdf段落或文本块位置

pdf段落或文本块位置,pdf,itext,Pdf,Itext,我想检索PDF页面中组成段落和/或文本块的矩形 我已经研究了iTextSharp和DataLogics 我所能做的就是找到一个单独的单词。但是,我需要知道这些单词是否在同一文本块中 我用的是C#。有人有什么想法吗?这是Java语言,但它处理的是从pdf中获取内容,然后从内容中的索引中获取值 我不确定,但你也许可以在C#中实现类似的效果。获取内容并打印出来 //create a new reader from the source file PdfReader reader = new PdfRe

我想检索PDF页面中组成段落和/或文本块的矩形

我已经研究了iTextSharp和DataLogics

我所能做的就是找到一个单独的单词。但是,我需要知道这些单词是否在同一文本块中


我用的是C#。有人有什么想法吗?

这是Java语言,但它处理的是从pdf中获取内容,然后从内容中的索引中获取值

我不确定,但你也许可以在C#中实现类似的效果。获取内容并打印出来

//create a new reader from the source file
PdfReader reader = new PdfReader(fileName);
//create the file array
RandomAccessFileOrArray raf = new RandomAccessFileOrArray(fileName);
//get the content of the pdf reader (which is the source file)
byte bContent [] = reader.getPageContent(1,raf);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bs.write(bContent);
//create a string of the contents of the page in order to get the data needed
String contentOf1099 = bs.toString();
if(debug)
{
    System.err.println("contentOf1099 = "+contentOf1099);
}
//get the value based off an index
String value = contentOf1099.substring(contentOf1099.indexOf((",contentOf1099.indexOf("155 664 Td"))+1,contentOf1099.indexOf("(",contentOf1099.indexOf("155 664 Td "))+12);

除非它是结构化的PDF,否则这是不存在的。PDF是一组位于不同位置的抽绳命令,没有段落或空格标记。你需要从文本位置计算出来。

提取页面上每个单词的所有坐标,然后尝试将它们组合在一起

要做的第一件事是分组。要做到这一点,您需要使用所有顺序词循环所有单词,并将y0小于另一个单词的y1,而y1大于另一个单词的y0的单词组合在一起。这些是台词


然后你需要把你的行分成几段。行首的x位置应在另一行页宽的1/25以内。线的y坐标之间的距离应小于线的高度。这些都是段落。

小鸟,最后一行真的给我添麻烦了。你能帮我把它分解一下吗?当然,基本上我在那里做的是说“在155664td的索引中给我接下来的12个字符”。PDF上的所有内容都有一个“位置”,并定义了各种地址。如果打印出pdf的内容,则可以确定矩形中的内容。