天天看點

python讀取pdf文檔書簽 bookmark_pdf根據目錄生成書簽

目錄

1 準備

①Adobe Acrobat

②Autobookmark插件

③Python3.6

④pdf電子書的目錄bookmarks.txt

2 得到書簽标準檔案

2.1 bookmarks.txt标準檔案

所需目錄格式,需要一、二級标題鮮明,第二級使用tab鍵縮進(Notepad中選中整體直接tab進行縮進,或shift+tab回縮),第三級類推

标題和頁數之間使用英文逗号分割

格式示例:

python讀取pdf文檔書簽 bookmark_pdf根據目錄生成書簽

2.2 正則轉換示例

将一般形式的目錄,如

1 Part1 . . . . . . . . . . . . . . . . . . . 1

1.1 Part1.1 . . . . . . . . . . . . . . . . . . . 3

1.2 Part1.2 . . . . . . . . . . . . . . . . . . . 5

1.3 Part1.3 . . . . . . . . . . . . . . . . . . . 6

2 Part2 . . . . . . . . . . . . . . . . . . . 9

2.1 Part2.1 . . . . . . . . . . . . . . . . . . . 11

2.2 Part2.2 . . . . . . . . . . . . . . . . . . . 21

轉為如上标準格式

python正則代碼參考import re

with open('test.txt', 'r') as f:

raw_lines = f.readlines()

lines = []

# 去掉中間逗點

for line in raw_lines:

#逗點之間使用了空格

pattern_dots = re.compile(r'(\s\.)+\s')

new_line = pattern_dots.sub(',', line)

lines.append(new_line)

# 修改絕對頁數

new_lines = []

for line in lines:

pattern = re.compile(r',\d+')

# 提取頁數

page = pattern.findall(line)

# 将頁數修改為正确的頁數

new_page = int(page[0][1:]) + 12

new_line = line.replace(page[0],','+str(new_page))

new_lines.append(new_line)

with open('test_bookmarks.txt', 'w') as f:

for line in new_lines:

f.write(line)

3使用插件自動生成

将pdf用Adobe Acrobat打開,依次選擇

python讀取pdf文檔書簽 bookmark_pdf根據目錄生成書簽

然後選擇目錄檔案,點選OK生成

python讀取pdf文檔書簽 bookmark_pdf根據目錄生成書簽

4 其他

Question1、使用Adobe Acrobat編輯pdf後,無法儲存,出現“文檔無法儲存,讀取文檔時出現錯誤(153)”

A:使用PDF-XChange_Editor打開pdf後,另存為新的檔案,之後操作新的檔案即可

Download1

Download2

Question2、關于pdf軟體

PDF閱讀,推薦Edge,輕便,帶目錄,可作标記

Adobe Acrobat 用于處理pdf,合并、生成标簽等

PDF-XChange-Editor 可編輯處理,速度較快