使用 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')
默认情况下它保留布局
我正在开发一个简单的应用程序,它将帮助我将所有包含英文文本的 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')
默认情况下它保留布局