PDF书签制作
目錄
一、準備工作
二、過程
1.打開FreePic2Pdf軟件
2.編碼調整目錄的格式為書簽需要的格式
3.文本編輯器實現書簽格式調整
三、參考文章
從網上下的很多的PDF是沒有書簽的,網上的教程不是很完整,參考網上的教程,自己寫篇制作PDF書簽的總結
一、準備工作
1.空書簽PDF
2.對應PDF的目錄(本文示例目錄來自豆瓣)
3.FreePic2Pdf工具
鏈接:https://pan.baidu.com/s/1gKKe6T3x-atifSEElA-9Mw? 提取碼:5080?
4.支持替換文本內容的編輯器:例如nodepad++
(本篇文章使用python操作目錄格式,使用文本編輯器的請由第二部分第3點進入相關文章,或繼續往下讀,文本編輯器的方法沒辦法操作目錄頁碼)
空書簽PDF示例:
二、過程
1.打開FreePic2Pdf軟件
點擊圖中更改PDF按鈕
出現如圖所示,按步驟操作選擇要操作的文件夾:
這時接口文件夾(圖中2的路徑)會有兩個文件:
點擊打開圖中的TXT文件,復制從準備好的目錄,如這從豆瓣找的目錄
2.編碼調整目錄的格式為書簽需要的格式
使用的python代碼如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- import re##修改基礎頁碼數,在判斷語句中 def alterPage(file):"""替換文件中的字符串,目錄的頁碼由代碼增加的:param file:文件名:return:"""file_data = ""with open(file, "r", encoding="utf-8") as f:for line in f:if(re.match(r'^(\d{1,2}\.\d{1,2}\.\d)',line)!=None):line=re.sub(r'^(\d{1,2}\.\d{1,2}\.\d)',r'\t\t\1',line)#替換第二層else:line=re.sub(r'^(\d{1,2}\.\d)',r'\t\1',line)#替換每章第一層標簽# line=re.sub(r' ',r'\t',line)#替換空格為\treobj=re.search(r'\d{1,3}$',line)#找到標簽的目錄頁數if(reobj!=None):num=reobj.group()num=str(int(num)+11)#加上基本頁,這錯的是11頁endstr='\t'+numline=re.sub(r'\d{1,3}$',endstr,line)#替換頁數# line = line.replace(old_str,new_str)file_data += lineprint("修改完成")with open(file,"w",encoding="utf-8") as f:f.write(file_data)print("寫入完成")#轉化目錄格式為指定的書簽格式 def alter(file):"""替換文件中的字符串,目錄的頁碼由FreePic2Pdf軟件.itf書簽配置的BasePage字段增加的(需加一如11應為12開始):param file:文件名:return:"""file_data = ""with open(file, "r", encoding="utf-8") as f:for line in f:if(re.match(r'^(\d{1,2}\.\d{1,2}\.\d)',line)!=None):line=re.sub(r'^(\d{1,2}\.\d{1,2}\.\d)',r'\t\t\1',line)#替換第二層else:line=re.sub(r'^(\d{1,2}\.\d)',r'\t\1',line)#替換每章第一層標簽# line=re.sub(r' ',r'\t',line)#替換空格為\treobj=re.search(r'\d{1,3}$',line)#找到標簽的目錄頁數if(reobj!=None):num=reobj.group()endstr='\t'+numline=re.sub(r'\d{1,3}$',endstr,line)#替換頁數# line = line.replace(old_str,new_str)file_data += lineprint("修改完成")with open(file,"w",encoding="utf-8") as f:f.write(file_data)print("寫入完成")alterPage("./Spring.txt")操作完畢后的結果:
繼續使用FreePic2Pdf,如圖操作:
最后生成有標簽的PDF:
并且書簽的跳轉也沒有問題:
3.文本編輯器實現書簽格式調整
1)分第一層
^(\d{1,1}\.\d) 替換為:\t\1\1表示原來自身字符串2)分第二層
^(\s\d{1,2}\.\d\.\d) 替換為\t\t\1 若是已經有一個tab符\t,那就使用\t\1如果還有更多層 , 那么也依照次方法進行分層.
將頁面號設置成符合要求
每個標題后面跟著的頁碼非常重要 , 如果想要在pdf點擊標題就跳轉到相應的頁的話 , 那么一定要設置好 .
- 標題到頁面只能是一個\t
- 復制從標題到頁碼中間的空格 , 選擇替換成\t即可.
剩余步驟與2點一致
若是需要替換末尾的頁碼數字的格式參考下圖:
結果:
修改目錄的起始頁(也就是你頁碼數字標1的頁面)
? 打開FreePic2Pdf.itf,修改“BasePage=1”這一項;假設你頁碼為1的頁面在PDF文檔的第15頁那么就修改為“BasePage=15”
三、參考文章
[1] https://blog.csdn.net/qq_34104395/article/details/78766400?
?
總結
- 上一篇: 计算KL散度与JS散度的MATLAB程序
- 下一篇: RS232和RS485标准在DB9公/母