摘要:雖然現(xiàn)在市面上有很多轉(zhuǎn)軟件,比如,但大多數(shù)的軟件是要收費的,并且價格不菲。于是乎我就想到了利用來寫個程序,把轉(zhuǎn)成文檔。具體的程序邏輯,可以去查看原文。本文首發(fā)于公眾號癡海,每天分享干貨,后臺回復,領(lǐng)取最新教程。
閱讀文本大概需要 6 分鐘。
現(xiàn)在網(wǎng)上有很多文檔是 pdf 格式,雖然這個格式閱讀起來很方便,并且里面的內(nèi)容不會亂掉,但相應(yīng)的我們就無法修改里面的內(nèi)容。雖然現(xiàn)在市面上有很多 pdf 轉(zhuǎn) word 軟件,比如 wps,但大多數(shù)的軟件是要收費的,并且價格不菲。
前些天就有人叫我?guī)退?pdf 文檔轉(zhuǎn)成 word 的文檔。因為 pdf 文檔里面的內(nèi)容有很多,如果全部打印的話,費用還是挺高的。所以她想把里面的內(nèi)容格式修改下,比如行間距,字間距等等。通過這樣的修改,可以把文檔的頁數(shù)減少很多,這樣就省下不少的錢。
于是乎我就想到了利用 python 來寫個程序,把 pdf 轉(zhuǎn)成 word 文檔。秉承著不要重復造輪子的想法,我首先在網(wǎng)上搜索了下。果然已經(jīng)有人寫好了,我們直接拿來用就行。程序一共只有 60 行代碼,使用也非常的簡單,
程序源代碼
import?os from?configparser?import?ConfigParser from?io?import?StringIO from?io?import?open from?concurrent.futures?import?ProcessPoolExecutor from?pdfminer.pdfinterp?import?PDFResourceManager from?pdfminer.pdfinterp?import?process_pdf from?pdfminer.converter?import?TextConverter from?pdfminer.layout?import?LAParams from?docx?import?Document def?read_from_pdf(file_path): ????with?open(file_path,?"rb")?as?file: ????????resource_manager?=?PDFResourceManager() ????????return_str?=?StringIO() ????????lap_params?=?LAParams() ????????device?=?TextConverter( ????????????resource_manager,?return_str,?laparams=lap_params) ????????process_pdf(resource_manager,?device,?file) ????????device.close() ????????content?=?return_str.getvalue() ????????return_str.close() ????????return?content def?save_text_to_word(content,?file_path): ????doc?=?Document() ????for?line?in?content.split(" "): ????????paragraph?=?doc.add_paragraph() ????????paragraph.add_run(remove_control_characters(line)) ????doc.save(file_path) def?remove_control_characters(content): ????mpa?=?dict.fromkeys(range(32)) ????return?content.translate(mpa) def?pdf_to_word(pdf_file_path,?word_file_path): ????content?=?read_from_pdf(pdf_file_path) ????save_text_to_word(content,?word_file_path) def?main(): ????config_parser?=?ConfigParser() ????config_parser.read("config.cfg") ????config?=?config_parser["default"] ????tasks?=?[] ????with?ProcessPoolExecutor(max_workers=int(config["max_worker"]))?as?executor: ????????for?file?in?os.listdir(config["pdf_folder"]): ????????????extension_name?=?os.path.splitext(file)[1] ????????????if?extension_name?!=?".pdf": ????????????????continue ????????????file_name?=?os.path.splitext(file)[0] ????????????pdf_file?=?config["pdf_folder"]?+?"/"?+?file ????????????word_file?=?config["word_folder"]?+?"/"?+?file_name?+?".docx" ????????????print("正在處理:?",?file) ????????????result?=?executor.submit(pdf_to_word,?pdf_file,?word_file) ????????????tasks.append(result) ????while?True: ????????exit_flag?=?True ????????for?task?in?tasks: ????????????if?not?task.done(): ????????????????exit_flag?=?False ????????if?exit_flag: ????????????print("完成") ????????????exit(0) if?__name__?==?"__main__": ????main()使用方法
首先去 github 上把項目 clone 或下載項目到本地.
github : https://github.com/python-fan...
[email protected]:simpleapples/pdf2word.git
然后進入項目目錄,建立虛擬環(huán)境,并安裝依賴。
pip?install?-r?requirements.txt
最后修改 config.cfg 文件,指定存放 pdf 和 word 文件的文件夾,以及同時工作的進程數(shù),就可以執(zhí)行 python main.py。
具體的程序邏輯,可以去查看原文。作者都分析的很詳細。
https://zhuanlan.zhihu.com/p/...。
本文首發(fā)于公眾號「癡?!?,每天分享 Python 干貨,后臺回復「1024」,領(lǐng)取 2018 最新 Python 教程。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42020.html
摘要:今天我們來說一個非常實用的例子,小菜接到組長老王的一個任務(wù),安排一個新的活,這個活是這樣的老王小菜啊,你幫我寫一個登入腳本,跑十幾條命令到服務(wù)器上,然后存一下日志。這個時候,小菜偷偷的瞄了一眼組長老王,常舒一口氣,總于寫完了。 Python學了好幾年,發(fā)現(xiàn)功力還是那樣,很多同學經(jīng)常這樣抱...
摘要:為啥你天天刷抖音一點都不煩,因為你覺得視頻好看你有興趣啊。比如我們說你玩是不是要開始搭建一個自己的網(wǎng)站,是不是可以自己寫一個小的腳本來自動發(fā)消息給你的女朋友等等,通過這樣的小例子來慢慢的培養(yǎng)自己的學習的興趣。學習,切勿貪快貪多。 大家好,我是菜鳥哥! 周末啦,跟大家聊一下我們粉絲團的情況...
摘要:但發(fā)現(xiàn)導出來的沒有高亮語法沒有語法高亮咋看啊,所以到這里我就放棄了,將就用一下博客園生成的吧爬蟲學習上面提供的接口是一個生成一個文件,我是不可能一個一個將鏈接和標題放上去生成的因為博客園上發(fā)的也將近篇了。 前言 只有光頭才能變強 之前有讀者問過我:3y你的博客有沒有電子版的呀?我想要份電子版的。我說:沒有啊,我沒有弄過電子版的,我這邊有個文章導航頁面,你可以去文章導航去找來看呀..然后...
閱讀 2159·2021-11-22 15:22
閱讀 1299·2021-11-11 16:54
閱讀 1830·2021-09-23 11:32
閱讀 3021·2021-09-22 10:02
閱讀 1781·2019-08-30 12:59
閱讀 1095·2019-08-29 16:27
閱讀 631·2019-08-29 13:21
閱讀 2470·2019-08-28 17:57