You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Aspose.Words转换含阿拉伯语的PDF到EPUB时乱码求助

解决Aspose.Words转换阿拉伯语PDF到EPUB的乱码问题

针对阿拉伯语文本转换EPUB出现乱码的问题,可尝试以下几种解决方案:

  • 确保系统存在PDF使用的阿拉伯语字体
    Aspose.Words转换时需要调用对应字体渲染文本,若系统缺少PDF内嵌的阿拉伯语字体,会用默认字体替代导致乱码。先通过PDF阅读器(如Adobe Acrobat)查看文档使用的字体,然后安装该字体到系统,或在代码中指定字体目录:

    import aspose.words as aw
    
    # 配置字体文件夹路径,替换为你的阿拉伯语字体所在目录
    font_settings = aw.FontSettings()
    font_settings.set_fonts_folder("path/to/arabic-font-directory", False)
    
    load_options = aw.LoadOptions()
    load_options.font_settings = font_settings
    
    doc = aw.Document("arabic.pdf", load_options)
    doc.save("Output.epub")
    
  • 启用RTL文本方向支持
    阿拉伯语属于从右到左(RTL)语言,需确保保存EPUB时保留文本方向配置:

    import aspose.words as aw
    
    doc = aw.Document("arabic.pdf")
    
    save_options = aw.saving.EpubSaveOptions()
    save_options.encoding = "utf-8"  # 指定UTF-8编码确保字符正确存储
    # 保留文档属性以维持RTL布局信息
    save_options.export_document_properties = True
    
    doc.save("Output.epub", save_options)
    
  • 验证PDF文本的可提取性
    若PDF是扫描件或文本以图像形式嵌入,Aspose.Words无法直接提取有效文本,会出现乱码。先尝试复制PDF中的阿拉伯语文本,若无法复制则需先进行OCR识别:

    import aspose.ocr as ocr
    import aspose.words as aw
    
    # 使用Aspose.OCR识别PDF中的阿拉伯语文本
    ocr_api = ocr.AsposeOcr()
    recognition_result = ocr_api.recognize_pdf("arabic.pdf")
    
    # 将识别结果保存为临时DOCX
    with open("temp_arabic.docx", "w", encoding="utf-8") as f:
        f.write(recognition_result.recognition_text)
    
    # 转换DOCX到EPUB
    doc = aw.Document("temp_arabic.docx")
    doc.save("Output.epub")
    
  • 升级到最新版Aspose.Words
    旧版本对RTL语言的支持可能存在缺陷,通过pip升级到最新版:

    pip install --upgrade aspose-words
    

内容的提问来源于stack exchange,提问作者Mrunal Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:42:22