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:
SnapOtter
2026-07-11 13:52:47 +08:00
committed by GitHub
parent 00b651c9f8
commit 4963ab3bbd
3620 changed files with 306134 additions and 0 deletions
+48
View File
@@ -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` размещает две страницы бок о бок на каждом листе, что является стандартной компоновкой буклета для дуплексной печати.
- Пустые страницы добавляются автоматически, если общее количество страниц не кратно размеру листа.
- Печатайте вывод двусторонним способом с переплётом по короткому краю, затем сложите и скрепите.
+62
View File
@@ -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, укладывающееся в запрошенный размер.
- Если сжатие увеличило бы файл, исходные байты возвращаются без изменений.
- Текст и векторное содержимое не затрагиваются; понижается разрешение только встроенных растровых изображений.
+48
View File
@@ -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.
+47
View File
@@ -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`).
- Извлечённые страницы сохраняют исходное форматирование, аннотации и ссылки.
+46
View File
@@ -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`.
- Это быстрый (синхронный) инструмент, который возвращает результат напрямую.
- Значения полей форм сохраняются в выходном файле как статический текст.
- Аннотации (комментарии, выделения, стикеры) становятся частью содержимого страницы и больше не могут редактироваться.
+44
View File
@@ -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) преобразуются в оттенки серого, включая встроенные изображения, векторную графику и текст.
- Выходной файл часто меньше исходного, поскольку данные в оттенках серого требуют меньше байтов на пиксель.
+45
View File
@@ -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 повторно линеаризуются без проблем.
+53
View File
@@ -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 должны быть разблокированы перед объединением.
+48
View File
@@ -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 страниц.
+53
View File
@@ -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).
+48
View File
@@ -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).
- Страницы, не указанные в строке порядка, исключаются из вывода.
+61
View File
@@ -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"` размещает номера внизу по центру каждой страницы.
+133
View File
@@ -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) для печати.
+47
View File
@@ -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).
+46
View File
@@ -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-режиме.
- Сложные макеты (многоколоночные, перекрывающиеся элементы) могут преобразоваться не идеально.
+45
View File
@@ -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.
+50
View File
@@ -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 требует пароль пользователя для открытия и пароль владельца (если он отличается) для полных разрешений.
+52
View File
@@ -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 терминов.
+47
View File
@@ -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`).
+45
View File
@@ -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 может немного отличаться по размеру от исходного из-за реконструированных таблиц перекрёстных ссылок.
+49
View File
@@ -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"` поворачивает все страницы.
+79
View File
@@ -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` инструмента.
+61
View File
@@ -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`).
+48
View File
@@ -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.
- Для расшифровки подойдёт пароль пользователя или пароль владельца.
- Пароли редактируются из журналов аудита.
+58
View File
@@ -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) для ненавязчивых водяных знаков, не закрывающих содержимое.