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: "Rozmieść strony PDF do złożenia w broszurę."
|
||||
i18n_source_hash: 8844b6d4fe96
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 95d088bd8a50
|
||||
---
|
||||
|
||||
# Broszura PDF {#booklet-pdf}
|
||||
|
||||
Rozmieść strony do druku dwustronnego, aby zadrukowane arkusze można było złożyć w broszurę.
|
||||
|
||||
## Punkt końcowy API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/booklet-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF i polem JSON `settings`.
|
||||
|
||||
## Parametry {#parameters}
|
||||
|
||||
| Parametr | Typ | Wymagany | Domyślny | Opis |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | Nie | `2` | Strony na arkusz: `2`, `4`, `6` lub `8` |
|
||||
|
||||
## Przykładowe żądanie {#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}'
|
||||
```
|
||||
|
||||
## Przykładowa odpowiedź {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2400000
|
||||
}
|
||||
```
|
||||
|
||||
## Uwagi {#notes}
|
||||
|
||||
- Domyślna wartość `perSheet: 2` umieszcza dwie strony obok siebie na każdym arkuszu, co jest standardowym układem broszury do druku dwustronnego.
|
||||
- Puste strony są dodawane automatycznie, jeśli całkowita liczba stron nie jest wielokrotnością rozmiaru arkusza.
|
||||
- Wydrukuj wynik dwustronnie z oprawą wzdłuż krótszej krawędzi, a następnie złóż i zszyj.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Zmniejsz rozmiar pliku PDF przez kompresję osadzonych obrazów."
|
||||
i18n_source_hash: a8bb0baaca25
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4ad39b458a2f
|
||||
---
|
||||
|
||||
# Compress PDF {#compress-pdf}
|
||||
|
||||
Zmniejsz rozmiar pliku PDF przez zmniejszenie rozdzielczości osadzonych obrazów. Wybierz suwak jakości albo docelowy rozmiar pliku.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/compress-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | No | `"quality"` | Tryb kompresji: `quality` lub `targetSize` |
|
||||
| quality | integer | No | `75` | Jakość kompresji, 1-100 (wyższa = mniejsza kompresja). Używane w trybie `quality` |
|
||||
| targetSizeKb | number | No | - | Docelowy rozmiar pliku w kilobajtach. Używane w trybie `targetSize` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
Kompresja według jakości:
|
||||
|
||||
```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}'
|
||||
```
|
||||
|
||||
Kompresja do docelowego rozmiaru:
|
||||
|
||||
```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}
|
||||
|
||||
- W trybie `quality` niższe wartości dają mniejsze pliki z większą degradacją obrazu.
|
||||
- W trybie `targetSize` wyszukiwanie binarne znajduje najwyższe DPI mieszczące się w żądanym rozmiarze.
|
||||
- Jeśli kompresja miałaby powiększyć plik, zwracane są niezmienione oryginalne bajty.
|
||||
- Treść tekstowa i wektorowa nie jest zmieniana; zmniejszana jest tylko rozdzielczość osadzonych obrazów rastrowych.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Przytnij wszystkie strony pliku PDF jednolitym marginesem."
|
||||
i18n_source_hash: ffa1a2cee08d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: faa858ae0744
|
||||
---
|
||||
|
||||
# Crop PDF {#crop-pdf}
|
||||
|
||||
Przytnij wszystkie strony pliku PDF, stosując jednolity margines i usuwając treść z każdej krawędzi w równym stopniu.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/crop-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| margin | number | No | `20` | Jednolity margines przycięcia w punktach (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}
|
||||
|
||||
- Wartość marginesu podawana jest w punktach PDF (1 punkt = 1/72 cala).
|
||||
- Ten sam margines jest stosowany do wszystkich czterech krawędzi każdej strony.
|
||||
- Margines `0` usuwa wszystkie istniejące marginesy przycięcia, pokazując pełną ramkę mediów (media box).
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Wyodrębnij wybrane strony z pliku PDF do nowego dokumentu."
|
||||
i18n_source_hash: e4a8fad31e0f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2a4af5807d98
|
||||
---
|
||||
|
||||
# Extract Pages {#extract-pages}
|
||||
|
||||
Wyodrębnij wybrane strony z pliku PDF do nowego, mniejszego dokumentu.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/extract-pages`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| range | string | Yes | - | Zakres stron w składni qpdf, np. `"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}
|
||||
|
||||
- Zakresy stron używają składni qpdf: `1-5` dla stron od 1 do 5, `z` dla ostatniej strony oraz przecinki do łączenia zakresów (np. `1-3,7,10-z`).
|
||||
- Wyodrębnione strony zachowują oryginalne formatowanie, adnotacje i odnośniki.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Wtop formularze i adnotacje w treść strony."
|
||||
i18n_source_hash: b25c2a2b6f40
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7c9264264ad4
|
||||
---
|
||||
|
||||
# Flatten PDF {#flatten-pdf}
|
||||
|
||||
Wtop interaktywne pola formularzy i adnotacje w treść strony, tworząc statyczny plik PDF wyglądający tak samo wszędzie.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/flatten-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma konfigurowalnych parametrów. Prześlij plik PDF, a wszystkie formularze i adnotacje zostaną spłaszczone.
|
||||
|
||||
## 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}
|
||||
|
||||
- Akceptowany format wejściowy: `.pdf`.
|
||||
- To szybkie (synchroniczne) narzędzie, które zwraca wynik bezpośrednio.
|
||||
- Wartości pól formularza są zachowywane jako statyczny tekst w pliku wynikowym.
|
||||
- Adnotacje (komentarze, wyróżnienia, notatki) stają się częścią treści strony i nie można ich już edytować.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: "Przekształć wszystkie kolory w pliku PDF na odcienie szarości."
|
||||
i18n_source_hash: f327addb32d6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: fcc28ef94a2f
|
||||
---
|
||||
|
||||
# Grayscale PDF {#grayscale-pdf}
|
||||
|
||||
Przekształć wszystkie kolory w pliku PDF na odcienie szarości, tworząc czarno-białą wersję dokumentu.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/grayscale-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF. Pole `settings` nie jest wymagane.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma parametrów ustawień. Prześlij plik PDF bezpośrednio.
|
||||
|
||||
## 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}
|
||||
|
||||
- Wszystkie przestrzenie barw (RGB, CMYK) są konwertowane na odcienie szarości, w tym osadzone obrazy, grafika wektorowa i tekst.
|
||||
- Plik wynikowy jest często mniejszy niż oryginał, ponieważ dane w skali szarości wymagają mniej bajtów na piksel.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Linearyzuj plik PDF, aby szybko wyświetlał się w sieci (pobieranie progresywne)."
|
||||
i18n_source_hash: 36280b478161
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 6ae5b22ca251
|
||||
---
|
||||
|
||||
# Web-Optimize PDF {#web-optimize-pdf}
|
||||
|
||||
Linearyzuj plik PDF, aby mógł być pobierany progresywnie i wyświetlany w przeglądarkach internetowych bez oczekiwania na cały plik.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/linearize-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF. Pole `settings` nie jest wymagane.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma parametrów ustawień. Prześlij plik PDF bezpośrednio.
|
||||
|
||||
## 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}
|
||||
|
||||
- Linearyzacja zmienia układ wewnętrznej struktury pliku PDF, tak aby pierwsza strona mogła się wyświetlić, zanim cały plik zostanie pobrany.
|
||||
- Plik wynikowy może być nieznacznie większy od wejściowego z powodu dodanych danych linearyzacji.
|
||||
- Już zlinearyzowane pliki PDF są ponownie linearyzowane bez problemów.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Połącz wiele plików PDF w jeden dokument."
|
||||
i18n_source_hash: e82e389cb8b6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 59a64d47903b
|
||||
---
|
||||
|
||||
# Merge PDFs {#merge-pdfs}
|
||||
|
||||
Połącz dwa lub więcej plików PDF w jeden dokument, zachowując kolejność stron każdego pliku wejściowego.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/merge-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z dwoma lub więcej plikami PDF. Pole `settings` nie jest wymagane.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma parametrów ustawień. Wystarczy przesłać dwa lub więcej plików PDF.
|
||||
|
||||
| Constraint | Value |
|
||||
|------------|-------|
|
||||
| Minimum files | 2 |
|
||||
| Maximum files | 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}
|
||||
|
||||
- Pliki są łączone w kolejności, w jakiej zostały przesłane.
|
||||
- Wymagane są co najmniej dwa pliki PDF; żądanie zakończy się błędem 400, jeśli podano mniej.
|
||||
- Maksymalna liczba plików wejściowych to 20.
|
||||
- Zaszyfrowane pliki PDF muszą zostać odblokowane przed połączeniem.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Rozmieść wiele stron PDF na jednym arkuszu (2-up, 4-up itd.)."
|
||||
i18n_source_hash: 9dd82737cb72
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: af436a5cb52d
|
||||
---
|
||||
|
||||
# N-up PDF {#n-up-pdf}
|
||||
|
||||
Rozmieść wiele stron na jednym arkuszu, aby oszczędzać papier podczas drukowania, na przykład w układach 2-up lub 4-up.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/nup-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | No | `2` | Stron na arkusz: `2`, `3`, `4`, `8`, `9`, `12` lub `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}
|
||||
|
||||
- Strony są rozmieszczane w kolejności czytania (od lewej do prawej, z góry na dół).
|
||||
- Rozmiar strony wynikowej odpowiada oryginałowi; poszczególne strony są skalowane w dół, aby zmieścić się w siatce.
|
||||
- Dokument 20-stronicowy z `perSheet: 4` daje wynik 5-stronicowy.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Wyodrębnij tekst z dokumentów PDF za pomocą OCR opartego na AI."
|
||||
i18n_source_hash: 1431fcba180b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 7cd3408b836e
|
||||
---
|
||||
|
||||
# PDF OCR {#pdf-ocr}
|
||||
|
||||
Wyodrębnij tekst z dokumentów PDF za pomocą optycznego rozpoznawania znaków (OCR) opartego na AI. Obsługuje wiele poziomów jakości i języków. Wymaga zainstalowania pakietu funkcji OCR.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/ocr-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz opcjonalnym polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| quality | string | No | `"balanced"` | Poziom jakości OCR: `fast`, `balanced`, `best` |
|
||||
| language | string | No | `"auto"` | Język dokumentu: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
|
||||
| pages | string | No | `"all"` | Wybór stron, np. `"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}
|
||||
|
||||
Zwraca `202 Accepted`. Śledź postęp przez SSE pod `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Akceptowany format wejściowy: `.pdf`.
|
||||
- To narzędzie AI, które wymaga zainstalowania **pakietu funkcji OCR**. Jeśli pakiet nie jest zainstalowany, API zwraca `501 Not Implemented`.
|
||||
- Poziom jakości `fast` używa lżejszego modelu do szybszego przetwarzania; `best` używa dokładniejszego modelu kosztem szybkości.
|
||||
- Ustawienie języka `auto` próbuje automatycznie wykryć język dokumentu.
|
||||
- Możesz wskazać konkretne strony za pomocą zakresów (`"1-3"`), list rozdzielonych przecinkami (`"1,3,5"`) lub `"all"` dla każdej strony.
|
||||
- W przypadku plików PDF, które już zawierają zaznaczalny tekst, rozważ użycie szybszego narzędzia [PDF to Text](./pdf-to-text).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Zmień kolejność stron w pliku PDF, podając jawną kolejność stron."
|
||||
i18n_source_hash: e961fc895b4b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 9f7eabfc482b
|
||||
---
|
||||
|
||||
# Organize PDF {#organize-pdf}
|
||||
|
||||
Zmień kolejność stron w pliku PDF, podając żądaną sekwencję stron.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/organize-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| order | string | Yes | - | Żądana kolejność stron w składni qpdf, np. `"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}
|
||||
|
||||
- Zakresy stron używają składni qpdf: `3,1,2` zmienia kolejność pierwszych trzech stron, a `5-z` dołącza strony od 5 do ostatniej.
|
||||
- Strony można powielać, wymieniając je więcej niż raz (np. `"1,1,2,3"` powiela stronę 1).
|
||||
- Strony niewymienione w łańcuchu kolejności są pomijane w wyniku.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Odczytuj i zapisuj metadane dokumentu PDF."
|
||||
i18n_source_hash: b2eaebf7467f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 3b8fa377ae31
|
||||
---
|
||||
|
||||
# PDF Metadata {#pdf-metadata}
|
||||
|
||||
Odczytuj i aktualizuj pola metadanych dokumentu PDF, takie jak tytuł, autor, temat i słowa kluczowe. Gdy nie podano żadnych ustawień, istniejące metadane są zwracane bez zmian.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-metadata`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz opcjonalnym polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| title | string | No | - | Tytuł dokumentu (maks. 500 znaków) |
|
||||
| author | string | No | - | Autor dokumentu (maks. 500 znaków) |
|
||||
| subject | string | No | - | Temat dokumentu (maks. 500 znaków) |
|
||||
| keywords | string | No | - | Słowa kluczowe dokumentu (maks. 500 znaków) |
|
||||
|
||||
Wszystkie parametry są opcjonalne. Pominięte pola pozostają bez zmian.
|
||||
|
||||
## 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}
|
||||
|
||||
- Akceptowany format wejściowy: `.pdf`.
|
||||
- To szybkie (synchroniczne) narzędzie, które zwraca wynik bezpośrednio.
|
||||
- Pole `metadata` w odpowiedzi zawiera wynikowe metadane po wszystkich aktualizacjach.
|
||||
- Aby odczytać metadane bez ich modyfikowania, pomiń pole `settings` lub wyślij pusty obiekt.
|
||||
- Każde pole metadanych jest ograniczone do 500 znaków.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Dodaj numery stron do każdej strony pliku PDF."
|
||||
i18n_source_hash: 58342d6ac8d2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4bf44240d58d
|
||||
---
|
||||
|
||||
# PDF Page Numbers {#pdf-page-numbers}
|
||||
|
||||
Dodaj numery stron w formacie „Page N of M” do każdej strony pliku PDF.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-page-numbers`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| position | string | No | `"bc"` | Umieszczenie numeru strony: `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
|
||||
| fontSize | integer | No | `10` | Rozmiar czcionki w punktach (6-24) |
|
||||
|
||||
### Position Values {#position-values}
|
||||
|
||||
- `tl` lewy górny, `tc` górny środek, `tr` prawy górny
|
||||
- `bl` lewy dolny, `bc` dolny środek, `br` prawy dolny
|
||||
|
||||
## 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}
|
||||
|
||||
- Numery stron są renderowane w formacie „Page 1 of 10”.
|
||||
- Numery są dodawane do każdej strony, w tym do istniejących stron tytułowych lub okładek.
|
||||
- Domyślna pozycja `"bc"` umieszcza numery na dole na środku każdej strony.
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
description: "Przekształć strony PDF na wysokiej jakości obrazy."
|
||||
i18n_source_hash: 1c36be5dadb8
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: bf12d7df15c2
|
||||
---
|
||||
|
||||
# PDF to Image {#pdf-to-image}
|
||||
|
||||
Przekształć strony PDF na wysokiej jakości obrazy rastrowe. Obsługuje wybór stron, wiele formatów wyjściowych, kontrolę DPI i tryby kolorów. Zawiera podtrasy info i preview do inspekcji plików PDF przed konwersją.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image`
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | No | `"png"` | Format wyjściowy: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
|
||||
| dpi | number | No | 150 | Rozdzielczość renderowania (36 do 2400). Wyższe DPI daje większe, bardziej szczegółowe obrazy. |
|
||||
| quality | number | No | 85 | Jakość wyjściowa dla formatów stratnych (1 do 100) |
|
||||
| colorMode | string | No | `"color"` | Tryb kolorów: `color`, `grayscale`, `bw` (próg czerni i bieli) |
|
||||
| pages | string | No | `"all"` | Wybór stron: `all`, pojedyncza strona (`3`), zakres (`1-5`) lub rozdzielony przecinkami (`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`
|
||||
|
||||
Zwraca liczbę stron pliku PDF bez renderowania żadnej strony.
|
||||
|
||||
### 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`
|
||||
|
||||
Zwraca miniatury JPEG wszystkich stron w niskiej rozdzielczości jako adresy URL danych base64. Przydatne do budowania interfejsu wyboru stron.
|
||||
|
||||
### 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}
|
||||
|
||||
- Używa MuPDF do renderowania PDF, zapewniając wysoką wierność wyniku z poprawnym renderowaniem czcionek i grafiki wektorowej.
|
||||
- Pliki PDF chronione hasłem nie są obsługiwane i zwrócą błąd 400.
|
||||
- Parametr `pages` obsługuje elastyczną składnię:
|
||||
- `"all"` lub `""` - wszystkie strony
|
||||
- `"3"` - pojedyncza strona
|
||||
- `"1-5"` - zakres stron (włącznie)
|
||||
- `"1,3,5-8"` - połączenie pojedynczych stron i zakresów
|
||||
- Numery stron są liczone od 1. Podanie stron poza długością dokumentu zwraca błąd 400.
|
||||
- Główny punkt końcowy zawsze generuje zarówno pliki do pobrania poszczególnych stron, jak i archiwum ZIP zawierające wszystkie wybrane strony.
|
||||
- Punkt końcowy podglądu renderuje przy 72 DPI i skaluje do szerokości 300px, aby szybko generować miniatury. Miniatury są w formacie JPEG o jakości 60%.
|
||||
- Punkt końcowy podglądu respektuje konfigurację serwera `MAX_PDF_PAGES`, ograniczając liczbę generowanych miniatur.
|
||||
- W przypadku dużych dokumentów przy wysokim DPI czas przetwarzania rośnie proporcjonalnie. Rozważ użycie niższego DPI (150) do zastosowań internetowych i wyższego DPI (300-600) do druku.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Wyodrębnij zwykły tekst z pliku PDF."
|
||||
i18n_source_hash: 15a7bc1cdf8f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2b5129d77eaa
|
||||
---
|
||||
|
||||
# PDF to Text {#pdf-to-text}
|
||||
|
||||
Wyodrębnij cały czytelny zwykły tekst z dokumentu PDF do pliku tekstowego.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-text`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma konfigurowalnych parametrów. Prześlij plik PDF, a jego treść tekstowa zostanie wyodrębniona.
|
||||
|
||||
## 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}
|
||||
|
||||
- Akceptowany format wejściowy: `.pdf`.
|
||||
- To szybkie (synchroniczne) narzędzie, które zwraca wynik bezpośrednio.
|
||||
- Pole `chars` w odpowiedzi wskazuje liczbę wyodrębnionych znaków.
|
||||
- Wyodrębniany jest tylko cyfrowo osadzony tekst. W przypadku zeskanowanych dokumentów lub plików PDF opartych na obrazach użyj narzędzia [PDF OCR](./ocr-pdf).
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Przekształć plik PDF na dokument Word (DOCX)."
|
||||
i18n_source_hash: be41b6b49f84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2ca20defe467
|
||||
---
|
||||
|
||||
# PDF to Word {#pdf-to-word}
|
||||
|
||||
Przekształć plik PDF oparty na tekście na dokument Word (DOCX). Najlepiej sprawdza się przy plikach PDF z zaznaczalnym tekstem; zeskanowane strony będą najpierw wymagały OCR.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-word`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma konfigurowalnych parametrów. Prześlij plik PDF, a zostanie on przekształcony na 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}
|
||||
|
||||
Zwraca `202 Accepted`. Śledź postęp przez SSE pod `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Akceptowany format wejściowy: `.pdf`.
|
||||
- Działa najlepiej z plikami PDF opartymi na tekście. Zeskanowane strony lub strony zawierające tylko obrazy dadzą pusty lub minimalny wynik; użyj [PDF OCR](./ocr-pdf), aby najpierw dodać warstwę tekstową.
|
||||
- Konwersja jest obsługiwana przez LibreOffice działający w trybie headless na serwerze.
|
||||
- Złożone układy (wielokolumnowe, nakładające się elementy) mogą nie zostać przekonwertowane idealnie.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Przekształć plik PDF na archiwalny format PDF/A-2 do długoterminowego przechowywania."
|
||||
i18n_source_hash: 4c6bf7a12e84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 05ef368e1850
|
||||
---
|
||||
|
||||
# PDF/A Convert {#pdf-a-convert}
|
||||
|
||||
Przekształć plik PDF na archiwalny format PDF/A-2, odpowiedni do długoterminowego przechowywania i zgodności z przepisami.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdfa-convert`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF. Pole `settings` nie jest wymagane.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma parametrów ustawień. Prześlij plik PDF bezpośrednio.
|
||||
|
||||
## 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}
|
||||
|
||||
- Wynik jest zgodny ze standardem PDF/A-2.
|
||||
- PDF/A osadza wszystkie czcionki i nie dopuszcza odwołań zewnętrznych, więc plik wynikowy może być większy od oryginału.
|
||||
- Szyfrowanie i JavaScript są usuwane podczas konwersji, ponieważ nie są dozwolone przez standard PDF/A.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: "Dodaj ochronę hasłem z szyfrowaniem AES-256 do pliku PDF."
|
||||
i18n_source_hash: 869cfbc739ef
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 284a38fb7722
|
||||
---
|
||||
|
||||
# Protect PDF {#protect-pdf}
|
||||
|
||||
Dodaj ochronę hasłem do pliku PDF przy użyciu szyfrowania AES-256.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/protect-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| userPassword | string | Yes | - | Hasło wymagane do otwarcia pliku PDF (1-256 znaków) |
|
||||
| ownerPassword | string | No | Takie samo jak `userPassword` | Hasło właściciela do uprawnień (1-256 znaków) |
|
||||
|
||||
## 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}
|
||||
|
||||
- Szyfrowanie używa AES-256.
|
||||
- Jeśli pominięto `ownerPassword`, przyjmuje domyślnie tę samą wartość co `userPassword`.
|
||||
- Hasła są usuwane z dzienników audytu.
|
||||
- Zaszyfrowany plik PDF wymaga hasła użytkownika do otwarcia oraz hasła właściciela (jeśli jest inne) do pełnych uprawnień.
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Trwale usuń wystąpienia tekstu z pliku PDF (zweryfikowana prawdziwa redakcja)."
|
||||
i18n_source_hash: 296ad2a701b2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: fd42639315f7
|
||||
---
|
||||
|
||||
# Redact PDF {#redact-pdf}
|
||||
|
||||
Trwale usuń określone wystąpienia tekstu z pliku PDF przy użyciu zweryfikowanej prawdziwej redakcji. Zredagowany tekst jest całkowicie usuwany z pliku, a nie tylko zakrywany czarnym prostokątem.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/redact-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| terms | string[] | Yes | - | Ciągi tekstowe do zredagowania (1-50 terminów, każdy do 200 znaków) |
|
||||
| caseSensitive | boolean | No | `false` | Czy dopasowanie uwzględnia wielkość liter |
|
||||
|
||||
## 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}
|
||||
|
||||
- Akceptowany format wejściowy: `.pdf`.
|
||||
- To szybkie (synchroniczne) narzędzie, które zwraca wynik bezpośrednio.
|
||||
- Wykonuje prawdziwą redakcję: dopasowany tekst jest usuwany ze strumienia treści PDF, a nie jedynie wizualnie zasłaniany.
|
||||
- Pole `found` w odpowiedzi wskazuje, ile wystąpień zostało zredagowanych.
|
||||
- W jednym żądaniu można zredagować do 50 terminów.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Usuń wybrane strony z pliku PDF."
|
||||
i18n_source_hash: 003e460a047c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a07b37cb31bb
|
||||
---
|
||||
|
||||
# Remove Pages {#remove-pages}
|
||||
|
||||
Usuń wybrane strony z pliku PDF, zachowując wszystkie pozostałe strony nienaruszone.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/remove-pages`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| pages | string | Yes | - | Zakres stron do usunięcia w składni qpdf, np. `"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}
|
||||
|
||||
- Nie można usunąć wszystkich stron z dokumentu; musi pozostać co najmniej jedna strona.
|
||||
- Zakresy stron używają składni qpdf: `3` dla pojedynczej strony, `5-7` dla zakresu oraz przecinki do łączenia (np. `1,3,5-7`).
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Spróbuj naprawić uszkodzony lub zniszczony plik PDF."
|
||||
i18n_source_hash: 864073a2f09f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: ad4bb1033364
|
||||
---
|
||||
|
||||
# Repair PDF {#repair-pdf}
|
||||
|
||||
Spróbuj naprawić uszkodzony lub zniszczony plik PDF, rekonstruując jego wewnętrzną strukturę.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/repair-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF. Pole `settings` nie jest wymagane.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
To narzędzie nie ma parametrów ustawień. Prześlij uszkodzony plik PDF bezpośrednio.
|
||||
|
||||
## 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}
|
||||
|
||||
- Walidacja strukturalna na wejściu jest pomijana, aby przepuścić uszkodzone pliki.
|
||||
- Naprawa działa na zasadzie najlepszego wysiłku; poważnie uszkodzone pliki mogą nie zostać w pełni odzyskane.
|
||||
- Naprawiony plik PDF może nieznacznie różnić się rozmiarem od oryginału z powodu zrekonstruowanych tabel odwołań krzyżowych.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Obróć strony w pliku PDF o 90, 180 lub 270 stopni."
|
||||
i18n_source_hash: cc2acd091427
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: d5aecfa9136f
|
||||
---
|
||||
|
||||
# Rotate PDF {#rotate-pdf}
|
||||
|
||||
Obróć wszystkie lub wybrane strony w pliku PDF o określony kąt.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/rotate-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| angle | integer | No | `90` | Kąt obrotu: `90`, `180` lub `270` |
|
||||
| range | string | No | `"1-z"` | Zakres stron w składni qpdf, np. `"1-5,8"` (`"1-z"` = wszystkie strony) |
|
||||
|
||||
## 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}
|
||||
|
||||
- Obrót odbywa się zgodnie z ruchem wskazówek zegara.
|
||||
- Zakresy stron używają składni qpdf: `1-5` dla stron od 1 do 5, `z` dla ostatniej strony oraz przecinki do łączenia zakresów.
|
||||
- Domyślny zakres `"1-z"` obraca wszystkie strony.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "Nanieś przesłane obrazy podpisów na plik PDF, używając znormalizowanych rozmieszczeń na stronie."
|
||||
i18n_source_hash: c28f78c2e7fd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 3bb0e466cf77
|
||||
---
|
||||
|
||||
# Sign PDF {#sign-pdf}
|
||||
|
||||
Nanieś jeden lub więcej przesłanych obrazów podpisów PNG na dowolną stronę pliku PDF. Ta trasa używa niestandardowego kontraktu multipart, ponieważ potrzebuje pliku PDF, jednego lub więcej obrazów podpisów oraz współrzędnych rozmieszczenia.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/sign-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart. Plik PDF jest wysyłany jako `file`; podpisy są wysyłane jako `sig0`, `sig1` i tak dalej; rozmieszczenia są wysyłane w polu JSON `placements`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Yes | - | Plik PDF do podpisania |
|
||||
| sig0 | file | Yes | - | Pierwszy obraz podpisu. Dodatkowe obrazy używają `sig1`, `sig2` i tak dalej |
|
||||
| placements | JSON string | Yes | - | Tablica obiektów rozmieszczenia: `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
|
||||
| clientJobId | string | No | - | Opcjonalny UUID do śledzenia postępu przez SSE |
|
||||
| fileId | string | No | - | Opcjonalny identyfikator biblioteki plików do zapisania podpisanego wyniku jako nowej wersji |
|
||||
|
||||
## Placement Coordinates {#placement-coordinates}
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| sig | integer | Indeks obrazu podpisu. `0` odpowiada `sig0` |
|
||||
| page | integer | Indeks strony PDF liczony od zera |
|
||||
| x | number | Pozycja lewej krawędzi jako ułamek strony |
|
||||
| y | number | Pozycja górnej krawędzi jako ułamek strony |
|
||||
| w | number | Szerokość podpisu jako ułamek strony |
|
||||
| h | number | Wysokość podpisu jako ułamek strony |
|
||||
|
||||
Współrzędne używają początku w lewym górnym rogu. Wartości mogą nieznacznie wykraczać poza krawędź strony; renderer PDF przycina finalny stempel do strony.
|
||||
|
||||
## 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
|
||||
}
|
||||
```
|
||||
|
||||
Jeśli żądanie nie może zakończyć się w oknie oczekiwania synchronicznego, API zwraca:
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
Połącz się z `/api/v1/jobs/<jobId>/progress` i pobierz wynik, gdy zadanie się zakończy.
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Akceptowany format wejściowy PDF: `.pdf`.
|
||||
- Obrazy podpisów muszą być prawidłowymi plikami graficznymi, zwykle PNG z przezroczystością.
|
||||
- Akceptowane jest do 100 obrazów podpisów i 100 rozmieszczeń.
|
||||
- `sign-pdf` to niestandardowa trasa i nie używa standardowego pola JSON `settings` narzędzia.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Wyodrębnij strony lub podziel plik PDF na części."
|
||||
i18n_source_hash: 5c8d8041d219
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 66e151fbfd48
|
||||
---
|
||||
|
||||
# Split PDF {#split-pdf}
|
||||
|
||||
Wyodrębnij zakres stron do nowego pliku PDF lub podziel dokument na fragmenty po N stron.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/split-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | No | `"range"` | Tryb podziału: `range` lub `every` |
|
||||
| range | string | Gdy mode to `range` | - | Zakres stron w składni qpdf, np. `"1-5,8,10-z"` |
|
||||
| everyN | integer | Gdy mode to `every` | - | Podział na fragmenty po N stron (1-500) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
Wyodrębnij wybrane strony:
|
||||
|
||||
```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"}'
|
||||
```
|
||||
|
||||
Podział na fragmenty po 10 stron:
|
||||
|
||||
```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}
|
||||
|
||||
- W trybie `range` zwracany jest pojedynczy plik PDF zawierający wybrane strony.
|
||||
- W trybie `every` wynikiem jest archiwum ZIP zawierające poszczególne części.
|
||||
- Zakresy stron używają składni qpdf: `1-5` dla stron od 1 do 5, `z` dla ostatniej strony oraz przecinki do łączenia zakresów (np. `1-3,7,10-z`).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Usuń ochronę hasłem z pliku PDF."
|
||||
i18n_source_hash: 14f5165d185c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 114a7344526b
|
||||
---
|
||||
|
||||
# Unlock PDF {#unlock-pdf}
|
||||
|
||||
Usuń ochronę hasłem z zaszyfrowanego pliku PDF, podając poprawne hasło.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/unlock-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| password | string | Yes | - | Hasło do odszyfrowania pliku PDF (1-256 znaków) |
|
||||
|
||||
## 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}
|
||||
|
||||
- Należy podać poprawne hasło; nieprawidłowe hasło zwraca błąd 400.
|
||||
- Do odszyfrowania zadziała zarówno hasło użytkownika, jak i hasło właściciela.
|
||||
- Hasła są usuwane z dzienników audytu.
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: "Dodaj tekstowy znak wodny do każdej strony pliku PDF."
|
||||
i18n_source_hash: f1f7d8912fbd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b9a264bf9d71
|
||||
---
|
||||
|
||||
# Watermark PDF {#watermark-pdf}
|
||||
|
||||
Nanieś tekstowy znak wodny na każdą stronę pliku PDF z konfigurowalną pozycją, rozmiarem, przezroczystością i obrotem.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/watermark-pdf`
|
||||
|
||||
Przyjmuje dane formularza multipart z plikiem PDF oraz polem JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Yes | - | Tekst znaku wodnego (1-200 znaków) |
|
||||
| position | string | No | `"c"` | Umieszczenie na stronie: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
|
||||
| fontSize | integer | No | `48` | Rozmiar czcionki w punktach (6-72) |
|
||||
| opacity | number | No | `0.3` | Przezroczystość znaku wodnego (0.05-1) |
|
||||
| rotation | number | No | `45` | Kąt obrotu w stopniach (-180 do 180) |
|
||||
|
||||
### Position Values {#position-values}
|
||||
|
||||
- `tl` lewy górny, `tc` górny środek, `tr` prawy górny
|
||||
- `l` środkowy lewy, `c` środek, `r` środkowy prawy
|
||||
- `bl` lewy dolny, `bc` dolny środek, `br` prawy dolny
|
||||
|
||||
## 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}
|
||||
|
||||
- Znak wodny jest renderowany jako nakładka tekstowa na każdej stronie.
|
||||
- Ten sam tekst, pozycja i styl znaku wodnego są stosowane jednolicie do wszystkich stron.
|
||||
- Użyj niższych wartości przezroczystości (0.1-0.3) dla subtelnych znaków wodnych, które nie zasłaniają treści.
|
||||
Reference in New Issue
Block a user