mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Компоновка страниц PDF для складывания в буклет."
|
||||
i18n_source_hash: 8844b6d4fe96
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 447850c35077
|
||||
---
|
||||
|
||||
# Буклет PDF {#booklet-pdf}
|
||||
|
||||
Расположите страницы для дуплексной печати так, чтобы отпечатанные листы можно было сложить в буклет.
|
||||
|
||||
## Конечная точка API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/booklet-pdf`
|
||||
|
||||
Принимает multipart form data с файлом PDF и JSON-полем `settings`.
|
||||
|
||||
## Параметры {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | Нет | `2` | Страниц на лист: `2`, `4`, `6` или `8` |
|
||||
|
||||
## Пример запроса {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/booklet-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"perSheet": 2}'
|
||||
```
|
||||
|
||||
## Пример ответа {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2400000
|
||||
}
|
||||
```
|
||||
|
||||
## Примечания {#notes}
|
||||
|
||||
- Значение по умолчанию `perSheet: 2` размещает две страницы бок о бок на каждом листе, что является стандартной компоновкой буклета для дуплексной печати.
|
||||
- Пустые страницы добавляются автоматически, если общее количество страниц не кратно размеру листа.
|
||||
- Печатайте вывод двусторонним способом с переплётом по короткому краю, затем сложите и скрепите.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Уменьшение размера PDF-файла за счёт сжатия встроенных изображений."
|
||||
i18n_source_hash: a8bb0baaca25
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f57f5deacda5
|
||||
---
|
||||
|
||||
# Compress PDF {#compress-pdf}
|
||||
|
||||
Уменьшите размер PDF-файла за счёт понижения разрешения встроенных изображений. Выберите между ползунком качества и целевым размером файла.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/compress-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Нет | `"quality"` | Режим сжатия: `quality` или `targetSize` |
|
||||
| quality | integer | Нет | `75` | Качество сжатия, 1-100 (выше = меньше сжатие). Используется в режиме `quality` |
|
||||
| targetSizeKb | number | Нет | - | Целевой размер файла в килобайтах. Используется в режиме `targetSize` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
Сжатие по качеству:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"mode": "quality", "quality": 60}'
|
||||
```
|
||||
|
||||
Сжатие до целевого размера:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/compress-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"mode": "targetSize", "targetSizeKb": 500}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 5200000,
|
||||
"processedSize": 1800000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- В режиме `quality` более низкие значения дают меньшие файлы с большей потерей качества изображений.
|
||||
- В режиме `targetSize` бинарный поиск находит максимальное разрешение DPI, укладывающееся в запрошенный размер.
|
||||
- Если сжатие увеличило бы файл, исходные байты возвращаются без изменений.
|
||||
- Текст и векторное содержимое не затрагиваются; понижается разрешение только встроенных растровых изображений.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Обрезка всех страниц PDF с равномерным полем."
|
||||
i18n_source_hash: ffa1a2cee08d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5320aac7a3f2
|
||||
---
|
||||
|
||||
# Crop PDF {#crop-pdf}
|
||||
|
||||
Обрежьте все страницы PDF, применив равномерное поле и отсекая содержимое от каждого края одинаково.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/crop-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| margin | number | Нет | `20` | Равномерное поле обрезки в пунктах (0-2000) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/crop-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"margin": 50}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2440000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Значение поля задаётся в пунктах PDF (1 пункт = 1/72 дюйма).
|
||||
- Одно и то же поле применяется ко всем четырём краям каждой страницы.
|
||||
- Поле, равное `0`, убирает все существующие поля обрезки, показывая полный media box.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Извлечение выбранных страниц из PDF в новый документ."
|
||||
i18n_source_hash: e4a8fad31e0f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2ae6117eebfd
|
||||
---
|
||||
|
||||
# Extract Pages {#extract-pages}
|
||||
|
||||
Извлеките выбранные страницы из PDF в новый, меньший по размеру документ.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/extract-pages`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| range | string | Да | - | Диапазон страниц в синтаксисе qpdf, например `"1-5,8,10-z"` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/extract-pages \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"range": "1-5,8,10-z"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 3200000,
|
||||
"processedSize": 1100000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Диапазоны страниц используют синтаксис qpdf: `1-5` для страниц с 1 по 5, `z` для последней страницы, а запятые объединяют диапазоны (например, `1-3,7,10-z`).
|
||||
- Извлечённые страницы сохраняют исходное форматирование, аннотации и ссылки.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Запекание форм и аннотаций в содержимое страниц."
|
||||
i18n_source_hash: b25c2a2b6f40
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2ef7c4b8bff2
|
||||
---
|
||||
|
||||
# Flatten PDF {#flatten-pdf}
|
||||
|
||||
Запеките интерактивные поля форм и аннотации в содержимое страниц, получив статический PDF, который выглядит одинаково везде.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/flatten-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет настраиваемых параметров. Загрузите PDF, и все формы и аннотации будут сведены.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/flatten-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@form.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/form.pdf",
|
||||
"originalSize": 185000,
|
||||
"processedSize": 172000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат: `.pdf`.
|
||||
- Это быстрый (синхронный) инструмент, который возвращает результат напрямую.
|
||||
- Значения полей форм сохраняются в выходном файле как статический текст.
|
||||
- Аннотации (комментарии, выделения, стикеры) становятся частью содержимого страницы и больше не могут редактироваться.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: "Преобразование всех цветов в PDF в оттенки серого."
|
||||
i18n_source_hash: f327addb32d6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 9f9828be4de8
|
||||
---
|
||||
|
||||
# Grayscale PDF {#grayscale-pdf}
|
||||
|
||||
Преобразуйте все цвета в PDF в оттенки серого, получив чёрно-белую версию документа.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/grayscale-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом. Поле `settings` не требуется.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет параметров настроек. Загрузите PDF-файл напрямую.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/grayscale-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 3200000,
|
||||
"processedSize": 2800000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Все цветовые пространства (RGB, CMYK) преобразуются в оттенки серого, включая встроенные изображения, векторную графику и текст.
|
||||
- Выходной файл часто меньше исходного, поскольку данные в оттенках серого требуют меньше байтов на пиксель.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Линеаризация PDF для быстрого веб-просмотра (прогрессивная загрузка)."
|
||||
i18n_source_hash: 36280b478161
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 045906a6c1a3
|
||||
---
|
||||
|
||||
# Web-Optimize PDF {#web-optimize-pdf}
|
||||
|
||||
Линеаризуйте PDF, чтобы он мог прогрессивно загружаться и отображаться в веб-браузерах, не дожидаясь полного файла.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/linearize-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом. Поле `settings` не требуется.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет параметров настроек. Загрузите PDF-файл напрямую.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/linearize-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2460000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Линеаризация перестраивает внутреннюю структуру PDF так, чтобы первая страница отображалась до полной загрузки файла.
|
||||
- Выходной файл может быть немного больше исходного из-за добавленных данных линеаризации.
|
||||
- Уже линеаризованные PDF повторно линеаризуются без проблем.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Объединение нескольких PDF в один документ."
|
||||
i18n_source_hash: e82e389cb8b6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7bf1e96e1bb8
|
||||
---
|
||||
|
||||
# Merge PDFs {#merge-pdfs}
|
||||
|
||||
Объедините два или более PDF-файлов в один документ, сохраняя порядок страниц каждого исходного файла.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/merge-pdf`
|
||||
|
||||
Принимает данные multipart form с двумя или более PDF-файлами. Поле `settings` не требуется.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет параметров настроек. Просто загрузите два или более PDF-файлов.
|
||||
|
||||
| Ограничение | Значение |
|
||||
|------------|-------|
|
||||
| Минимум файлов | 2 |
|
||||
| Максимум файлов | 20 |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/merge-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document1.pdf" \
|
||||
-F "file=@document2.pdf" \
|
||||
-F "file=@document3.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/merged.pdf",
|
||||
"originalSize": 4500000,
|
||||
"processedSize": 4200000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Файлы объединяются в том порядке, в котором они загружены.
|
||||
- Требуется не менее двух PDF-файлов; при меньшем количестве запрос завершится ошибкой 400.
|
||||
- Максимальное количество входных файлов равно 20.
|
||||
- Зашифрованные PDF должны быть разблокированы перед объединением.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Размещение нескольких страниц PDF на одном листе (2-up, 4-up и т. д.)."
|
||||
i18n_source_hash: 9dd82737cb72
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: d435e250f7fc
|
||||
---
|
||||
|
||||
# N-up PDF {#n-up-pdf}
|
||||
|
||||
Разместите несколько страниц на одном листе, чтобы экономить бумагу при печати, например в раскладках 2-up или 4-up.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/nup-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | Нет | `2` | Страниц на лист: `2`, `3`, `4`, `8`, `9`, `12` или `16` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/nup-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"perSheet": 4}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2300000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Страницы располагаются в порядке чтения (слева направо, сверху вниз).
|
||||
- Размер выходной страницы совпадает с исходным; отдельные страницы масштабируются для размещения в сетке.
|
||||
- Документ из 20 страниц с `perSheet: 4` даёт вывод из 5 страниц.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Извлечение текста из PDF-документов с помощью OCR на базе ИИ."
|
||||
i18n_source_hash: 1431fcba180b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 563e222b9e12
|
||||
---
|
||||
|
||||
# PDF OCR {#pdf-ocr}
|
||||
|
||||
Извлекайте текст из PDF-документов с помощью оптического распознавания символов на базе ИИ. Поддерживает несколько уровней качества и языков. Требует установленного пакета функций OCR.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/ocr-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и необязательным JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| quality | string | Нет | `"balanced"` | Уровень качества OCR: `fast`, `balanced`, `best` |
|
||||
| language | string | Нет | `"auto"` | Язык документа: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
|
||||
| pages | string | Нет | `"all"` | Выбор страниц, например `"all"`, `"1-3"`, `"1,3,5"` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@scanned.pdf" \
|
||||
-F 'settings={"quality": "best", "language": "en", "pages": "1-5"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
Возвращает `202 Accepted`. Отслеживайте прогресс через SSE по адресу `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат: `.pdf`.
|
||||
- Это инструмент ИИ, требующий установленного **пакета функций OCR**. Если пакет не установлен, API возвращает `501 Not Implemented`.
|
||||
- Уровень качества `fast` использует более лёгкую модель для более быстрой обработки; `best` использует более точную модель ценой скорости.
|
||||
- Настройка языка `auto` пытается определить язык документа автоматически.
|
||||
- Вы можете указать конкретные страницы с помощью диапазонов (`"1-3"`), списков через запятую (`"1,3,5"`) или `"all"` для всех страниц.
|
||||
- Для PDF, которые уже содержат выделяемый текст, рассмотрите использование более быстрого инструмента [PDF to Text](./pdf-to-text).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Переупорядочивание страниц PDF с явным порядком страниц."
|
||||
i18n_source_hash: e961fc895b4b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5b8332f75c03
|
||||
---
|
||||
|
||||
# Organize PDF {#organize-pdf}
|
||||
|
||||
Переупорядочьте страницы PDF, указав нужную последовательность страниц.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/organize-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| order | string | Да | - | Нужный порядок страниц в синтаксисе qpdf, например `"3,1,2,5-z"` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/organize-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"order": "3,1,2,5-z"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2450000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Диапазоны страниц используют синтаксис qpdf: `3,1,2` переупорядочивает первые три страницы, а `5-z` добавляет страницы с 5 по последнюю.
|
||||
- Страницы можно дублировать, перечислив их более одного раза (например, `"1,1,2,3"` дублирует страницу 1).
|
||||
- Страницы, не указанные в строке порядка, исключаются из вывода.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Чтение и запись метаданных документа PDF."
|
||||
i18n_source_hash: b2eaebf7467f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f97c82766a73
|
||||
---
|
||||
|
||||
# PDF Metadata {#pdf-metadata}
|
||||
|
||||
Читайте и обновляйте поля метаданных документа PDF, такие как заголовок, автор, тема и ключевые слова. Если настройки не переданы, существующие метаданные возвращаются без изменений.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-metadata`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и необязательным JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| title | string | Нет | - | Заголовок документа (не более 500 символов) |
|
||||
| author | string | Нет | - | Автор документа (не более 500 символов) |
|
||||
| subject | string | Нет | - | Тема документа (не более 500 символов) |
|
||||
| keywords | string | Нет | - | Ключевые слова документа (не более 500 символов) |
|
||||
|
||||
Все параметры необязательны. Пропущенные поля остаются без изменений.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-metadata \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@report.pdf" \
|
||||
-F 'settings={"title": "Q2 Report", "author": "Finance Team"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/report.pdf",
|
||||
"originalSize": 245000,
|
||||
"processedSize": 245200,
|
||||
"metadata": {
|
||||
"title": "Q2 Report",
|
||||
"author": "Finance Team",
|
||||
"subject": "",
|
||||
"keywords": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат: `.pdf`.
|
||||
- Это быстрый (синхронный) инструмент, который возвращает результат напрямую.
|
||||
- Поле `metadata` в ответе содержит итоговые метаданные после всех обновлений.
|
||||
- Чтобы прочитать метаданные без изменения, пропустите поле `settings` или отправьте пустой объект.
|
||||
- Каждое поле метаданных ограничено 500 символами.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Добавление номеров страниц на каждую страницу PDF."
|
||||
i18n_source_hash: 58342d6ac8d2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: fa6d6a202ce4
|
||||
---
|
||||
|
||||
# PDF Page Numbers {#pdf-page-numbers}
|
||||
|
||||
Добавьте номера страниц вида «Page N of M» на каждую страницу PDF.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-page-numbers`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| position | string | Нет | `"bc"` | Расположение номера страницы: `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
|
||||
| fontSize | integer | Нет | `10` | Размер шрифта в пунктах (6-24) |
|
||||
|
||||
### Position Values {#position-values}
|
||||
|
||||
- `tl` вверху слева, `tc` вверху по центру, `tr` вверху справа
|
||||
- `bl` внизу слева, `bc` внизу по центру, `br` внизу справа
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-page-numbers \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"position": "bc", "fontSize": 12}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2470000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Номера страниц отображаются в формате «Page 1 of 10».
|
||||
- Номера добавляются на каждую страницу, включая любые существующие титульные или обложечные страницы.
|
||||
- Положение по умолчанию `"bc"` размещает номера внизу по центру каждой страницы.
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
description: "Преобразование страниц PDF в высококачественные изображения."
|
||||
i18n_source_hash: 1c36be5dadb8
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 926f667fefe0
|
||||
---
|
||||
|
||||
# PDF to Image {#pdf-to-image}
|
||||
|
||||
Преобразуйте страницы PDF в высококачественные растровые изображения. Поддерживает выбор страниц, несколько выходных форматов, управление DPI и цветовые режимы. Включает под-маршруты info и preview для просмотра PDF перед преобразованием.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image`
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Нет | `"png"` | Выходной формат: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
|
||||
| dpi | number | Нет | 150 | Разрешение рендеринга (от 36 до 2400). Более высокое DPI даёт более крупные и детализированные изображения. |
|
||||
| quality | number | Нет | 85 | Качество вывода для форматов с потерями (от 1 до 100) |
|
||||
| colorMode | string | Нет | `"color"` | Цветовой режим: `color`, `grayscale`, `bw` (порог чёрно-белого) |
|
||||
| pages | string | Нет | `"all"` | Выбор страниц: `all`, одна страница (`3`), диапазон (`1-5`) или список через запятую (`1,3,5-8`) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"format":"png","dpi":300,"pages":"1-3","colorMode":"color"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"pageCount": 10,
|
||||
"selectedPages": [1, 2, 3],
|
||||
"format": "png",
|
||||
"pages": [
|
||||
{
|
||||
"page": 1,
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/page-1.png",
|
||||
"size": 234567
|
||||
},
|
||||
{
|
||||
"page": 2,
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/page-2.png",
|
||||
"size": 198765
|
||||
},
|
||||
{
|
||||
"page": 3,
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/page-3.png",
|
||||
"size": 210456
|
||||
}
|
||||
],
|
||||
"zipUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/pdf-pages.zip",
|
||||
"zipSize": 612345
|
||||
}
|
||||
```
|
||||
|
||||
## Info Sub-Route {#info-sub-route}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image/info`
|
||||
|
||||
Возвращает количество страниц PDF без рендеринга каких-либо страниц.
|
||||
|
||||
### Info Request {#info-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/info \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
### Info Response {#info-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"pageCount": 10
|
||||
}
|
||||
```
|
||||
|
||||
## Preview Sub-Route {#preview-sub-route}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image/preview`
|
||||
|
||||
Возвращает миниатюры всех страниц в низком разрешении в формате JPEG как base64-URL данных. Полезно для построения интерфейса выбора страниц.
|
||||
|
||||
### Preview Request {#preview-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/preview \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
### Preview Response {#preview-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"pageCount": 10,
|
||||
"thumbnails": [
|
||||
{
|
||||
"page": 1,
|
||||
"dataUrl": "data:image/jpeg;base64,/9j/4AAQ...",
|
||||
"width": 300,
|
||||
"height": 424
|
||||
},
|
||||
{
|
||||
"page": 2,
|
||||
"dataUrl": "data:image/jpeg;base64,/9j/4AAQ...",
|
||||
"width": 300,
|
||||
"height": 424
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Использует MuPDF для рендеринга PDF, обеспечивая высокоточный вывод с корректным рендерингом шрифтов и векторной графики.
|
||||
- PDF, защищённые паролем, не поддерживаются и вернут ошибку 400.
|
||||
- Параметр `pages` поддерживает гибкий синтаксис:
|
||||
- `"all"` или `""` - все страницы
|
||||
- `"3"` - одна страница
|
||||
- `"1-5"` - диапазон страниц (включительно)
|
||||
- `"1,3,5-8"` - смешанные отдельные страницы и диапазоны
|
||||
- Нумерация страниц начинается с 1. Указание страниц за пределами длины документа вернёт ошибку 400.
|
||||
- Основной endpoint всегда генерирует как загрузки отдельных страниц, так и ZIP со всеми выбранными страницами.
|
||||
- Endpoint preview рендерит при 72 DPI и масштабирует до ширины 300px для быстрой генерации миниатюр. Миниатюры создаются в формате JPEG с качеством 60%.
|
||||
- Endpoint preview учитывает серверную конфигурацию `MAX_PDF_PAGES`, ограничивая количество генерируемых миниатюр.
|
||||
- Для больших документов при высоком DPI время обработки увеличивается пропорционально. Рассмотрите использование более низкого DPI (150) для веб-использования и более высокого DPI (300-600) для печати.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Извлечение простого текста из PDF."
|
||||
i18n_source_hash: 15a7bc1cdf8f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 6f9cbb151419
|
||||
---
|
||||
|
||||
# PDF to Text {#pdf-to-text}
|
||||
|
||||
Извлеките весь читаемый простой текст из PDF-документа в текстовый файл.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-text`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет настраиваемых параметров. Загрузите PDF, и его текстовое содержимое будет извлечено.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-text \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@report.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/report.txt",
|
||||
"originalSize": 520000,
|
||||
"processedSize": 14300,
|
||||
"chars": 14300
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат: `.pdf`.
|
||||
- Это быстрый (синхронный) инструмент, который возвращает результат напрямую.
|
||||
- Поле `chars` в ответе указывает количество извлечённых символов.
|
||||
- Извлекается только встроенный в цифровом виде текст. Для отсканированных документов или PDF на основе изображений используйте инструмент [PDF OCR](./ocr-pdf).
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Преобразование PDF в документ Word (DOCX)."
|
||||
i18n_source_hash: be41b6b49f84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 76f323fcf626
|
||||
---
|
||||
|
||||
# PDF to Word {#pdf-to-word}
|
||||
|
||||
Преобразуйте текстовый PDF в документ Word (DOCX). Лучше всего подходит для PDF с выделяемым текстом; отсканированные страницы сначала потребуют OCR.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-word`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет настраиваемых параметров. Загрузите PDF, и он будет преобразован в DOCX.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-word \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@report.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
Возвращает `202 Accepted`. Отслеживайте прогресс через SSE по адресу `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат: `.pdf`.
|
||||
- Лучше всего работает с текстовыми PDF. Отсканированные страницы или страницы только с изображениями дадут пустой или минимальный вывод; используйте [PDF OCR](./ocr-pdf), чтобы сначала добавить текстовый слой.
|
||||
- Преобразование выполняется LibreOffice, работающим на сервере в headless-режиме.
|
||||
- Сложные макеты (многоколоночные, перекрывающиеся элементы) могут преобразоваться не идеально.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Преобразование PDF в архивный формат PDF/A-2 для долгосрочного хранения."
|
||||
i18n_source_hash: 4c6bf7a12e84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7ae905e350c4
|
||||
---
|
||||
|
||||
# PDF/A Convert {#pdf-a-convert}
|
||||
|
||||
Преобразуйте PDF в архивный формат PDF/A-2, подходящий для долгосрочного хранения и соответствия нормативным требованиям.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdfa-convert`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом. Поле `settings` не требуется.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет параметров настроек. Загрузите PDF-файл напрямую.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdfa-convert \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2600000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Вывод соответствует стандарту PDF/A-2.
|
||||
- PDF/A встраивает все шрифты и запрещает внешние ссылки, поэтому выходной файл может быть больше исходного.
|
||||
- Шифрование и JavaScript удаляются при преобразовании, так как они не допускаются стандартом PDF/A.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: "Добавление защиты паролем с шифрованием AES-256 к PDF."
|
||||
i18n_source_hash: 869cfbc739ef
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2323b2502c4a
|
||||
---
|
||||
|
||||
# Protect PDF {#protect-pdf}
|
||||
|
||||
Добавьте защиту паролем к PDF с помощью шифрования AES-256.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/protect-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| userPassword | string | Да | - | Пароль, необходимый для открытия PDF (1-256 символов) |
|
||||
| ownerPassword | string | Нет | Тот же, что `userPassword` | Пароль владельца для разрешений (1-256 символов) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/protect-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"userPassword": "s3cret", "ownerPassword": "0wn3r"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2500000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Шифрование использует AES-256.
|
||||
- Если `ownerPassword` пропущен, он по умолчанию принимает то же значение, что и `userPassword`.
|
||||
- Пароли редактируются из журналов аудита.
|
||||
- Зашифрованный PDF требует пароль пользователя для открытия и пароль владельца (если он отличается) для полных разрешений.
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Безвозвратное удаление вхождений текста из PDF (проверенная настоящая редакция)."
|
||||
i18n_source_hash: 296ad2a701b2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 65b7ea7ba721
|
||||
---
|
||||
|
||||
# Redact PDF {#redact-pdf}
|
||||
|
||||
Безвозвратно удаляйте указанные вхождения текста из PDF с помощью проверенной настоящей редакции. Отредактированный текст полностью удаляется из файла, а не просто закрывается чёрным прямоугольником.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/redact-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| terms | string[] | Да | - | Текстовые строки для редакции (1-50 терминов, каждый до 200 символов) |
|
||||
| caseSensitive | boolean | Нет | `false` | Учитывается ли регистр при сопоставлении |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/redact-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@contract.pdf" \
|
||||
-F 'settings={"terms": ["John Doe", "555-0123"], "caseSensitive": false}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/contract.pdf",
|
||||
"originalSize": 245000,
|
||||
"processedSize": 243000,
|
||||
"found": 7
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат: `.pdf`.
|
||||
- Это быстрый (синхронный) инструмент, который возвращает результат напрямую.
|
||||
- Выполняется настоящая редакция: совпавший текст удаляется из потока содержимого PDF, а не просто скрывается визуально.
|
||||
- Поле `found` в ответе указывает, сколько вхождений было отредактировано.
|
||||
- В одном запросе можно отредактировать до 50 терминов.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Удаление определённых страниц из PDF."
|
||||
i18n_source_hash: 003e460a047c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4970420c2a80
|
||||
---
|
||||
|
||||
# Remove Pages {#remove-pages}
|
||||
|
||||
Удалите определённые страницы из PDF, сохранив все остальные страницы нетронутыми.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/remove-pages`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| pages | string | Да | - | Диапазон страниц для удаления в синтаксисе qpdf, например `"3,5-7"` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/remove-pages \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"pages": "3,5-7"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 1800000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Нельзя удалить все страницы документа; хотя бы одна страница должна остаться.
|
||||
- Диапазоны страниц используют синтаксис qpdf: `3` для одной страницы, `5-7` для диапазона, а запятые для объединения (например, `1,3,5-7`).
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Попытка восстановить повреждённый или испорченный PDF."
|
||||
i18n_source_hash: 864073a2f09f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e62125ab4930
|
||||
---
|
||||
|
||||
# Repair PDF {#repair-pdf}
|
||||
|
||||
Попытайтесь восстановить повреждённый или испорченный PDF, реконструировав его внутреннюю структуру.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/repair-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом. Поле `settings` не требуется.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
У этого инструмента нет параметров настроек. Загрузите повреждённый PDF-файл напрямую.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/repair-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@damaged.pdf"
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/damaged.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2400000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Структурная проверка входных данных пропускается, чтобы пропустить некорректно сформированные файлы.
|
||||
- Восстановление выполняется по мере возможности; сильно повреждённые файлы могут быть восстановлены не полностью.
|
||||
- Восстановленный PDF может немного отличаться по размеру от исходного из-за реконструированных таблиц перекрёстных ссылок.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Поворот страниц PDF на 90, 180 или 270 градусов."
|
||||
i18n_source_hash: cc2acd091427
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 721a7cb8c4e2
|
||||
---
|
||||
|
||||
# Rotate PDF {#rotate-pdf}
|
||||
|
||||
Поверните все или выбранные страницы PDF на указанный угол.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/rotate-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| angle | integer | Нет | `90` | Угол поворота: `90`, `180` или `270` |
|
||||
| range | string | Нет | `"1-z"` | Диапазон страниц в синтаксисе qpdf, например `"1-5,8"` (`"1-z"` = все страницы) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/rotate-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"angle": 90, "range": "1-3"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2450000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Поворот выполняется по часовой стрелке.
|
||||
- Диапазоны страниц используют синтаксис qpdf: `1-5` для страниц с 1 по 5, `z` для последней страницы, а запятые для объединения диапазонов.
|
||||
- Диапазон по умолчанию `"1-z"` поворачивает все страницы.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "Наложение загруженных изображений подписи на PDF с использованием нормализованных размещений на странице."
|
||||
i18n_source_hash: c28f78c2e7fd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 74c249ad0a79
|
||||
---
|
||||
|
||||
# Sign PDF {#sign-pdf}
|
||||
|
||||
Наложите одно или несколько загруженных изображений подписи PNG на любую страницу PDF. Этот маршрут использует пользовательский multipart-контракт, поскольку ему нужны PDF, одно или несколько изображений подписи и координаты размещения.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/sign-pdf`
|
||||
|
||||
Принимает данные multipart form. PDF отправляется как `file`; подписи отправляются как `sig0`, `sig1` и так далее; размещения отправляются в JSON-поле `placements`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Да | - | PDF-файл для подписи |
|
||||
| sig0 | file | Да | - | Первое изображение подписи. Дополнительные изображения используют `sig1`, `sig2` и так далее |
|
||||
| placements | JSON string | Да | - | Массив объектов размещения: `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
|
||||
| clientJobId | string | Нет | - | Необязательный UUID для отслеживания прогресса через SSE |
|
||||
| fileId | string | Нет | - | Необязательный ID библиотеки файлов для сохранения подписанного результата как новой версии |
|
||||
|
||||
## Placement Coordinates {#placement-coordinates}
|
||||
|
||||
| Поле | Тип | Описание |
|
||||
|-------|------|-------------|
|
||||
| sig | integer | Индекс изображения подписи. `0` сопоставляется с `sig0` |
|
||||
| page | integer | Индекс страницы PDF, начиная с нуля |
|
||||
| x | number | Позиция слева как доля страницы |
|
||||
| y | number | Позиция сверху как доля страницы |
|
||||
| w | number | Ширина подписи как доля страницы |
|
||||
| h | number | Высота подписи как доля страницы |
|
||||
|
||||
Координаты используют начало отсчёта в верхнем левом углу. Значения могут немного выходить за край страницы; рендерер PDF обрезает итоговый оттиск по странице.
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/sign-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@contract.pdf" \
|
||||
-F "sig0=@signature.png" \
|
||||
-F 'placements=[{"sig":0,"page":0,"x":0.64,"y":0.82,"w":0.22,"h":0.08}]'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/contract_signed.pdf",
|
||||
"previewUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/preview.png",
|
||||
"originalSize": 245000,
|
||||
"processedSize": 249000
|
||||
}
|
||||
```
|
||||
|
||||
Если запрос не может завершиться в пределах окна синхронного ожидания, API возвращает:
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
Подключитесь к `/api/v1/jobs/<jobId>/progress` и загрузите результат по завершении задания.
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Принимаемый входной формат PDF: `.pdf`.
|
||||
- Изображения подписи должны быть корректными файлами изображений, обычно PNG с прозрачностью.
|
||||
- Принимается до 100 изображений подписи и 100 размещений.
|
||||
- `sign-pdf` является пользовательским маршрутом и не использует стандартное JSON-поле `settings` инструмента.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Извлечение страниц или разделение PDF на части."
|
||||
i18n_source_hash: 5c8d8041d219
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c7f633488dad
|
||||
---
|
||||
|
||||
# Split PDF {#split-pdf}
|
||||
|
||||
Извлеките диапазон страниц в новый PDF или разделите документ на части по N страниц.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/split-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Нет | `"range"` | Режим разделения: `range` или `every` |
|
||||
| range | string | Когда режим `range` | - | Диапазон страниц в синтаксисе qpdf, например `"1-5,8,10-z"` |
|
||||
| everyN | integer | Когда режим `every` | - | Разделить на части по N страниц (1-500) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
Извлечение определённых страниц:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/split-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"mode": "range", "range": "1-5,8"}'
|
||||
```
|
||||
|
||||
Разделение на части по 10 страниц:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/split-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"mode": "every", "everyN": 10}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 980000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- В режиме `range` возвращается один PDF, содержащий выбранные страницы.
|
||||
- В режиме `every` результатом является ZIP-архив, содержащий отдельные части.
|
||||
- Диапазоны страниц используют синтаксис qpdf: `1-5` для страниц с 1 по 5, `z` для последней страницы, а запятые для объединения диапазонов (например, `1-3,7,10-z`).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Удаление защиты паролем из PDF."
|
||||
i18n_source_hash: 14f5165d185c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 0d70f319dab0
|
||||
---
|
||||
|
||||
# Unlock PDF {#unlock-pdf}
|
||||
|
||||
Удалите защиту паролем из зашифрованного PDF, указав правильный пароль.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/unlock-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| password | string | Да | - | Пароль для расшифровки PDF (1-256 символов) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/unlock-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"password": "s3cret"}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2500000,
|
||||
"processedSize": 2450000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Необходимо указать правильный пароль; неверный пароль вернёт ошибку 400.
|
||||
- Для расшифровки подойдёт пароль пользователя или пароль владельца.
|
||||
- Пароли редактируются из журналов аудита.
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: "Добавление текстового водяного знака на каждую страницу PDF."
|
||||
i18n_source_hash: f1f7d8912fbd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4b382763b021
|
||||
---
|
||||
|
||||
# Watermark PDF {#watermark-pdf}
|
||||
|
||||
Наложите текстовый водяной знак на каждую страницу PDF с настраиваемым положением, размером, непрозрачностью и поворотом.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/watermark-pdf`
|
||||
|
||||
Принимает данные multipart form с PDF-файлом и JSON-полем `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Да | - | Текст водяного знака (1-200 символов) |
|
||||
| position | string | Нет | `"c"` | Расположение на странице: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
|
||||
| fontSize | integer | Нет | `48` | Размер шрифта в пунктах (6-72) |
|
||||
| opacity | number | Нет | `0.3` | Непрозрачность водяного знака (0.05-1) |
|
||||
| rotation | number | Нет | `45` | Угол поворота в градусах (-180 до 180) |
|
||||
|
||||
### Position Values {#position-values}
|
||||
|
||||
- `tl` вверху слева, `tc` вверху по центру, `tr` вверху справа
|
||||
- `l` по центру слева, `c` по центру, `r` по центру справа
|
||||
- `bl` внизу слева, `bc` внизу по центру, `br` внизу справа
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/watermark-pdf \
|
||||
-H "Authorization: Bearer si_your-api-key" \
|
||||
-F "file=@document.pdf" \
|
||||
-F 'settings={"text": "CONFIDENTIAL", "position": "c", "opacity": 0.2, "rotation": 45}'
|
||||
```
|
||||
|
||||
## Example Response {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2500000
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Водяной знак отображается как текстовое наложение на каждой странице.
|
||||
- Один и тот же текст, положение и стиль водяного знака применяются единообразно ко всем страницам.
|
||||
- Используйте более низкие значения непрозрачности (0.1-0.3) для ненавязчивых водяных знаков, не закрывающих содержимое.
|
||||
Reference in New Issue
Block a user