1. 程式人生 > >pdf根據目錄生成書籤

pdf根據目錄生成書籤

1 準備

①Adobe Acrobat ②Autobookmark外掛

Step1 下載連結 Step2 關閉Adobe Acrobat後,直接安裝,會自動新增到Adobe Acrobat (使用說明

③Python3.6 ④pdf電子書的目錄bookmarks.txt

直接從目錄複製(注意編碼問題,可能亂碼) 或從豆瓣圖書複製

2 得到書籤標準檔案

2.1 bookmarks.txt標準檔案

所需目錄格式,需要一、二級標題鮮明,第二級使用tab鍵縮排(Notepad中選中整體直接tab進行縮排,或shift+tab回縮),第三級類推 標題和頁數之間使用英文逗號分割 格式示例: 在這裡插入圖片描述

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開啟,依次選擇 在這裡插入圖片描述 然後選擇目錄檔案,點選OK生成 在這裡插入圖片描述

4 其他

Question1、使用Adobe Acrobat編輯pdf後,無法儲存,出現“文件無法儲存,讀取文件時出現錯誤(153)” A:使用PDF-XChange_Editor開啟pdf後,另存為新的檔案,之後操作新的檔案即可 Download1 Download2

Question2、關於pdf軟體 PDF閱讀,推薦Edge,輕便,帶目錄,可作標記 Adobe Acrobat 用於處理pdf,合併、生成標籤等 PDF-XChange-Editor 可編輯處理,速度較快