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

How to conserve the pdf layout after converting content from English to French using Python

我正在开发一个简单的应用程序,它将帮助我将所有包含英文文本的 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中的所有内容都是文本格式,不是图片。

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

生成 PDF

要将 PDF 转换为 HTML,有 pdf2html which has a basic Python wrapper

翻译完成后,您可以使用例如weasyprint, html2pdf (Mac only), wkhtmltopdf(需要 Qt)。

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

您可以使用textract

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

默认情况下它保留布局