如何在不丢失格式的情况下从PDF复制文本?


41

当我将文本从PDF文件中复制到文本编辑器中时,它最终会以各种方式被破坏。像粗体和斜体这样的格式会丢失;文本段落中的软换行符转换为硬换行符;即使在不应该用破折号将两行打断的情况下,破折号也会保留下来;单引号和双引号替换为?迹象。

理想情况下,我希望能够从PDF复制文本并将格式转换为HTML代码,将“智能引号”转换为“和”,并且换行符正确完成。有什么办法可以做到这一点?


2
Word 2013可以打开PDF。不完美。但是可行
Pratnala 2012年

Answers:


54

首先,您必须了解什么是PDF。PDF文件被设计成模仿一个打印页,并且它们被设计作为输出格式,而不是输入格式。PDF基本上是一张包含字符(各个字母或标点符号等)或图像的确切位置的地图。在大多数情况下,PDF甚至不存储有关一个单词的结尾和另一个单词的开头的信息,少了诸如段落结尾的软中断和硬中断等信息。

(最近的一些PDF确实存储了有关这些内容的一些信息,但这是一项新技术,您很幸运能够找到这样的PDF。即使您这样做,您的PDF查看器也可能不知道它。)

无论如何,要由软件来实现某种“人工智能”,以仅从单个字符的位置提取什么是单词,什么是段落等。不同的软件将比其他软件做得更好,而且还取决于PDF的制作方式。无论如何,您永远不要期望完美的结果。具有输出PDF与具有源文档是不同的。如果可以的话,尝试获得更好的选择。

解决此类问题的标准方法是使用Adobe Acrobat Professional(价格昂贵,而不是免费的阅读器)将PDF转换为HTML。即使那样也无法获得完美的结果。

有一些免费软件可以用来从PDF中提取格式完整的文本,但是同样,不要指望完美的结果。参见例如口径(可以转换为RTF格式),pdftohtml / pdfreflowAbiWord文字处理器(启用所有导入/导出插件)。还有一个用于OpenOffice的PDF导入插件。

但是,请不要期望这些结果中的任何一个都能达到完美。你在这里反对谷物。PDF并不意味着它是可编辑的输入格式。


2
5年后的反馈:没有太大的改进:我不得不将其转换为HTML(使用acrobat x),然后将其每一行插入到MSword表中。(保存word或excel或txt只会弄乱所有内容,从chrome复制过去也不起作用)。仍在等待(非常)智能软件。
JinSnow

右键单击表格,选择“使用格式复制”也是可行的,并且具有上述限制
JinSnow

1
因为这是公认的答案,所以我建议您也提及pratnala在其注释中写的(较新的)选项-直接从Word 2013打开pdf。在某些pdf上,我尝试过提供比上述所有软件更好的结果。
BornToCode

8

另一种选择是下载并开始使用免费的pdf查看器Foxit(它很好)。然后,您可以“另存为”并选择.txt以将其转换为文本文件。这将保留所有格式。Dunno是否可以在Adobe中做同样的事情,因为前一段时间我转换为Foxit时就停止使用它了。


“另存为...文本”对我来说是免费的pdf查看器。
杰夫

我使用Foxit,并且只是尝试了一下,我不会说它保留了格式。而我想要的只是体面的行尾和每个段落作为一个段落。
pgr 2015年

使用txt,您将
放弃

福昕阅读器对我来说非常出色
Michael Tranchida '18

5

有一个非常好的在线工具,称为Sej-da。它处理高级PDF操作。没有要下载的软件。由于它是一个新的在线工具,因此目前仍处于Beta版。它使您可以从PDF中提取文本,以及提供多种其他PDF功能。

http://www.sejda.com/

修订版3于2012年11月14日对sejda函数进行了简短的视频回顾,可在此处找到:

http://revision3.com/tzdaily/sejda-online-pdf


1
您仍然可以下载命令行工具:sejda.org/download(我认为它不允许使用格式提取文本吗?)
Arjan

我已经在塞班岛(Arjan)上方推荐了塞达(Sijda)
西蒙(Simon),

1
??我只是说:您是说这是一种在线工具,但也可以下载相同的东西。此外,请进一步调查:我认为它不会像要求的那样保留格式?
Arjan 2012年

我知道有人要求保留格式,但是除非您尝试尝试,否则您永远不会知道。
西蒙(Simon)

作为具有众多功能的免费工具,它甚至没有超出beta版-没有损失,只有尝试。随着时间的流逝,它的功能集可能会扩展,但是目前还不能真正抱怨。
西蒙

5

使用浏览器打开PDF文件(已测试Google chrome和firefox),然后在此处复制文本。


不幸的是,这在Firefox中对我不起作用。
Reb

关。FF至少保留字体大小。Chrome惨败,甚至没有换行。
nd34567s32e

截至2019年10月,在Chrome中打开PDF并将其复制/粘贴到文本编辑器中至少会保留行尾(但遗憾的是,行上没有任何前导空白)。
DocOc

4

您可以为此使用Adobe Acrobat Pro。

对于表:Acrobat 9/10具有一个选择表功能。使用Acrobat X,您只需单击另存为>电子表格> Excel。甚至可以将页面连接成一个较长的电子表格。很棒的功能。

对于文本:存在用于导出到MS Word的类似功能。另存为> Word> Word文档。

资料来源:


0

福昕将通过按Ctrl + 6在原始文件显示为普通PDF或文本之间切换(对文本模式的缩放级别稍加摆弄,在读取和复制之间来回的位置跳跃不多)


0

我发现这非常有用(删除换行符):

这是一个有用的技巧,可以快速解决此问题,而无需手动删除所有换行符。基本上,它所做的只是将所有不需要的换行符自动替换为一个空格,使所有文本一起运行到单个段落中:

1-从PDF复制所需的文本。

2-粘贴到新的Word文档中。

3-点击“编辑”,然后“替换”

4-确保您在“查找内容”字段中

5-点击“更多”,然后点击“特殊”

6-选择“段落标记”(在列表顶部)

7-单击进入“替换为”字段

8-按下空格键一次

9-单击“全部替换”

10-单击“确定”,然后关闭“查找并替换”框。


-1

您可以将Adobe Reader中的内容复制到MS Excel中,并按所需的格式(表格)进行格式化,然后从Excel中进行复制和粘贴。该解决方案效果很好。您无需购买昂贵的Adobe专业版。


问题讨论文本。您是否认为这是一个很好的通用文本解决方案,包括将格式转换为HTML代码?
fixer1234

-1

我试图保存表格中组织的pdf的文本和格式。在Acrobat Professional中,我意识到有一个“另存为”选项,可以另存为excel文档。这很好地满足了我的需求。我还注意到,还有一个“另存为Word”文档选项。我没有尝试过。


2
这重复了user156787的答案。
fixer1234 '16
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.