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: "Dispone le pagine PDF per la piegatura in un libretto."
|
||||
i18n_source_hash: 8844b6d4fe96
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 613f9c5f7589
|
||||
---
|
||||
|
||||
# Libretto PDF {#booklet-pdf}
|
||||
|
||||
Impagina le pagine per la stampa fronte-retro in modo che i fogli stampati possano essere piegati in un libretto.
|
||||
|
||||
## Endpoint API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/booklet-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parametri {#parameters}
|
||||
|
||||
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | No | `2` | Pagine per foglio: `2`, `4`, `6` o `8` |
|
||||
|
||||
## Esempio di richiesta {#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}'
|
||||
```
|
||||
|
||||
## Esempio di risposta {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2400000
|
||||
}
|
||||
```
|
||||
|
||||
## Note {#notes}
|
||||
|
||||
- Il valore predefinito `perSheet: 2` posiziona due pagine affiancate su ciascun foglio, ovvero il layout standard del libretto per la stampa fronte-retro.
|
||||
- Le pagine bianche vengono aggiunte automaticamente se il numero totale di pagine non è un multiplo della dimensione del foglio.
|
||||
- Stampa l'output fronte-retro con rilegatura sul lato corto, poi piega e pinza.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Riduci la dimensione del file PDF comprimendo le immagini incorporate."
|
||||
i18n_source_hash: a8bb0baaca25
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5e36dc29ec6b
|
||||
---
|
||||
|
||||
# Comprimi PDF {#compress-pdf}
|
||||
|
||||
Riduci la dimensione del file PDF sottocampionando le immagini incorporate. Scegli tra un cursore di qualità o una dimensione file di destinazione.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/compress-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | No | `"quality"` | Modalità di compressione: `quality` o `targetSize` |
|
||||
| quality | integer | No | `75` | Qualità di compressione, 1-100 (più alto = meno compressione). Usato in modalità `quality` |
|
||||
| targetSizeKb | number | No | - | Dimensione file di destinazione in kilobyte. Usato in modalità `targetSize` |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
Comprimi per qualità:
|
||||
|
||||
```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}'
|
||||
```
|
||||
|
||||
Comprimi a una dimensione di destinazione:
|
||||
|
||||
```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}
|
||||
|
||||
- In modalità `quality`, i valori più bassi producono file più piccoli con maggiore degrado delle immagini.
|
||||
- In modalità `targetSize`, una ricerca binaria trova il DPI più alto che rientra nella dimensione richiesta.
|
||||
- Se la compressione ingrandirebbe il file, i byte originali vengono restituiti invariati.
|
||||
- Il testo e i contenuti vettoriali non sono influenzati; vengono sottocampionate solo le immagini raster incorporate.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Ritaglia tutte le pagine di un PDF con un margine uniforme."
|
||||
i18n_source_hash: ffa1a2cee08d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 14d0d10f3c50
|
||||
---
|
||||
|
||||
# Ritaglia PDF {#crop-pdf}
|
||||
|
||||
Ritaglia tutte le pagine di un PDF applicando un margine uniforme, rimuovendo il contenuto da ciascun bordo in modo uguale.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/crop-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| margin | number | No | `20` | Margine di ritaglio uniforme in punti (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}
|
||||
|
||||
- Il valore del margine è espresso in punti PDF (1 punto = 1/72 di pollice).
|
||||
- Lo stesso margine viene applicato a tutti e quattro i bordi di ogni pagina.
|
||||
- Un margine di `0` rimuove tutti i margini di ritaglio esistenti, mostrando l'intero media box.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Estrai pagine selezionate da un PDF in un nuovo documento."
|
||||
i18n_source_hash: e4a8fad31e0f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 920d2f470fbd
|
||||
---
|
||||
|
||||
# Estrai pagine {#extract-pages}
|
||||
|
||||
Estrai pagine selezionate da un PDF in un documento nuovo e più piccolo.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/extract-pages`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| range | string | Yes | - | Intervallo di pagine nella sintassi qpdf, es. `"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}
|
||||
|
||||
- Gli intervalli di pagine usano la sintassi qpdf: `1-5` per le pagine da 1 a 5, `z` per l'ultima pagina, e le virgole per combinare gli intervalli (es. `1-3,7,10-z`).
|
||||
- Le pagine estratte mantengono la formattazione, le annotazioni e i collegamenti originali.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Incorpora moduli e annotazioni nel contenuto della pagina."
|
||||
i18n_source_hash: b25c2a2b6f40
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 27ceab164538
|
||||
---
|
||||
|
||||
# Appiattisci PDF {#flatten-pdf}
|
||||
|
||||
Incorpora i campi modulo interattivi e le annotazioni nel contenuto della pagina, producendo un PDF statico che appare identico ovunque.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/flatten-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri configurabili. Carica un PDF e tutti i moduli e le annotazioni verranno appiattiti.
|
||||
|
||||
## 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}
|
||||
|
||||
- Formato di input accettato: `.pdf`.
|
||||
- Questo è uno strumento veloce (sincrono) che restituisce direttamente il risultato.
|
||||
- I valori dei campi modulo vengono conservati come testo statico nell'output.
|
||||
- Le annotazioni (commenti, evidenziazioni, note adesive) diventano parte del contenuto della pagina e non possono più essere modificate.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: "Converti tutti i colori di un PDF in scala di grigi."
|
||||
i18n_source_hash: f327addb32d6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 8078ee2592d7
|
||||
---
|
||||
|
||||
# PDF in scala di grigi {#grayscale-pdf}
|
||||
|
||||
Converti tutti i colori di un PDF in scala di grigi, producendo una versione in bianco e nero del documento.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/grayscale-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF. Non è richiesto alcun campo `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri di configurazione. Carica direttamente il file 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}
|
||||
|
||||
- Tutti gli spazi colore (RGB, CMYK) vengono convertiti in scala di grigi, incluse le immagini incorporate, la grafica vettoriale e il testo.
|
||||
- Il file di output è spesso più piccolo dell'originale perché i dati in scala di grigi richiedono meno byte per pixel.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Linearizza un PDF per una visualizzazione web rapida (download progressivo)."
|
||||
i18n_source_hash: 36280b478161
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 0215b1977434
|
||||
---
|
||||
|
||||
# Ottimizza PDF per il web {#web-optimize-pdf}
|
||||
|
||||
Linearizza un PDF in modo che possa essere scaricato e visualizzato progressivamente nei browser web senza attendere il file completo.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/linearize-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF. Non è richiesto alcun campo `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri di configurazione. Carica direttamente il file 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}
|
||||
|
||||
- La linearizzazione riorganizza la struttura interna del PDF in modo che la prima pagina possa essere renderizzata prima che il file completo sia stato scaricato.
|
||||
- Il file di output potrebbe essere leggermente più grande dell'input a causa dei dati di linearizzazione aggiunti.
|
||||
- I PDF già linearizzati vengono ri-linearizzati senza problemi.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Combina più PDF in un unico documento."
|
||||
i18n_source_hash: e82e389cb8b6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 5308873ba0e9
|
||||
---
|
||||
|
||||
# Unisci PDF {#merge-pdfs}
|
||||
|
||||
Combina due o più file PDF in un unico documento, preservando l'ordine delle pagine di ciascun file di input.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/merge-pdf`
|
||||
|
||||
Accetta dati di form multipart con due o più file PDF. Non è richiesto alcun campo `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri di configurazione. Basta caricare due o più file PDF.
|
||||
|
||||
| Constraint | Value |
|
||||
|------------|-------|
|
||||
| File minimi | 2 |
|
||||
| File massimi | 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}
|
||||
|
||||
- I file vengono uniti nell'ordine in cui vengono caricati.
|
||||
- Sono richiesti almeno due file PDF; la richiesta fallirà con un errore 400 se ne vengono forniti meno.
|
||||
- Il numero massimo di file di input è 20.
|
||||
- I PDF crittografati devono essere sbloccati prima dell'unione.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Disponi più pagine PDF per foglio (2-up, 4-up, ecc.)."
|
||||
i18n_source_hash: 9dd82737cb72
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 82856ec4f5a3
|
||||
---
|
||||
|
||||
# PDF N-up {#n-up-pdf}
|
||||
|
||||
Disponi più pagine per foglio per risparmiare carta in fase di stampa, ad esempio con layout 2-up o 4-up.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/nup-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | No | `2` | Pagine per foglio: `2`, `3`, `4`, `8`, `9`, `12`, o `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}
|
||||
|
||||
- Le pagine sono disposte in ordine di lettura (da sinistra a destra, dall'alto verso il basso).
|
||||
- La dimensione della pagina di output corrisponde a quella originale; le singole pagine vengono ridimensionate per adattarsi alla griglia.
|
||||
- Un documento di 20 pagine con `perSheet: 4` produce un output di 5 pagine.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Estrai testo da documenti PDF usando l'OCR basato sull'IA."
|
||||
i18n_source_hash: 1431fcba180b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 123adeee3212
|
||||
---
|
||||
|
||||
# OCR PDF {#pdf-ocr}
|
||||
|
||||
Estrai testo da documenti PDF usando il riconoscimento ottico dei caratteri basato sull'IA. Supporta più livelli di qualità e diverse lingue. Richiede l'installazione del bundle della funzionalità OCR.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/ocr-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON opzionale `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| quality | string | No | `"balanced"` | Livello di qualità OCR: `fast`, `balanced`, `best` |
|
||||
| language | string | No | `"auto"` | Lingua del documento: `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
|
||||
| pages | string | No | `"all"` | Selezione delle pagine, es. `"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}
|
||||
|
||||
Restituisce `202 Accepted`. Monitora l'avanzamento tramite SSE su `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Formato di input accettato: `.pdf`.
|
||||
- Questo è uno strumento IA che richiede l'installazione del **bundle della funzionalità OCR**. Se il bundle non è installato, l'API restituisce `501 Not Implemented`.
|
||||
- Il livello di qualità `fast` usa un modello più leggero per un'elaborazione più rapida; `best` usa un modello più accurato a scapito della velocità.
|
||||
- L'impostazione della lingua `auto` tenta di rilevare automaticamente la lingua del documento.
|
||||
- Puoi selezionare pagine specifiche usando intervalli (`"1-3"`), elenchi separati da virgole (`"1,3,5"`), o `"all"` per ogni pagina.
|
||||
- Per i PDF che contengono già testo selezionabile, considera l'uso dello strumento più veloce [PDF in testo](./pdf-to-text).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Riordina le pagine di un PDF con un ordine di pagina esplicito."
|
||||
i18n_source_hash: e961fc895b4b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c7678cecdae6
|
||||
---
|
||||
|
||||
# Organizza PDF {#organize-pdf}
|
||||
|
||||
Riordina le pagine di un PDF specificando la sequenza di pagine desiderata.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/organize-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| order | string | Yes | - | Ordine di pagina desiderato nella sintassi qpdf, es. `"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}
|
||||
|
||||
- Gli intervalli di pagine usano la sintassi qpdf: `3,1,2` riordina le prime tre pagine, e `5-z` aggiunge le pagine da 5 fino all'ultima.
|
||||
- Le pagine possono essere duplicate elencandole più di una volta (es. `"1,1,2,3"` duplica la pagina 1).
|
||||
- Le pagine non elencate nella stringa dell'ordine vengono omesse dall'output.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Leggi e scrivi i metadati di un documento PDF."
|
||||
i18n_source_hash: b2eaebf7467f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: d159f5e78a41
|
||||
---
|
||||
|
||||
# Metadati PDF {#pdf-metadata}
|
||||
|
||||
Leggi e aggiorna i campi dei metadati di un documento PDF come titolo, autore, oggetto e parole chiave. Quando non vengono fornite impostazioni, i metadati esistenti vengono restituiti senza modifiche.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-metadata`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON opzionale `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| title | string | No | - | Titolo del documento (max 500 caratteri) |
|
||||
| author | string | No | - | Autore del documento (max 500 caratteri) |
|
||||
| subject | string | No | - | Oggetto del documento (max 500 caratteri) |
|
||||
| keywords | string | No | - | Parole chiave del documento (max 500 caratteri) |
|
||||
|
||||
Tutti i parametri sono opzionali. I campi omessi restano invariati.
|
||||
|
||||
## 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}
|
||||
|
||||
- Formato di input accettato: `.pdf`.
|
||||
- Questo è uno strumento veloce (sincrono) che restituisce direttamente il risultato.
|
||||
- Il campo `metadata` nella risposta contiene i metadati risultanti dopo eventuali aggiornamenti.
|
||||
- Per leggere i metadati senza modificarli, ometti il campo `settings` o invia un oggetto vuoto.
|
||||
- Ogni campo dei metadati è limitato a 500 caratteri.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Aggiungi i numeri di pagina a ogni pagina di un PDF."
|
||||
i18n_source_hash: 58342d6ac8d2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 8ec33a3992b8
|
||||
---
|
||||
|
||||
# Numeri di pagina PDF {#pdf-page-numbers}
|
||||
|
||||
Aggiungi i numeri di pagina "Pagina N di M" a ogni pagina di un PDF.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-page-numbers`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| position | string | No | `"bc"` | Posizionamento del numero di pagina: `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
|
||||
| fontSize | integer | No | `10` | Dimensione del carattere in punti (6-24) |
|
||||
|
||||
### Position Values {#position-values}
|
||||
|
||||
- `tl` in alto a sinistra, `tc` in alto al centro, `tr` in alto a destra
|
||||
- `bl` in basso a sinistra, `bc` in basso al centro, `br` in basso a destra
|
||||
|
||||
## 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}
|
||||
|
||||
- I numeri di pagina vengono resi nel formato "Pagina 1 di 10".
|
||||
- I numeri vengono aggiunti a ogni pagina, incluse eventuali pagine di titolo o di copertina.
|
||||
- La posizione predefinita `"bc"` colloca i numeri in basso al centro di ogni pagina.
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
description: "Converti le pagine PDF in immagini di alta qualità."
|
||||
i18n_source_hash: 1c36be5dadb8
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 50fa12b02faf
|
||||
---
|
||||
|
||||
# PDF in immagine {#pdf-to-image}
|
||||
|
||||
Converti le pagine PDF in immagini raster di alta qualità. Supporta la selezione delle pagine, più formati di output, il controllo del DPI e le modalità colore. Include sotto-route di info e anteprima per ispezionare i PDF prima della conversione.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image`
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | No | `"png"` | Formato di output: `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
|
||||
| dpi | number | No | 150 | Risoluzione di rendering (da 36 a 2400). Un DPI più alto produce immagini più grandi e dettagliate. |
|
||||
| quality | number | No | 85 | Qualità di output per i formati con perdita (da 1 a 100) |
|
||||
| colorMode | string | No | `"color"` | Modalità colore: `color`, `grayscale`, `bw` (soglia bianco e nero) |
|
||||
| pages | string | No | `"all"` | Selezione delle pagine: `all`, pagina singola (`3`), intervallo (`1-5`), o separate da virgole (`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`
|
||||
|
||||
Restituisce il numero di pagine di un PDF senza renderizzare alcuna pagina.
|
||||
|
||||
### 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`
|
||||
|
||||
Restituisce miniature JPEG a bassa risoluzione di tutte le pagine come data URL in base64. Utile per costruire un'interfaccia di selezione delle pagine.
|
||||
|
||||
### 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}
|
||||
|
||||
- Usa MuPDF per il rendering dei PDF, fornendo un output ad alta fedeltà con rendering corretto dei caratteri e grafica vettoriale.
|
||||
- I PDF protetti da password non sono supportati e restituiranno un errore 400.
|
||||
- Il parametro `pages` supporta una sintassi flessibile:
|
||||
- `"all"` o `""` - tutte le pagine
|
||||
- `"3"` - pagina singola
|
||||
- `"1-5"` - intervallo di pagine (inclusivo)
|
||||
- `"1,3,5-8"` - pagine singole e intervalli combinati
|
||||
- I numeri di pagina partono da 1. Specificare pagine oltre la lunghezza del documento restituisce un errore 400.
|
||||
- L'endpoint principale genera sempre sia i download delle singole pagine sia uno ZIP contenente tutte le pagine selezionate.
|
||||
- L'endpoint di anteprima renderizza a 72 DPI e ridimensiona a 300px di larghezza per una generazione rapida delle miniature. Le miniature sono in JPEG al 60% di qualità.
|
||||
- L'endpoint di anteprima rispetta la configurazione del server `MAX_PDF_PAGES`, limitando il numero di miniature generate.
|
||||
- Per documenti di grandi dimensioni ad alto DPI, il tempo di elaborazione aumenta proporzionalmente. Considera l'uso di un DPI più basso (150) per l'uso web e di un DPI più alto (300-600) per la stampa.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Estrai testo semplice da un PDF."
|
||||
i18n_source_hash: 15a7bc1cdf8f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a77ebe300002
|
||||
---
|
||||
|
||||
# PDF in testo {#pdf-to-text}
|
||||
|
||||
Estrai tutto il testo semplice leggibile da un documento PDF in un file di testo.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-text`
|
||||
|
||||
Accetta dati di form multipart con un file PDF.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri configurabili. Carica un PDF e il suo contenuto testuale verrà estratto.
|
||||
|
||||
## 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}
|
||||
|
||||
- Formato di input accettato: `.pdf`.
|
||||
- Questo è uno strumento veloce (sincrono) che restituisce direttamente il risultato.
|
||||
- Il campo `chars` nella risposta indica il numero di caratteri estratti.
|
||||
- Viene estratto solo il testo incorporato digitalmente. Per documenti scansionati o PDF basati su immagini, usa invece lo strumento [OCR PDF](./ocr-pdf).
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Converti un PDF in un documento Word (DOCX)."
|
||||
i18n_source_hash: be41b6b49f84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 586b219dd3cd
|
||||
---
|
||||
|
||||
# PDF in Word {#pdf-to-word}
|
||||
|
||||
Converti un PDF basato su testo in un documento Word (DOCX). Ideale per PDF con testo selezionabile; le pagine scansionate richiederanno prima l'OCR.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-word`
|
||||
|
||||
Accetta dati di form multipart con un file PDF.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri configurabili. Carica un PDF e verrà convertito in 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}
|
||||
|
||||
Restituisce `202 Accepted`. Monitora l'avanzamento tramite SSE su `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Formato di input accettato: `.pdf`.
|
||||
- Funziona meglio con PDF basati su testo. Le pagine scansionate o solo immagine produrranno un output vuoto o minimo; usa [OCR PDF](./ocr-pdf) per aggiungere prima un livello di testo.
|
||||
- La conversione è gestita da LibreOffice in esecuzione headless sul server.
|
||||
- I layout complessi (multi-colonna, elementi sovrapposti) potrebbero non convertirsi perfettamente.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Converti un PDF nel formato di archiviazione PDF/A-2 per la conservazione a lungo termine."
|
||||
i18n_source_hash: 4c6bf7a12e84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 0c278573d75d
|
||||
---
|
||||
|
||||
# Conversione PDF/A {#pdf-a-convert}
|
||||
|
||||
Converti un PDF nel formato di archiviazione PDF/A-2, adatto alla conservazione a lungo termine e alla conformità normativa.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdfa-convert`
|
||||
|
||||
Accetta dati di form multipart con un file PDF. Non è richiesto alcun campo `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri di configurazione. Carica direttamente il file 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}
|
||||
|
||||
- L'output è conforme allo standard PDF/A-2.
|
||||
- PDF/A incorpora tutti i caratteri e non consente riferimenti esterni, quindi il file di output potrebbe essere più grande dell'originale.
|
||||
- La crittografia e JavaScript vengono rimossi durante la conversione, poiché non sono consentiti dallo standard PDF/A.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: "Aggiungi la protezione con password e crittografia AES-256 a un PDF."
|
||||
i18n_source_hash: 869cfbc739ef
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 01f3430b9840
|
||||
---
|
||||
|
||||
# Proteggi PDF {#protect-pdf}
|
||||
|
||||
Aggiungi la protezione con password a un PDF usando la crittografia AES-256.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/protect-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| userPassword | string | Yes | - | Password richiesta per aprire il PDF (1-256 caratteri) |
|
||||
| ownerPassword | string | No | Uguale a `userPassword` | Password del proprietario per i permessi (1-256 caratteri) |
|
||||
|
||||
## 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}
|
||||
|
||||
- La crittografia usa AES-256.
|
||||
- Se `ownerPassword` viene omesso, assume come predefinito lo stesso valore di `userPassword`.
|
||||
- Le password vengono oscurate dai log di audit.
|
||||
- Il PDF crittografato richiede la password utente per l'apertura e la password del proprietario (se diversa) per i permessi completi.
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Rimuovi in modo permanente le occorrenze di testo da un PDF (redazione reale verificata)."
|
||||
i18n_source_hash: 296ad2a701b2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: ef9a5ce301c4
|
||||
---
|
||||
|
||||
# Redigi PDF {#redact-pdf}
|
||||
|
||||
Rimuovi in modo permanente le occorrenze di testo specificate da un PDF usando una redazione reale verificata. Il testo redatto viene rimosso completamente dal file, non semplicemente coperto con un riquadro nero.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/redact-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| terms | string[] | Yes | - | Stringhe di testo da redigere (1-50 termini, ciascuno fino a 200 caratteri) |
|
||||
| caseSensitive | boolean | No | `false` | Se la corrispondenza distingue tra maiuscole e minuscole |
|
||||
|
||||
## 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}
|
||||
|
||||
- Formato di input accettato: `.pdf`.
|
||||
- Questo è uno strumento veloce (sincrono) che restituisce direttamente il risultato.
|
||||
- Questo esegue una redazione reale: il testo corrispondente viene rimosso dal flusso di contenuti del PDF, non semplicemente oscurato visivamente.
|
||||
- Il campo `found` nella risposta indica quante occorrenze sono state redatte.
|
||||
- Puoi redigere fino a 50 termini in una singola richiesta.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Elimina pagine specifiche da un PDF."
|
||||
i18n_source_hash: 003e460a047c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 123cb1735e5b
|
||||
---
|
||||
|
||||
# Rimuovi pagine {#remove-pages}
|
||||
|
||||
Elimina pagine specifiche da un PDF, mantenendo intatte tutte le pagine rimanenti.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/remove-pages`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| pages | string | Yes | - | Intervallo di pagine da rimuovere nella sintassi qpdf, es. `"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}
|
||||
|
||||
- Non è possibile rimuovere tutte le pagine da un documento; deve rimanere almeno una pagina.
|
||||
- Gli intervalli di pagine usano la sintassi qpdf: `3` per una singola pagina, `5-7` per un intervallo, e le virgole per combinare (es. `1,3,5-7`).
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Tenta di riparare un PDF danneggiato o corrotto."
|
||||
i18n_source_hash: 864073a2f09f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 13fbc054b3d9
|
||||
---
|
||||
|
||||
# Ripara PDF {#repair-pdf}
|
||||
|
||||
Tenta di riparare un PDF danneggiato o corrotto ricostruendone la struttura interna.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/repair-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF. Non è richiesto alcun campo `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
Questo strumento non ha parametri di configurazione. Carica direttamente il file PDF danneggiato.
|
||||
|
||||
## 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}
|
||||
|
||||
- La validazione strutturale viene saltata in fase di input per lasciar passare i file malformati.
|
||||
- La riparazione è al meglio delle possibilità; i file gravemente corrotti potrebbero non essere completamente recuperabili.
|
||||
- Il PDF riparato potrebbe differire leggermente nelle dimensioni dall'originale a causa delle tabelle di riferimento incrociato ricostruite.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Ruota le pagine di un PDF di 90, 180 o 270 gradi."
|
||||
i18n_source_hash: cc2acd091427
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f1fb2c7e5ac2
|
||||
---
|
||||
|
||||
# Ruota PDF {#rotate-pdf}
|
||||
|
||||
Ruota tutte le pagine o pagine selezionate di un PDF di un angolo specificato.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/rotate-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| angle | integer | No | `90` | Angolo di rotazione: `90`, `180`, o `270` |
|
||||
| range | string | No | `"1-z"` | Intervallo di pagine nella sintassi qpdf, es. `"1-5,8"` (`"1-z"` = tutte le pagine) |
|
||||
|
||||
## 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}
|
||||
|
||||
- La rotazione è in senso orario.
|
||||
- Gli intervalli di pagine usano la sintassi qpdf: `1-5` per le pagine da 1 a 5, `z` per l'ultima pagina, e le virgole per combinare gli intervalli.
|
||||
- L'intervallo predefinito `"1-z"` ruota tutte le pagine.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "Applica immagini di firma caricate su un PDF usando posizionamenti normalizzati per pagina."
|
||||
i18n_source_hash: c28f78c2e7fd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: da0e3b7725e0
|
||||
---
|
||||
|
||||
# Firma PDF {#sign-pdf}
|
||||
|
||||
Applica una o più immagini di firma PNG caricate su qualsiasi pagina di un PDF. Questa route usa un contratto multipart personalizzato perché necessita del PDF, di una o più immagini di firma e delle coordinate di posizionamento.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/sign-pdf`
|
||||
|
||||
Accetta dati di form multipart. Il PDF viene inviato come `file`; le firme vengono inviate come `sig0`, `sig1`, e così via; i posizionamenti vengono inviati in un campo JSON `placements`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Yes | - | File PDF da firmare |
|
||||
| sig0 | file | Yes | - | Prima immagine di firma. Le immagini aggiuntive usano `sig1`, `sig2`, e così via |
|
||||
| placements | JSON string | Yes | - | Array di oggetti di posizionamento: `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
|
||||
| clientJobId | string | No | - | UUID opzionale per il monitoraggio dell'avanzamento tramite SSE |
|
||||
| fileId | string | No | - | ID opzionale della libreria file per salvare il risultato firmato come nuova versione |
|
||||
|
||||
## Placement Coordinates {#placement-coordinates}
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| sig | integer | Indice dell'immagine di firma. `0` corrisponde a `sig0` |
|
||||
| page | integer | Indice di pagina PDF a base zero |
|
||||
| x | number | Posizione sinistra come frazione della pagina |
|
||||
| y | number | Posizione superiore come frazione della pagina |
|
||||
| w | number | Larghezza della firma come frazione della pagina |
|
||||
| h | number | Altezza della firma come frazione della pagina |
|
||||
|
||||
Le coordinate usano un'origine in alto a sinistra. I valori possono sconfinare leggermente oltre il bordo della pagina; il renderer PDF ritaglia il timbro finale alla pagina.
|
||||
|
||||
## 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
|
||||
}
|
||||
```
|
||||
|
||||
Se la richiesta non riesce a completarsi entro la finestra di attesa sincrona, l'API restituisce:
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
Connettiti a `/api/v1/jobs/<jobId>/progress` e scarica il risultato quando il job è completato.
|
||||
|
||||
## Notes {#notes}
|
||||
|
||||
- Formato di input PDF accettato: `.pdf`.
|
||||
- Le immagini di firma devono essere file immagine validi, tipicamente PNG con trasparenza.
|
||||
- Sono accettate fino a 100 immagini di firma e 100 posizionamenti.
|
||||
- `sign-pdf` è una route personalizzata e non usa il campo JSON standard `settings` dello strumento.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Estrai pagine o dividi un PDF in parti."
|
||||
i18n_source_hash: 5c8d8041d219
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a7d956635e57
|
||||
---
|
||||
|
||||
# Dividi PDF {#split-pdf}
|
||||
|
||||
Estrai un intervallo di pagine in un nuovo PDF, oppure dividi un documento in blocchi di N pagine.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/split-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | No | `"range"` | Modalità di divisione: `range` o `every` |
|
||||
| range | string | Quando mode è `range` | - | Intervallo di pagine nella sintassi qpdf, es. `"1-5,8,10-z"` |
|
||||
| everyN | integer | Quando mode è `every` | - | Dividi in blocchi di N pagine (1-500) |
|
||||
|
||||
## Example Request {#example-request}
|
||||
|
||||
Estrai pagine specifiche:
|
||||
|
||||
```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"}'
|
||||
```
|
||||
|
||||
Dividi in blocchi di 10 pagine:
|
||||
|
||||
```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}
|
||||
|
||||
- In modalità `range`, viene restituito un singolo PDF contenente le pagine selezionate.
|
||||
- In modalità `every`, il risultato è un archivio ZIP contenente le singole parti.
|
||||
- Gli intervalli di pagine usano la sintassi qpdf: `1-5` per le pagine da 1 a 5, `z` per l'ultima pagina, e le virgole per combinare gli intervalli (es. `1-3,7,10-z`).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Rimuovi la protezione con password da un PDF."
|
||||
i18n_source_hash: 14f5165d185c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 95773bf0e5cc
|
||||
---
|
||||
|
||||
# Sblocca PDF {#unlock-pdf}
|
||||
|
||||
Rimuovi la protezione con password da un PDF crittografato fornendo la password corretta.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/unlock-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| password | string | Yes | - | Password per decrittografare il PDF (1-256 caratteri) |
|
||||
|
||||
## 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}
|
||||
|
||||
- Deve essere fornita la password corretta; una password errata restituisce un errore 400.
|
||||
- Per la decrittografia funziona sia la password utente sia la password del proprietario.
|
||||
- Le password vengono oscurate dai log di audit.
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: "Aggiungi una filigrana di testo a ogni pagina di un PDF."
|
||||
i18n_source_hash: f1f7d8912fbd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4be05e1bbd47
|
||||
---
|
||||
|
||||
# Filigrana PDF {#watermark-pdf}
|
||||
|
||||
Applica una filigrana di testo su ogni pagina di un PDF con posizione, dimensione, opacità e rotazione configurabili.
|
||||
|
||||
## API Endpoint {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/watermark-pdf`
|
||||
|
||||
Accetta dati di form multipart con un file PDF e un campo JSON `settings`.
|
||||
|
||||
## Parameters {#parameters}
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Yes | - | Testo della filigrana (1-200 caratteri) |
|
||||
| position | string | No | `"c"` | Posizionamento sulla pagina: `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
|
||||
| fontSize | integer | No | `48` | Dimensione del carattere in punti (6-72) |
|
||||
| opacity | number | No | `0.3` | Opacità della filigrana (0.05-1) |
|
||||
| rotation | number | No | `45` | Angolo di rotazione in gradi (da -180 a 180) |
|
||||
|
||||
### Position Values {#position-values}
|
||||
|
||||
- `tl` in alto a sinistra, `tc` in alto al centro, `tr` in alto a destra
|
||||
- `l` al centro a sinistra, `c` al centro, `r` al centro a destra
|
||||
- `bl` in basso a sinistra, `bc` in basso al centro, `br` in basso a destra
|
||||
|
||||
## 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}
|
||||
|
||||
- La filigrana viene resa come una sovrapposizione di testo su ogni pagina.
|
||||
- Lo stesso testo, posizione e stile della filigrana vengono applicati in modo uniforme a tutte le pagine.
|
||||
- Usa valori di opacità più bassi (0.1-0.3) per filigrane discrete che non oscurano il contenuto.
|
||||
Reference in New Issue
Block a user