个人技术分享

想将一份 pdf 论文中的所有参考文献都提取出来,去掉不必要的换行,放入一个 text 文件,方便复制。其引用是 ieee 格式的,形如:
ieee-ref
想要只在引用序号(如 [3])前换行,其它换行都去掉,即一行一条参考文献。

可用 pypdf[1],其主页有示例,加上 re 去除非序号前的换行(检测 [)。

Code

from pypdf import PdfReader
import re

# 检测非 `[` 前的换行
pattern = r'\n(?!\[)'

reader = PdfReader("paper.pdf")
n_pages = len(reader.pages)
print(n_pages)

with open("ref.txt", "w", encoding="utf-8") as f:
    for i in range(23, 29): # 自己确定 reference 页码范围
        page = reader.pages[i]
        text = page.extract_text()
        text = re.sub(r'-\n', '', text) # hyphen 后换行:连 hyphen 一齐删
        text = re.sub(pattern, ' ', text) # 多余换行换成空格
        f.write(text)# + '\n')

References

  1. py-pdf/pypdf