importfitzdoc=fitz.open("input.pdf")forpageindoc:blocks=page.get_text("blocks")forbinblocks:rect=fitz.Rect(b[:4])src_text=b[4]tgt_text=translate(src_text)#你的翻译函数page.insert_textbox(rect,tgt_text,fontname="helv",fontsize=12,color=(0,0,0),align=0)doc.save("translated.pdf")排版难点在于,同一句子翻译前后长度会有差异,有时候会很大。
一般来说,如果中英文长度差很多,就在这个盒子里自动换行、微调字号或字距,让文本刚好塞满不溢出。
说起来容易,真正做好,需要打磨。
总结
这篇文章介绍了翻译后保持原始排版不乱的完整方案与实践体验,介绍了阿里通义翻译智能体在这方面很强。
通义翻译智能体其在图片与多页 PDF 上,不仅翻译准确,还能让译文排版与原文高度一致。
背后的排版原理,将 PDF 视为由多个文字矩形框组成,通过提取每个框的坐标、字体和内容,逐块翻译后再回填到原位置。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |