> [!CAUTION]
>
> Este documento está desactualizado, por favor no lo consultes.

<h2 id="toc">Tabla de contenido</h2>
El presente proyecto soporta dos tipos de APIs, todos los métodos necesitan Redis;

- [Llamadas funcionales en Python](#api-python)
- [Protocolos HTTP](#api-http)

---

<h2 id="api-python">Python</h2>

Como `pdf2zh` es un módulo instalado en Python, exponemos dos métodos para que otros programas los llamen en cualquier script de Python.

Por ejemplo, si deseas traducir un documento de inglés a chino usando Google Translate, puedes usar el siguiente código:

```python
from pdf2zh_next import translate, translate_stream

params = {
    'lang_in': 'en',
    'lang_out': 'zh',
    'service': 'google',
    'thread': 4,
}
```

Traducir con archivos:

```python
(file_mono, file_dual) = translate(files=['example.pdf'], **params)[0]
```

```bash
pdf2zh -i input.pdf -o output.pdf
```

[!NOTE]
If you want to translate a PDF file to another language, you can use the `-l` option to specify the [Language Code](#language-code). For example, to translate to Spanish, use `-l es`.

[!WARNING]
The output file will be overwritten if it already exists.

For more information, see [Documentation of Translation Services](#documentation-of-translation-services).

---

### Related Topics
- [Getting Start](#getting-start)
- [Installation](#installation)
- [Command Line](#command-line)
- [Usage](#usage)
- [Advanced](#advanced)
- [Support Languages](#support-languages)
- [Community](#community)
- [FAQ](#faq)

---

```bash
PDFMathTranslate -i input.pdf -o output.pdf
```

```python
with open('example.pdf', 'rb') as f:
    (stream_mono, stream_dual) = translate_stream(stream=f.read(), **params)
```

[⬆️ Volver al inicio](#toc)

---

<h2 id="api-http">HTTP</h2>

De una manera más flexible, puedes comunicarte con el programa usando protocolos HTTP, si:

1. Instalar y ejecutar el backend

   ```bash
   pip install pdf2zh_next[backend]
   pdf2zh_next --flask
   pdf2zh_next --celery worker
   ```

2. Usando protocolos HTTP de la siguiente manera:

   - Enviar tarea de traducción

     ```bash
     curl http://localhost:11008/v1/translate -F "file=@example.pdf" -F "data={\"lang_in\":\"en\",\"lang_out\":\"zh\",\"service\":\"google\",\"thread\":4}"
     {"id":"d9894125-2f4e-45ea-9d93-1a9068d2045a"}
     ```

- Verificar progreso

     ```bash
     curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a
     {"info":{"n":13,"total":506},"state":"PROGRESS"}
     ```

- Verificar progreso _(si está terminado)_

     ```bash
     curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a
     {"state":"SUCCESS"}
     ```

- Guardar archivo monolingual

     ```bash
     curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a/mono --output example-mono.pdf
     ```

- Guardar archivo bilingüe

     ```bash
     curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a/dual --output example-dual.pdf
     ```

- Interrumpir si está en ejecución y eliminar la tarea
     ```bash
     curl http://localhost:11008/v1/translate/d9894125-2f4e-45ea-9d93-1a9068d2045a -X DELETE
     ```

[⬆️ Volver al inicio](#toc)

---

<div align="right"> 
<h6><small>Parte del contenido de esta página ha sido traducido por GPT y puede contener errores.</small></h6>