我的pdf显示的都是英文,pdf里的英文怎么翻译

  我的pdf显示的都是英文,pdf里的英文怎么翻译

  作为只读文档,直接翻译pdf是不现实的。等我们学了Python,这个问题就迎刃而解了。

  前期准备工作:

  

  翻译界面:api被称为。

  

  Pdfminer 3k: pdfminer3k是pdf miner的Python 3端口。PDFMiner是一个从PDF文档中提取信息的工具。与其他PDF相关工具不同,它完全专注于获取和分析文本数据。PDFMiner允许您获取文本在页面中的确切位置,以及其他信息,如字体或线条。它包括一个PDF转换器,可以将PDF文件转换为其他文本格式(如HTML)。它有一个可扩展的PDF解析器,可以用于文本分析之外的其他目的。

  解析PDF至少需要两个类:PDFParserPDFDocument, PDF parser从文件中提取数据,PDFDocument保存数据。此外,还需要PDFPageInterpreter来处理页面内容,由PDFDevice转换成我们需要的内容。PDFResourceManager用于保存字体或图片等共享内容。

  安装地点:pip install pdfminer3k

  

  

  前期工作做好之后,就可以开始写代码了。

  # -*-编码: u

  tf-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 = "http://api.fanyi.baidu.com/api/trans/vip/translate"

  api_id = "" ##申请的百度翻译接口的id

  cyber = "" ##申请的百度翻译接口的password

  pdffile = "multinet.pdf" ##处理的pdf

  ENtextfile = "ENmultinet.txt" ##存储提取的txt

  CNtextfile = "CNmultinet.txt" ##存储翻译的结果

  isTranslate = False ##是否将提取的英文翻译为中文

  ## 处理PDF

  ## 读取PDF的内容 filename是待处理的PDF的名字

  ###使用PDFminer读取

  def getDataUsingPyPDF(filename):

   parser = PDFParser(open(pdffile,'rb')) #以二进制打开文件 ,并创建一个pdf文档分析器

   doc = PDFDocument() ##创建一个pdf文档

   #将文档对象和连接分析器连接起来

   parser.set_document(doc)

   doc.set_parser(parser)

   doc.initialize()

   #判断该pdf是否支持txt转换

   if doc.is_extractable:

   #创建一个PDF设备对象

   rsrcmgr = PDFResourceManager()

   #创建一个pdf设备对象

   laparamas = LAParams()

   device = PDFPageAggregator(rsrcmgr, laparams=laparamas)

   #创建一个PDF解释器对象

   interpreter = PDFPageInterpreter(rsrcmgr, device)

   contents = "" #保存读取的text

   #依次读取每个page的内容

   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("翻译结束,ok")

  

学会了的小伙伴可以动手尝试啦。更多Python学习推荐:PyThon学习网教学中心

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • kotlon协程,深入理解kotlin协程pdf,一文彻底搞懂Kotlin中的协程
  • 深入解析C#(第4版),深入解析css pdf,深入解析contentWindow, contentDocument
  • java 反射机制原理与用法详解视频,java 反射机制原理与用法详解pdf
  • java 反射机制原理与用法详解视频,java 反射机制原理与用法详解pdf,Java 反射机制原理与用法详解
  • ,,Java使用iTextPDF生成PDF文件的实现方法
  • ,,Python利用PyMuPDF实现PDF文件处理
  • 漫画算法小灰的算法之旅pdf,漫画算法2-小灰的算法进阶
  • devops和自动化运维实践 PDF,devops思想在运维方面的具体实践
  • pdf如何去除水印,pdf去水印的三种方法
  • 把a4的内容打印成a3小册子,a4的pdf文档如何打印成a3
  • nlp自然语言处理入门pdf,精通python自然语言处理 pdf
  • 容器docker基本操作,每天5分钟玩转docker容器技术 pdf
  • sklearn中文手册pdf下载,sklearn库模块及函数
  • 留言与评论(共有 条评论)
       
    验证码: