投稿问答最小化  关闭

pdf转文本

2022/3/22 16:51:14  阅读:273 发布者:chichi77

今天推荐一个超级好用的pdftxtpython脚本。强烈推荐!!!

废话不多说,这个大家Git-hub上都可以找到,搜搜(pdfminer)关键词。链接如下:

https://github.com/pdfminer/pdfminer.six

安装使用github里面都有说明,在这里简单复读一遍:

安装:

pip3 install pdfminer.six

使用:

pdf2txt.py  sample.pdf >> sample.txt

So easy and powerful.

案例:在J. Phys. Chem. C 2019, 123, 47, 2902429036 这篇文章的支持信息中, 有超级多的Pt团簇的xyz结构。直接在pdf复制粘贴并生产计算输入文件很费劲。可以用这个命令先把pdf转成txt文本,然后结合其他命令获得结构。下面是我的一些操作心得,有兴趣的可以下载支持信息,亲自动刀操作一遍。

第一步:转pdf到文本

pdf2txt.py jp9b08691_si_001.pdf  >> si.txt

第二步:提取坐标

Pdf中,可以通过'Cluster=Pt' 结合数字定位,然后后面的N行即为坐标信息。用grep命令即可。

提取PDF中所有的Pt5 团簇结构。

grep Cluster=Pt5 -A 5 si.txt  > Pt5.txt

第三步:检查Pt5.txt文件

发现有个结构出现了问题,这是因为PDF中坐标因为分页被强行中断了,pdf2txt转化的时候,在两页的内容之间会出现'^LSN' 的信息(N为页码),一定要注意检查。在这个例子中,‘^LS4’ 前面有1空行,后面2空行。

第三步:修改si.txt 文件,删除分页信息,这里用的是sed命令:

sed -i  -e  '/S/,+2d' -e '$!N;/\n.*S/!P;D' si.txt

紫色部分代表删掉后面2行,红色代表删掉前面1行。

另外要注意,这里用S’字符来定位分页信息的部分,其他含有'S'字母的行也会无差别删除,比如下面的几行。

第四步:重新提取:

grep Cluster=Pt5 -A 5 si.txt  > Pt5.txt

这样,Pt5.txt文件中就包含所有的Pt5的坐标信息了。剩下的就需要你根据自己平时搭结构的习惯以及用的计算程序,读取并做成输入文件。

本人用的split这个命令,把Pt5.txt分割成N个文本(xaa...xbg),每个文本包含一个Pt5团簇的结构。

就到这儿吧,记住pdf2txt.py OK,提取支持信息里面的坐标结构真是爽歪歪啊,比自己复制粘贴好多了。另外, 1) 强烈建议大家投稿的时候直接把xyz文件打包作为支持信息,这样后面的人就不需要这么麻烦了,2)更强烈建议投稿的时候要把坐标信息附在支持信息里面,不管是pdf也好,xyz文件也罢。 很多人投稿都不放xyz文件,导致其他人想练练手,重复下都没办法。

大家尽量自己动手操作一番,如果行不通再联系我,会把这个例子打包发给你(lqcata@gmail.com

如有侵权,请联系本站删除!

  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com