日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

半自动化给PDF加书签-Python实现-可双击执行-上篇

發布時間:2023/12/29 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 半自动化给PDF加书签-Python实现-可双击执行-上篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 半自動化給PDF加書簽-Python實現-上篇
    • 一、PDF加書簽介紹
      • 1.1 不那么漂亮的話
      • 1.2 PDF加書簽難點
        • 1.2.1 書簽獲取
        • 1.2.2 書簽格式化
      • 1.3 工具使用限制
    • 二、使用方式
      • 2.1 工具介紹
      • 2.2 半個圖形化界面---可雙擊執行
      • 2.3 命令行
      • 2.4 下載鏈接
    • 三、代碼實現
    • 四、TODO

半自動化給PDF加書簽-Python實現-上篇

一、PDF加書簽介紹

1.1 不那么漂亮的話

  • 本工具只進行書簽部分格式化和加書簽操作書簽獲取需要配合其它工具
  • 最終書簽效果因人而異,程序只能格式化最常見的層級,畢竟是半自動的
  • 最好了解一定正則和列操作,不了解的話可能要多手工重復一些操作
  • 是大佬,可以不用看了
  • 相比現有工具,沒有太大優勢,最初只是個人使用
  • 反反復復改了一星期,差不多能用了,雖然代碼依然很爛
  • 1.2 PDF加書簽難點

    1.2.1 書簽獲取

    一般需要加書簽的,大多是掃描版書籍,而市面上絕大多數掃描版書籍均出自超星公司(讀秀和全國圖書參考聯盟都是他家的),為了方便學術檢索,超星有對目錄進行提取,如下圖。

    ? 額,然后有人分析出了超星書簽的接口,做成了書簽獲取工具,如下圖,通過它能獲取大多數書的書簽

    但檢索一本書的書簽,需要知道書在超星的內部編號,上圖書簽獲取工具填的就是那個編號

    • SSID( Super Star ID,超星英文簡寫)

      書簽接口是超星開發的,其中檢索每本書的書簽不是通過ISBN或書名,而是其內部定義的編號SSID,這個SSID可以油猴腳本獲取,推薦文獻互助小幫手這個腳本,讀秀和全國圖書參考聯盟都可以獲取SSID,但在裝油猴腳本前需要裝油猴插件

      裝好的油猴插件、油猴腳本

    如果書簽工具也沒有那本書的書簽,怎么辦?

    • 這篇博客 下載超星或讀秀圖書時,怎么搞定完整書簽? 講的可以,不重復了,主要是在各出版社官網,電商網站,豆瓣找,直接Google書簽里面的內容,層級深一點的那個,實在沒有就OCR書里面的目錄部分再整理

    推薦閱讀,上面的內容主要參考這三篇文章

    • 文獻互助小幫手:https://greasyfork.org/zh-CN/scripts/435569-%E6%96%87%E7%8C%AE%E4%BA%92%E5%8A%A9%E5%B0%8F%E5%B8%AE%E6%89%8B-%E4%BB%8E%E5%9B%BE%E4%B9%A6%E9%A6%86%E5%8F%82%E8%80%83%E5%92%A8%E8%AF%A2%E8%81%94%E7%9B%9F-ucdrs-%E6%88%96%E8%AF%BB%E7%A7%80-duxiu-%E8%8E%B7%E5%8F%96ssid-dxid-%E4%BB%8E%E4%B8%AD%E7%BE%8E%E7%99%BE%E4%B8%87-cadal-%E8%8E%B7%E5%8F%96ssno-%E6%8F%90%E4%BE%9Bucdrs-duxiu-cadal%E5%88%B0%E8%B1%86%E7%93%A3%E5%9B%BE%E4%B9%A6%E7%9A%84%E9%93%BE%E6%8E%A5
    • 淘寶書商為啥什么書都能找到:揭秘代找PDF背后的真相 :https://mp.weixin.qq.com/s/7SX-Oztgx2q76AN5YpntTA
    • 下載超星或讀秀圖書時,怎么搞定完整書簽? :https://blog.csdn.net/youthlzu/article/details/24514703

    1.2.2 書簽格式化

    ? ==最初獲取的書簽結構化程度,很大程度決定了后期格式化用的時間。==根據經驗,書簽格式化有三個小點,書簽層級每級書簽樣式頁碼偏移

    • 書簽層級

      ? 以《人工智能在信用債投資領域的應用 Python語言實踐》(SSID: 14545152)這本書為例,見下圖,這是從書簽獲取小工具2015.05.05【晴天軟件】獲得的初步整理的書簽。另外規定對于書簽的層級一律以Tab來區分,一級書簽前面沒有Tab,二級書簽前面有1個Tab,三級書簽則有2個Tab

      ? 從中可以看出,除對一級書簽(即按章開頭的那個第*章),其它書簽均格式化為二級書簽,其中標注的第6行和第31行應分別為三級書簽和一級書簽,如下圖為修正好的書簽

    • 每級書簽樣式

      ? 還是以同一本書為例看書簽樣式問題,注意第4行,第2章 機器學習,標號與標題中間有兩個空格;第6行,2.1.1有監督機器學習,標號與標題中間則沒有空格;第11行,第3章 基于TensorFlow用Keras做深度學習,里面的英文單詞是應該首字母大寫還是按原樣輸出,后面的附錄那節同第一個問題。

      ? 這個按照每個人的審美不同,具體怎么弄,得看你們自己的選擇

      ? 個人的審美是,標號與標題之間只留一個空格,英文單詞全部統一成小寫,雖然按原樣輸出就挺不錯的,但加了這么多PDF的書簽,最終還是選擇統一單詞的風格,結果如下圖

    • 頁碼偏移

      ? 超星的書簽應該也是從目錄這部分OCR提取的,見下圖,但其中的頁碼和實際的頁碼有偏移(因為目錄里面的頁碼是從正文開始算的,而實際的書簽引用頁碼必須是從第一開始的絕對頁碼),第二章在目錄里是頁碼是6,而實際絕對頁碼是16,二者相差10,加書簽時必須補上這個頁碼,見第二張圖。

      ? 所有正文之后的頁碼必須+10進行修正,如下圖

    1.3 工具使用限制

    ? 在最開始已經介紹,本工具只能進行書簽部分格式化,還有一部分是需要手工操作的,特別是對于從非書簽獲取小工具2015.05.05【晴天軟件】獲得的書簽,程序處理會有很大問題,,,

    • 從書簽獲取小工具2015.05.05【晴天軟件】獲取書簽

      ? 如下圖紅框,書簽層級是通過數字標號來定位的,但如下圖框中,書簽部分前面沒有標號,所以沒辦法分層級。**最后的處理辦法是對所有不能通過其特定標識分層級的,全部默認分到二級書簽。**之后就得自己去修正正確的層級。

    • 從其它處獲得的書簽

      ? 如下圖,一些新書是沒有錄入庫的,只能從其它地方拿書簽了。

      ? 下面是從京東商城的商品界面,可以看到目錄,

      ? 復制到TXT文檔里面,可以發現其中標簽與頁碼之間有點符號,另外還有空行,如果需要用這個書簽的話,這個需要把里面的點符號還有空行刪了,這個需要用到正則表達式進行替換,不過注意別把書簽的數字標號之間的點刪除了。

      ? 試著把這個txt格式化一下,如圖,箭頭所指的點沒刪除,后面有時間再優化這個問題了

    二、使用方式

    2.1 工具介紹

  • 工具結構

    #目錄樹 . ├── Config │ └── config.yaml #配置文件 ├── Notepad3 │ ├── Notepad3.exe #協同工具-文本編輯器 │ ├── Notepad3.ini │ └── lng │ ├── np3lng.dll │ └── zh-CN │ └── np3lng.dll.mui ├── format_bookmark.py #代碼-格式化書簽 ├── pdf_add_bookmark_semi.exe #代碼-打包的exe ├── pdf_add_bookmark_semi.py #代碼-加書簽 └── 書簽獲取小工具2015.05.05【晴天軟件】.exe #協同工具-書簽獲取工具

    主要是三部分:代碼(format_bookmark.py、pdf_add_bookmark_semi.py、pdf_add_bookmark_semi.exe)、配置文件(Config/config.yaml)、以及協同工具(Notepad3/Notepad3.exe、書簽獲取小工具2015.05.05【晴天軟件】.exe)

    • 代碼

      一個用來格式化書簽format_bookmark.py,另一個用來加書簽pdf_add_bookmark_semi.py,最終打包成pdf_add_bookmark_semi.exe,具體分析見第三節

      主要實現功能

    • 可加4級書簽
    • 書簽格式化規則可自己配置
    • 配置文件

      Config/config.yaml,里面用于配置編輯器的啟用、使用哪個編輯器、首字母是否小寫、以及最重要的書簽格式化規則,具體的看配置文件吧

    • 協同工具

      協同工具一個是文本編輯器Notepad3也就是上圖所示的軟件,另一個是書簽獲取小工具2015.05.05【晴天軟件】.exe),第一節也介紹了,不過這個軟件會報毒,加了VMP的殼,這軟件我也不知道是誰寫的,,,應該沒毒吧,15年開發的,很多人也用了很久了。如果被殺軟殺了,記得加信任區。

  • 2.2 半個圖形化界面—可雙擊執行

  • SS號

    ? 上面有介紹通過油猴腳本獲取的方式,這里再介紹一個網站:http://115.159.153.83:19777/index.html

    在上面直接搜索書名,可獲得ss號。

  • 書簽獲取

    務必保存到要加書簽的pdf的那個文件夾,另外txt文件名要與pdf相同

  • 加書簽

    雙擊pdf_add_bookmark_semi.exe,會彈出控制臺界面

    用法,上面也提了,要輸入書簽文件名(txt那個文件)、正文頁偏移以及目錄頁碼(這個參數可選)

    直接將txt書簽文件拖到控制臺界面,然后填好頁偏移10

    書簽和頁偏移之間要留空格

    回車,會進行初步格式化,然后彈出書簽編輯頁面,之后進行修正

    附錄那要改成一級書簽,并去掉多余空格,書簽規定看1.2.2書簽格式化那節

    按上圖改完之后,記得關閉編輯器,然后到了加書簽界面,輸入y是加,n是不加書簽

    輸入y,回車加書簽(記得加書簽的時候,pdf不能被其它應用使用)

    按回車,退出,一切OK

  • 加書簽的程序也能發送到桌面,創建快捷方式,直接雙擊

  • 2.3 命令行

    和上面一樣的,只是前面多了執行的解釋器和py文件

    python pdf_add_bookmark_semi.py "C:\Users\acer\Desktop\Notes\安全\Blog\test\人工智 能在信用債投資領域的應用 Python語言實踐.txt" 10

    另外注意安裝Python模塊pikepdf、colorama

    2.4 下載鏈接

    Github https://github.com/Davy-Zhou/pdf_add_bookmark_semi

    三、代碼實現

    下次吧,寫文檔也累了

  • 四、TODO

    • 書簽獲取有點花時間,爭取下次自動化獲取
    • 書簽頁碼偏移部分可自動識別
    • 界面美化
    • 書簽格式化規則更新

    總結

    以上是生活随笔為你收集整理的半自动化给PDF加书签-Python实现-可双击执行-上篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。