摘要:雖然現(xiàn)在市面上有很多轉(zhuǎn)軟件,比如,但大多數(shù)的軟件是要收費(fèi)的,并且價(jià)格不菲。于是乎我就想到了利用來寫個(gè)程序,把轉(zhuǎn)成文檔。具體的程序邏輯,可以去查看原文。本文首發(fā)于公眾號癡海,每天分享干貨,后臺回復(fù),領(lǐng)取最新教程。
閱讀文本大概需要 6 分鐘。
現(xiàn)在網(wǎng)上有很多文檔是 pdf 格式,雖然這個(gè)格式閱讀起來很方便,并且里面的內(nèi)容不會亂掉,但相應(yīng)的我們就無法修改里面的內(nèi)容。雖然現(xiàn)在市面上有很多 pdf 轉(zhuǎn) word 軟件,比如 wps,但大多數(shù)的軟件是要收費(fèi)的,并且價(jià)格不菲。
前些天就有人叫我?guī)退?pdf 文檔轉(zhuǎn)成 word 的文檔。因?yàn)?pdf 文檔里面的內(nèi)容有很多,如果全部打印的話,費(fèi)用還是挺高的。所以她想把里面的內(nèi)容格式修改下,比如行間距,字間距等等。通過這樣的修改,可以把文檔的頁數(shù)減少很多,這樣就省下不少的錢。
于是乎我就想到了利用 python 來寫個(gè)程序,把 pdf 轉(zhuǎn)成 word 文檔。秉承著不要重復(fù)造輪子的想法,我首先在網(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 上把項(xiàng)目 clone 或下載項(xiàng)目到本地.
github : https://github.com/python-fan...
git?clone?git@github.com:simpleapples/pdf2word.git
然后進(jìn)入項(xiàng)目目錄,建立虛擬環(huán)境,并安裝依賴。
pip?install?-r?requirements.txt
最后修改 config.cfg 文件,指定存放 pdf 和 word 文件的文件夾,以及同時(shí)工作的進(jìn)程數(shù),就可以執(zhí)行 python main.py。
具體的程序邏輯,可以去查看原文。作者都分析的很詳細(xì)。
https://zhuanlan.zhihu.com/p/...。
本文首發(fā)于公眾號「癡海」,每天分享 Python 干貨,后臺回復(fù)「1024」,領(lǐng)取 2018 最新 Python 教程。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42020.html
摘要:今天我們來說一個(gè)非常實(shí)用的例子,小菜接到組長老王的一個(gè)任務(wù),安排一個(gè)新的活,這個(gè)活是這樣的老王小菜啊,你幫我寫一個(gè)登入腳本,跑十幾條命令到服務(wù)器上,然后存一下日志。這個(gè)時(shí)候,小菜偷偷的瞄了一眼組長老王,常舒一口氣,總于寫完了。 Python學(xué)了好幾年,發(fā)現(xiàn)功力還是那樣,很多同學(xué)經(jīng)常這樣抱...
摘要:為啥你天天刷抖音一點(diǎn)都不煩,因?yàn)槟阌X得視頻好看你有興趣啊。比如我們說你玩是不是要開始搭建一個(gè)自己的網(wǎng)站,是不是可以自己寫一個(gè)小的腳本來自動發(fā)消息給你的女朋友等等,通過這樣的小例子來慢慢的培養(yǎng)自己的學(xué)習(xí)的興趣。學(xué)習(xí),切勿貪快貪多。 大家好,我是菜鳥哥! 周末啦,跟大家聊一下我們粉絲團(tuán)的情況...
摘要:但發(fā)現(xiàn)導(dǎo)出來的沒有高亮語法沒有語法高亮咋看啊,所以到這里我就放棄了,將就用一下博客園生成的吧爬蟲學(xué)習(xí)上面提供的接口是一個(gè)生成一個(gè)文件,我是不可能一個(gè)一個(gè)將鏈接和標(biāo)題放上去生成的因?yàn)椴┛蛨@上發(fā)的也將近篇了。 前言 只有光頭才能變強(qiáng) 之前有讀者問過我:3y你的博客有沒有電子版的呀?我想要份電子版的。我說:沒有啊,我沒有弄過電子版的,我這邊有個(gè)文章導(dǎo)航頁面,你可以去文章導(dǎo)航去找來看呀..然后...
閱讀 2150·2021-11-22 15:22
閱讀 1298·2021-11-11 16:54
閱讀 1826·2021-09-23 11:32
閱讀 3016·2021-09-22 10:02
閱讀 1779·2019-08-30 12:59
閱讀 1094·2019-08-29 16:27
閱讀 629·2019-08-29 13:21
閱讀 2468·2019-08-28 17:57