代码之家  ›  专栏  ›  技术社区  ›  Bastin Robin

如何在使用Python将内容从英语转换为法语后保留pdf布局

  •  -1
  • Bastin Robin  · 技术社区  · 8 年前

    我正在开发一个简单的应用程序,它将帮助我将所有包含英文文本的pdf文件转换为pdf格式的法文文本。我研究了一个简单的概念证明,它可以帮助我迭代给定的文件,并将所有文本转换为法语。现在,我坚持将转换后的法语文本保存为pdf格式,其结构与原始英语版本相似。

    import PyPDF2
    from googletrans import Translator
    translator = Translator()
    
    read_pdf = PyPDF2.PdfFileReader(open('any_english.pdf', 'rb'))
    write_pdf = PyPDF2.PdfFileWriter()
    number_of_pages = read_pdf.getNumPages()
    
    for i in range(number_of_pages):
        page = read_pdf.getPage(i)
        page_content = page.extractText()
        print translator.translate(page_content, dest='fr').text
    
        // Save the converted version text in french into a pdf conserving structure as original pdf
    

    **注意事项

    pdf中的所有内容都是文本格式,而不是图像。

    3 回复  |  直到 8 年前
        1
  •  3
  •   mfitzp    8 年前

    在Python中,没有简单的方法可以打开、编辑和重写PDF。但是,根据PDF/结构的复杂性,您可能会成功地将PDF转换为HTML、翻译,然后从HTML生成PDF。

    要将PDF转换为HTML,有 pdf2html 它有一个基本的 Python wrapper .

    翻译完成后,您可以使用以下方法逆转此过程,并取得不同程度的成功:。 weasyprint , html2pdf (仅限Mac), wkhtmltopdf (需要Qt)。

        2
  •  1
  •   Induprasad    8 年前

    基本上,您不能直接创建特定格式的PDF文件。 但您可以尝试以xhtml格式编写数据,然后将其转换为。使用xhtml2pdf的pdf。 希望这对您的需求有所帮助。

        3
  •  0
  •   Henrique    6 年前

    您可以使用 textract

    import textract
    text = textract.process('path/to/a.pdf', language='fr')
    

    默认情况下,它保留布局

    推荐文章