使用Azure AI Translator Python SDK翻译PDF丢失项目符号问题求助
Azure AI Translator SDK翻译PDF项目符号丢失的问题解决经验
我之前也碰到过这个问题,分享几个可行的解决办法和相关体验:
- 先提取PDF结构化内容再翻译:直接把PDF提取的纯文本喂给文本翻译SDK,项目符号很容易和内容混在一起被忽略。用
pdfplumber或PyPDF2这类工具提取文本时,主动识别项目符号行(比如匹配•、-、*开头的行),给这些行保留明确的项目符号标记后再传给翻译API。示例代码:
import pdfplumber from azure.ai.translation.text import TextTranslationClient from azure.core.credentials import AzureKeyCredential # 提取并保留项目符号格式 processed_lines = [] with pdfplumber.open("target.pdf") as pdf: for page in pdf.pages: raw_lines = page.extract_text().split("\n") for line in raw_lines: stripped_line = line.strip() # 根据PDF实际使用的项目符号调整匹配规则 if stripped_line.startswith(("•", "-", "*")): processed_lines.append(f"- {stripped_line[1:].strip()}") else: processed_lines.append(stripped_line) formatted_text = "\n".join(processed_lines) # 调用翻译API client = TextTranslationClient( endpoint="你的Azure翻译服务端点", credential=AzureKeyCredential("你的密钥") ) translation_result = client.translate(content=[formatted_text], to="目标语言代码") translated_content = translation_result[0]['translations'][0]['text']
改用文档翻译API:Azure的Document Translation API是专门针对完整文档的翻译服务,支持直接上传PDF、Word等格式文件,翻译后会完整保留原始排版,包括项目符号、列表层级这些结构。身边不少朋友改用这个API后,完全没再遇到格式丢失的问题。
手动标记格式兜底:如果必须用文本翻译SDK,可以在提取文本时给列表项加上特殊标记(比如
[LIST]前缀),翻译完成后再把标记替换回项目符号,避免翻译过程中格式信息被抹除。
另外也见过有用户反馈,只要PDF本身的项目符号是标准排版(不是图片格式的符号),用文档翻译API基本不会出现丢失的情况;但如果是扫描版PDF,需要先做OCR提取结构化文本再处理,不然不管用哪个API都容易丢格式。
内容的提问来源于stack exchange,提问作者ryan pickles
相关产品推荐
相关产品推荐

