所需軟體:
1. freepic2pdf(網上很容易找到)
2. python3
3. 天若ocr
官網:搜狗ocr配置:
實現方法:
1. 提取書籤內容文字
許多英文書籍pdf的文字是可以直接複製貼上的,這種情況比較好處理,直接複製出來,暫時儲存到文字中。
如果為掃瞄版pdf,則可以用上面提供的天若ocr進行識別,然後提取文字內容,識別率挺高,不算太麻煩。
最後得到目錄內容:
如果是用ocr軟體識別的內容,有時候會有一些多餘的符號,影響下面python指令碼的執行,最常見的是:
1)目錄出現換行,導致該行最後乙個字元不是數字,指令碼無法正確執行,會報錯;
2)行末的數字前出現一些多餘符號,也會影響指令碼執行,乙個個手動修改太麻煩,可以在vscode裡用vim批量操作。如:
上面輸入的替換命令為:
%s/…/ /g用vim裡:模式下的替換命令,上面表示把…全部替換成空格。注意vscode裡的vim外掛程式可以在替換命令裡貼上內容,但是我在terminal的vim裡似乎不行,有些字元奇怪字元有時候不知道怎麼打,可以直接貼上過去。
%s/(待替換內容)/(替換內容)/g

2. 在同一工作目錄下執行如下python指令碼
#!/usr/bin/python3
#-*- coding: utf-8 -*-
'''@author: yin weijie
@date: 2018.5.25
@description:
替換頁碼
@revised date: 2019.3.7
@description:
在次級目錄前加tab
'''fin = open("
aa.txt
", "r"
)fout = open("
bb.txt
", "w"
)for each_line in
fin:
list =each_line.split()
for i in range(len(list) - 1): #
倒數第乙個元素是數字,先不放
if (list[i] == '.'
):
continue
#這裡章數預設不超過兩位數
if ((len(list[i]) > 1 and list[i][1] == '
.') or (len(list[i]) > 2 and list[i][2] == '.'
)): fout.write('\t
')fout.write(list[i])
fout.write(''
)
#print(list[i])
fout.write('\t'
) num = int(list[-1]) + 0 #
單獨處理倒數第乙個數字
得到檔案bb.txt的內容:
這裡實際上就是做乙個文字替換,為後面freepic2pdf使用作準備。因為freepic2pdf只能識別固定格式的書籤內容,主要有如下幾方面需要修改:
1)頁碼是pdf中的絕對頁碼,通常需要加減乙個差值,但是這個pdf的排版比較特殊,書中的頁碼內容和pdf絕對頁碼內容一致,否則上面python**中
num = int(list[-1]) + 0 #這一行加的數字應該是pdf絕對頁碼和書籍頁碼的差值。單獨處理倒數第乙個數字
2)頁碼數字和前面的文字之間應該是\tab,而不是空格。
3)每行行首也可以加\tab,表示次級目錄。也可以加多個\tab增加更多目錄層級,這裡只做了乙個次級目錄。
3. 用freepic2pdf批量插入標籤
會在該pdf檔案所在目錄生成乙個新的目錄,包含如下檔案:
開啟上面的txt檔案,把之前生成的bb.txt中的內容貼進去,儲存。然後再回到freepic2pdf軟體:
經過上面操作,就能成功新增標籤了。
pdfkit python自動化生成PDF
在用jupyter notebook寫 文件的時候,有時需要匯出pdf版本,但jupyter會報錯。我在想,除了網上的debug方法,還沒有其他方案可以生成pdf。度娘搜了下,很多部落格推薦python的第三方庫pdfkit,可以將網頁 html檔案以及字串生成pdf檔案。其實也有很多軟體提供pdf...
自動化生成jar 心得
利用藍貝殼框架已經寫好的bom.xml檔案,自己在清單列表檔案androidmanifest.xml裡進行乙個配置,注意這裡配置的 屬性的name值一定要與bom.xml檔案中的keyname值要一樣,否則後面生成keystore檔案時會報錯 android value wandoujia 在這裡多...
ui自動化生成HTML報告
if name main import time from htmltestrunner import htmltestrunner tesunit unittest.testsuite n 0while n 1 執行測試用例,這裡博主只寫了兩條用例,用例命名分別為test 1,test 2 n 1...