如何用Python翻譯pdf中的英文-創(chuàng)新互聯(lián)

這篇文章主要介紹了如何用Python翻譯pdf中的英文,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

我們提供的服務有:成都網(wǎng)站建設、網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、修武ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的修武網(wǎng)站制作公司

前期準備工作:

翻譯接口: 調(diào)用的是api

pdfminer3k: pdfminer3k是pdfminer的Python 3端口。 PDFMiner是一種從PDF文檔中提取信息的工具。 與其他PDF相關(guān)工具不同,它完全專注于獲取和分析文本數(shù)據(jù)。 PDFMiner允許獲取頁面中文本的確切位置,以及字體或線條等其他信息。 它包括一個PDF轉(zhuǎn)換器,可以將PDF文件轉(zhuǎn)換為其他文本格式(如HTML)。 它有一個可擴展的PDF解析器,可用于其他目的而不是文本分析。

要解析PDF至少需要兩個類:PDFParser和 PDFDocument,PDFParser 從文件中提取數(shù)據(jù),PDFDocument保存數(shù)據(jù)。另外還需要PDFPageInterpreter去處理頁面內(nèi)容,PDFDevice將其轉(zhuǎn)換為我們所需要的。PDFResourceManager用于保存共享內(nèi)容例如字體或圖片。

安裝:pip install pdfminer3k

前期工作準備好后,即可開始代碼編寫。

# -*- coding: utf-8 -*- import sys import io """ Created on Sun Mar 3 12:22:49 2019 @author: Ben """ import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal,LAParams from pdfminer.pdfinterp import PDFTextExtractionNotAllowed #from PyPDF2.pdf import PdfFileReader, PdfFileWriter, ContentStream import requests import string import time import hashlib import json ##初始化 api_url = "/tupian/20230522/translate" api_id = "" ##申請的百度翻譯接口的id cyber = "" ##申請的百度翻譯接口的password pdffile = "multinet.pdf" ##處理的pdf ENtextfile = "ENmultinet.txt" ##存儲提取的txt CNtextfile = "CNmultinet.txt" ##存儲翻譯的結(jié)果 isTranslate = False ##是否將提取的英文翻譯為中文 ## 處理PDF ## 讀取PDF的內(nèi)容 filename是待處理的PDF的名字 ###使用PDFminer讀取 def getDataUsingPyPDF(filename): parser = PDFParser(open(pdffile,'rb')) #以二進制打開文件 ,并創(chuàng)建一個pdf文檔分析器 doc = PDFDocument() ##創(chuàng)建一個pdf文檔 #將文檔對象和連接分析器連接起來 parser.set_document(doc) doc.set_parser(parser) doc.initialize() #判斷該pdf是否支持txt轉(zhuǎn)換 if doc.is_extractable: #創(chuàng)建一個PDF設備對象 rsrcmgr = PDFResourceManager() #創(chuàng)建一個pdf設備對象 laparamas = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparamas) #創(chuàng)建一個PDF解釋器對象 interpreter = PDFPageInterpreter(rsrcmgr, device) contents = "" #保存讀取的text #依次讀取每個page的內(nèi)容 for page in doc.get_pages(): interpreter.process_page(page) layout = device.get_result() # 這里layout是一個LTPage對象 里面存放著 這個page解析出的各種對象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性, #在windows下,新文件的默認編碼是gbk編碼,所以我們在寫入文件的時候需要設置一個編碼格式,如下: for x in layout: if(isinstance(x,LTTextBoxHorizontal)):  results = x.get_text()  results = results.replace("\n","") #去掉換行符 因為排版問題 有的換行導致句子中斷  contents += (results) ##為了看著舒服,每一句為一行 saveText(contents.replace(".",".\n"),ENtextfile) return contents ## 將讀取的content以txt格式存放到本地 def saveText(content,Textfile): with open(Textfile,"w",encoding='utf-8') as f: f.write(content) ## 翻譯從pdf提取的content def translate(content): salt = str(time.time())[:10] final_sign = str(api_id) + content + salt+ cyber final_sign = hashlib.md5(final_sign.encode("utf-8")).hexdigest() # from to 代表翻譯的語言 paramas = { 'q':content, 'from':'en', 'to':'zh', 'appid':'%s'%api_id, 'salt':'%s'%salt, 'sign':'%s'%final_sign } my_url = api_url+'?appid='+str(api_id)+'&q='+content+'&from='+'zh'+'&to='+'en'+'&salt='+salt+'&sign='+final_sign response = requests.get(api_url,params = paramas).content content = str(response,encoding = "utf-8") json_reads = json.loads(content) return json_reads['trans_result'][0]['dst']+" " ### content = getDataUsingPyPDF(pdffile) print("讀取pdf成功,將其保存為txt格式") if(isTranslate): clist = content.split(".") #split() 通過指定.將英文分成多個句子 i = 0 chinese = "" print("一共有"+str(clist.__len__())+"行需要翻譯") print("開始翻譯...請耐心等待")  while(i<clist.__len__()):
chinese="" +="(translate(clist[i]).replace("\n","。"))"
#chinese=""
i+="1"
savetext(chinese,cntextfile)=""
print("翻譯結(jié)束,ok")

感謝你能夠認真閱讀完這篇文章,希望小編分享如何用Python翻譯pdf中的英文內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)網(wǎng)站設計公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!

分享標題:如何用Python翻譯pdf中的英文-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://bm7419.com/article2/diciic.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站商城網(wǎng)站、響應式網(wǎng)站、標簽優(yōu)化、定制開發(fā)App設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化