通过保留格式Python翻译pdf文件

时间:2018-07-12 10:54:17

标签: python pdf docx

我正在尝试使用翻译API翻译PDF文件,并通过保持相同格式将其输出为PDF。我的方法是将PDF转换为word doc,然后翻译文件,然后将其转换回PDF。但是问题是,没有有效的方法将PDF转换为word。我正在尝试编写自己的程序,但是PDF有很多格式。因此,我想将需要一些工作来处理所有格式。所以我的问题是,有没有什么有效的方法可以在不丢失格式的情况下转换PDF,或者有没有将它们转换为docx的有效方法。我正在使用python作为编程语言。

2 个答案:

答案 0 :(得分:1)

可能不是。

实际上,PDF并不是机器可读或可编辑的。他们描述了格式化的,可布局的,可打印的页面。

答案 1 :(得分:1)

您可以在此处使用pdfminer代替API:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    fp.close()
    device.close()
    retstr.close()
    return text