突出显示或查找边界框的位置

突出显示或查找边界框的位置

我想要制作文档,其中每个段落,公式和其他视觉上不同的部分都用自己的背景颜色突出显示(例如,公式以蓝色突出显示,表格以红色突出显示,标题以绿色突出显示等)

为了增加挑战,我想将这项技术应用于数千个预先存在的乳胶文档;需要对现有乳胶进行复杂更改的解决方案可能不切实际。

我把这个问题作为一个段落着色问题提出来,因为我怀疑这可能是实现我想要的简单方法。但是任何恢复与生成页面内容的每个命令相关的边界框的方法都可以。例如,可能有一种方法可以从 DVI 文件或 latex 日志中恢复由 latex 命令生成的内容的页面位置。

我的最终目标是创建一个数据集来支持对自动文档处理的研究:我想创建一种算法,可以将页面图像解析为其结构组件,而无需原始标记。我需要乳胶标记与页面上结果内容的位置之间的映射来训练和评估算法。

答案1

我在大学里做课程作业。目标是从书中提取文本。我还需要提取页面结构:标题、段落等。我在 latex 中生成一个数据集并记录边界框:

\newcommand{\recordcurpos}[2]{
\pdfsavepos\write\@auxout{
    \gdef\string\Ax{\the\pdflastxpos}
    \gdef\string\Ay{\the\pdflastypos}
}
\typeout{
    {
       "class":"#1",
       "type":"#2",
       "x":"\the\dimexpr \Ax sp -\parindent\relax",
       "y":"\the\dimexpr \Ay sp -\parindent\relax",
       "pagenum":"\thepage"
    },
}
}

如果可以的话,我希望你能分享你的结果。谢谢!

相关内容