我们的文件系统上有一些 PDF 文件,这些文件通过 MLCP 加载到 Marklogic 服务器中。一旦 PDF 被摄取,CPF 就会在启用默认转换的 Marklogic 中触发。这会导致 PDF 文件转换为 XML(docbook 格式)文件。 PDF 可能在页面末尾包含一个句子,并且文本的某些部分会溢出到下一页。问题是,当发生转换时,每个页面的文本都保留在标签中,这意味着下一页的溢出文本出现在单独的标签中。例如考虑一下“敏捷的棕色狐狸跳过一只懒狗”这句话。现在,“敏捷的棕色狐狸”出现在 PDF 的一页中,其余的“跳过懒狗”进入下一页。转换后,XML 中显示的内容如下:
......
<para>The quick brown fox</para>
...... (some information about headers)
<para>jumps over the lazy dog</para>
有没有办法可以在转换过程中保持文本的连续性?
最佳答案
有两种方法可以到达那里。较难的前期方式和较容易的后处理方式。
(1)通过PDF配置文件。默认情况下,这是 Converters/cvtpdf
中的 PDFtoXHTML.cfg
您的安装的子目录。您可以创建自己的配置文件并通过
配置选项为xdmp:pdf-convert
。您要做的就是在页面上添加一个裁剪框以裁剪掉
页码、页眉/页脚等。其语法为:
[ANNOT PLAN]
0.Iceni Crop Box =1-# [341.15, 91.78, 259.87, 364.84];
[-- END --]
你如何计算出这个盒子的几何形状应该是什么?您可以从以下位置下载一个名为 Gemini 的工具 艾西尼要做这件事。只要您处理的所有文档都具有相同的几何形状,这种方法就可以正常工作。
(2) 通过文档输出的后处理。页面的开头和结尾在 PDF 转换生成的 XHTML 中进行标记,并且也会传播到 Docbook。像这样的东西:
&para>
&phrase id="pge03"> &/phrase>
&/para> &para>
&phrase id="pgs04"> &/phrase>
&/para>
&para/>
您可以运行某种样式表来查找此模式并删除页眉/页脚
附近的信息。这变得很棘手,因为你必须决定是否缝合相邻的
页面周围的段落可能基于样式信息重新组合在一起。默认情况下
Docbook 不会保留 XHTML
中的样式信息,但如果需要,您可以获取它
通过在 Docbook 步骤中将选项 keep-styles 设置为 false 。查看 Docbook 管道。
(这来自安装目录中的 Installer/conversion/docbook-pipeline.xml
。)
关于xml - Marklogic 中的 PDF 到 XML 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658377/