当我使用mupdf
. 它只能找到整个单词。例如,搜索单词“meaningless”会找到整个单词:
This is a short, staggeringly meaningless sentence.
我无法提前知道一个单词是否跨越两行 - 因此:连字符 - 与否。显式搜索连字符也太麻烦了。但是,当一个单词被包裹在一行的末尾时,它就不会被找到。搜索“meaningless”将找不到此示例中的单词:
This is a short, staggeringly meaning-
less sentence.
PDF 查看器“Evince”的行为方式相同。有没有一种(简单的)方法可以让“Mupdf”找到连字符的术语?
请注意,PDF 不包含原始文本,而是包含字形放置位置的描述。在 PDF 中搜索文本取决于 (1) PDF 具有描述哪些字形对应于哪些 unicode 字符的表 (2) 将这些已翻译字符重新组合成单词的方法 (3) 关于生成应用程序如何工作的假设,例如按文本顺序放下字形(例如,当两列文本同时呈现在两列中时,这将严重失败)。
要考虑连字符,您必须实现一种算法来检测行尾的破折号(可以使用不同的字形),然后合并单词(并考虑有关连字符的特殊规则,例如德语
ck
)。所以是的,它可以完成,但不容易,然后它只适用于某些语言/脚本。
在 PDF 中搜索单词实际上是查看器的一项功能。因此,每个观众都采用不同的方法来处理它将使用的内容。在实践中,我发现Okular是我测试过的所有 PDF 查看器中的最佳选择。据我所知,Mupdf 无法处理带连字符的单词。
我不知道如何在 MuPDF 中执行此操作,但获取这些行/匹配项的一种方法是使用
pdftotext
默认情况下,pdftotext 取消连字符的行。