前言
在網絡上或者一些其他渠道我們經常下載獲得一些我們需要的掃描文檔或者pdf文件,但這些文檔文件很多時候並沒有目錄標簽,有時候給我們的閱讀帶來一些不便。強大的Adobe Acrobat DC 有一個目錄制作插件AutoBookmark,可以根據制作的目錄文檔自動生成目錄標簽,據此,我將在下面的內容介紹如何使用AutoBookmark以及如何制作其需要的目錄文檔。
AutoBookmark的使用
設置目錄文檔導入格式
- 用Adobe Acrobat DC打開需要制作目錄標簽的pdf文檔,在增效工具中的Bookmarks中選擇Creat From Text File以打開目錄文檔格式制作界面。
- 基本文檔格式設置如下圖
目錄文檔的制作
- 使用適當工具提取pdf文檔中的目錄界面的文字,並進行整理
- 以tab區分不同的章節層次,每添加一個章節層次在開頭添加一個tab(如下圖為一個兩層次的章節目錄文檔,這一步需自行調整)
- 使用以下python源代碼去除章節名與頁碼之間的點號並插入逗號分割符(與Adobe Acrobat DC中Bookmarks插件的目錄文檔格式相一致)
# -*- coding: utf-8 -*- # adobe acrobat書簽制作 import re with open('bookmarks.txt', 'r', encoding='utf-8') as f: txtword = f.readlines()#將目錄以行的形式存放到txtword中 with open('bookmarks_modify.txt', 'w', encoding='gbk') as f: for i in txtword: pattern = r'[\u4e00-\u9fa5]+' #以unicode編碼的形式尋找該行的中文 ch = re.findall(pattern, i)[-1] #提取目錄中最后一個中文字符 num=re.findall('\d+',i)[-1] #尋找頁碼 pattern = ch+'.*?'+num+'.*\n' #提取最后的中文字符和頁碼以及兩者之間的部分 num=str(int(num)+6) #將頁碼由字符類型轉換為數據類型並調整頁碼大小(6為實際頁碼和標注碼的差值,需要自己對照書籍或文章自己手動更改) a=re.sub(pattern,ch+','+num+'\n',i)#將最后的中文字符和頁碼以及兩者之間的部分替換為',' f.writelines(a) #將修改好的行寫入
- 以tab區分不同的章節層次,每添加一個章節層次在開頭添加一個tab(如下圖為一個兩層次的章節目錄文檔,這一步需自行調整)
示例文件(提取碼:4236)
注:
- bookmarks.py為源代碼
- bookmarks.txt為調增好章節層次的txt文件
- bookmarks_modify.txt為去除多余點號和插入分隔符的txt目錄文檔