是否可以从复制的文本中删除连字?


10

我有一些在文本中包含连字的PDF(例如,ff组合成一个字符)。

从PDF复制文本时,是否有一种简单的方法可以将其删除?(即,当我粘贴时,我希望将其粘贴为ff)。

我从这些PDF中将很多文本复制到Stack Overflow的答案中,并且我发现连字最好是令人讨厌的(好的,我承认,我真的很挑剔:-P);连字在复制到其他位置时也无法正确显示(例如,如果我将其复制到记事本中,它们将显示为块)。

我无法修改PDF。

我同时使用Adobe Acrobat Reader和Foxit Reader,但是我愿意尝试使用新的PDF阅读器。

Answers:


3

在python中,它将是:

import unicodedata
# \uFB00 is the ff ligature.
unicodedata.normalize('NFKD',u'\uFB00').encode('ascii','ignore')

您可以将其与pyPdf结合使用以读取pdf文件。


2

读者了Evince似乎解码连字时,我测试了这一点。

顺便说一句。对于pdflatex文档,您可以在序言中使用它来显示PDF文档中的连字,但可以复制单个字符:

\ input {glyphtounicode.tex}
\ pdfgentounicode = 1%

1

一种可能性是使用您喜欢的文本编辑器并简单地替换它们。

另一种方法是编写一个使用的脚本sed..但是我担心那只能是* NIX-Systems。


GnuWin32,您已经在Windows上执行了操作。
mbq 2010年

@mbq:它也包括在内吗?很好。谢谢。
鲍比(Bobby)2010年

0

我更深入地回答了类似的问题- 从PDF复制或打印文档时,为什么`fi`文本会被剪切?

如果您有从损坏的单词到原始单词的映射,则可以替换复制的文本中的“损坏的”单词。我编写了一个脚本,通过从单词中删除连字并检查生成的单词是否唯一来生成此映射。对于我的英语单词词典,99.5%的所有可能破的话是可更换的,并且92.3%包含一个连字序列的话(fffiflffi,或ffl)可以恢复。这两个百分数之间的差是由于这样的数量大得惊人的是通过去除来自其他合法字韧带创建合法字词(例如butterfly --> butteryfluffs --> usmisfits --> mists)。

这是CSV保证可替换的“残破”字词(以及它们过去的字词):http : //www.filedropper.com/brokenligaturewordfixes


您提供文件真是太好了。但是实际上,没有常识的人会下载未知文件(尤其是从全新用户那里下载)。如果文件访问量很少,请不要亲自处理。这并不意味着您的努力不会得到赞赏。
fixer1234

是的,我明白。我希望有一种简单的方法来验证这样的链接,甚至只是为了保证文件类型。谢谢!
Jan Van Bruggen

0

我的方法很简单,就是从PDF复制并粘贴到记事本(以删除任何格式),然后再从记事本复制到Microsoft Word。

在Word中,所有连字都使用其他格式的字体更改。

我使用find并替换它们中的每一个(例如^ l用于手动中断行,^ m用于手动中断页,依此类推,您可以轻松地在网上找到所有内容),然后以正确的格式替换。

我只需4到5步就可以很快涵盖所有可能性。删除其他段落中断(^ P)也很有用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.