![是否可以从复制的文本中删除连字符?](https://linux22.com/image/1244648/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BB%8E%E5%A4%8D%E5%88%B6%E7%9A%84%E6%96%87%E6%9C%AC%E4%B8%AD%E5%88%A0%E9%99%A4%E8%BF%9E%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
我有几个 PDF 在文本中包含连字符(例如,ff
组合成一个字符,ff
)。
从 PDF 复制文本时,有没有简单的方法可以删除它们?(例如,当我粘贴时,我希望将ff
粘贴为ff
)。
我将这些 PDF 中的大量文本复制到 Stack Overflow 上的答案中,我发现这些连字非常令人讨厌(好吧,我承认,我真的很挑剔:-P);当复制到其他地方时,连字也无法正确显示(例如,如果我将它们复制到记事本中,它们会显示为块)。
我无法修改 PDF。
我同时使用 Adobe Acrobat Reader 和 Foxit Reader,但我愿意尝试新的 PDF 阅读器。
答案1
在 Python 中这将是:
import unicodedata
# \uFB00 is the ff ligature.
unicodedata.normalize('NFKD',u'\uFB00').encode('ascii','ignore')
你可以将它与pyPdf阅读pdf文件。
答案2
读者表明当我测试这个时,似乎解码了连字符。
顺便说一句,对于 pdflatex 文档,您可以在序言中使用它来显示 PDF 文档中的连字,但复制单个字符:
\输入{glyphtounicode.tex} \pdfgentounicode=1%
答案3
一种可能性是使用您最喜欢的文本编辑器并简单地替换它们。
另一种方法是编写一个利用sed
...的脚本,但我担心这仅适用于*NIX 系统。
答案4
我的方法很简单,就是从 PDF 复制并粘贴到记事本(删除任何格式),然后从记事本复制并粘贴到 Microsoft Word。
在 Word 中,所有连字都更改为其他格式字体。
我对它们每一个都使用查找和替换(例如 ^l 表示手动行中断,^m 表示手动页面中断等等,你可以在线轻松找到所有内容)并且用正确的形式替换。
只需 4 或 5 个步骤,我就能很快涵盖所有可能性。它对于消除额外的段落中断也很有用 (^P)