Нет описания

Byaidu 2edd70aa21 Merge branch 'main' of https://github.com/Byaidu/PDFMathTranslate 1 год назад
.github 610bef1ba8 Update issue templates 1 год назад
docs f9be07cec2 doc (readme): cmd explained 1 год назад
pdf2zh 882ce19fdd fix: gui addr 1 год назад
.gitignore 3fad3b31d1 feat (gui): add gui support using gradio 1 год назад
Dockerfile 993f9d8ae9 fix: docker 1 год назад
Dockerfile.Demo 47ee968264 feat (demo): add dockerfile for demo 1 год назад
LICENSE 04e1dedd8e Update LICENSE 1 год назад
README.md 3eeaf3e643 doc: demo badge 1 год назад
README_zh-CN.md 3eeaf3e643 doc: demo badge 1 год назад
app.json 73e1d5291f feat (docker): app.json 1 год назад
setup.py 60a3264acc chore: use huggingface_hub 1 год назад

README.md

English | [简体中文](README_zh-CN.md) PDF2ZH

PDFMathTranslate

PDF scientific paper translation and bilingual comparison.

Feel free to provide feedback in GitHub Issues or Telegram Group.

Updates

Demo 🌟

You can try our demo on HuggingFace without installation.
Note that the computing resources of the demo are limited, so please avoid abusing them.

Installation and Usage

We provide three methods for using this project: commanline, GUI, and Docker.

Method I. Commandline

  1. Python installed (3.8 <= version <= 3.12)
  2. Install our package

      pip install pdf2zh
    
  3. Use:

      pdf2zh document.pdf
    

Method II. GUI

  1. Python installed (3.8 <= version <= 3.12)
  2. Install our package

      pip install pdf2zh
    
  3. Start using in browser:

      pdf2zh -i
    
  4. If your browswer has not been started automatically, goto

    http://localhost:7860/
    

See documentation for GUI for more details.

Method III. Docker

  1. Pull and run:

    docker pull byaidu/pdf2zh
    docker run -p 7860:7860 byaidu/pdf2zh
    
  2. Open in browser:

    http://localhost:7860/
    

Advanced Options

Execute the translation command in the command line to generate the translated document example-zh.pdf and the bilingual document example-dual.pdf in the current directory. Use Google as the default translation service.

cmd

In the following table, we list all advanced options for reference:

Option Function Example
-i Enter GUI pdf2zh -i
-p Partial document translation pdf2zh example.pdf -p 1
-li Source language pdf2zh example.pdf -li en
-lo Target language pdf2zh example.pdf -lo zh
-s Translation service pdf2zh example.pdf -s deepl
-t Multi-threads pdf2zh example.pdf -t 1
-f, -c Exceptions pdf2zh example.pdf -f "(MS.*)"

Some services require setting environmental variables. Please refer to ChatGPT for how to set environment variables.

Full / partial document translation

  • Entire document

    pdf2zh example.pdf
    
  • Part of the document

    pdf2zh example.pdf -p 1-3,5
    

Specify source and target languages

See Google Languages Codes, DeepL Languages Codes

pdf2zh example.pdf -li en -lo ja

Translate with Different Services

  • DeepL

See DeepL

Set ENVs to construct an endpoint like: {DEEPL_SERVER_URL}/translate

  • DEEPL_SERVER_URL (Optional), e.g., export DEEPL_SERVER_URL=https://api.deepl.com
  • DEEPL_AUTH_KEY, e.g., export DEEPL_AUTH_KEY=xxx

    pdf2zh example.pdf -s deepl
    
  • DeepLX

See DeepLX

Set ENVs to construct an endpoint like: {DEEPL_SERVER_URL}/translate

  • DEEPLX_SERVER_URL (Optional), e.g., export DEEPLX_SERVER_URL=https://api.deeplx.org
  • DEEPLX_AUTH_KEY, e.g., export DEEPLX_AUTH_KEY=xxx

    pdf2zh example.pdf -s deeplx
    
  • Ollama

See Ollama

Set ENVs to construct an endpoint like: {OLLAMA_HOST}/api/chat

  • OLLAMA_HOST (Optional), e.g., export OLLAMA_HOST=https://localhost:11434

    pdf2zh example.pdf -s ollama:gemma2
    
  • LLM with OpenAI compatible schemas (OpenAI / SiliconCloud / Zhipu)

See SiliconCloud, Zhipu

Set ENVs to construct an endpoint like: {OPENAI_BASE_URL}/chat/completions

  • OPENAI_BASE_URL (Optional), e.g., export OPENAI_BASE_URL=https://api.openai.com/v1
  • OPENAI_API_KEY, e.g., export OPENAI_API_KEY=xxx

    pdf2zh example.pdf -s openai:gpt-4o
    
  • Azure

See Azure Text Translation

Following ENVs are required:

  • AZURE_APIKEY, e.g., export AZURE_APIKEY=xxx
  • AZURE_ENDPOINT, e.g, export AZURE_ENDPOINT=https://api.translator.azure.cn/
  • AZURE_REGION, e.g., export AZURE_REGION=chinaeast2

    pdf2zh example.pdf -s azure
    

Translate wih exceptions

Use regex to specify formula fonts and characters that need to be preserved.

pdf2zh example.pdf -f "(CM[^RT].*|MS.*|.*Ital)" -c "(\(|\||\)|\+|=|\d|[\u0080-\ufaff])"

Specify threads

Use -t to specify how many threads to use in translation:

pdf2zh example.pdf -t 1

Preview

image

image

image

Acknowledgements

Contributors

Star History

Star History Chart