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: "Réorganise les pages d'un PDF pour les plier en livret."
|
||||
i18n_source_hash: 8844b6d4fe96
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 73fe7122c427
|
||||
---
|
||||
|
||||
# PDF en livret {#booklet-pdf}
|
||||
|
||||
Impose les pages pour une impression recto verso afin que les feuilles imprimées puissent être pliées en livret.
|
||||
|
||||
## Point d'accès de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/booklet-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ JSON `settings`.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | Non | `2` | Pages par feuille : `2`, `4`, `6` ou `8` |
|
||||
|
||||
## Exemple de requête {#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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2400000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- La valeur par défaut `perSheet: 2` place deux pages côte à côte sur chaque feuille, ce qui correspond à la disposition standard de livret pour l'impression recto verso.
|
||||
- Des pages blanches sont ajoutées automatiquement si le nombre total de pages n'est pas un multiple de la taille de la feuille.
|
||||
- Imprimez la sortie en recto verso avec une reliure sur bord court, puis pliez et agrafez.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
description: "Réduire la taille d'un fichier PDF en compressant les images intégrées."
|
||||
i18n_source_hash: a8bb0baaca25
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: dad97321f449
|
||||
---
|
||||
|
||||
# Compresser un PDF {#compress-pdf}
|
||||
|
||||
Réduisez la taille d'un fichier PDF en sous-échantillonnant les images intégrées. Choisissez entre un curseur de qualité ou une taille de fichier cible.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/compress-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Non | `"quality"` | Mode de compression : `quality` ou `targetSize` |
|
||||
| quality | integer | Non | `75` | Qualité de compression, 1-100 (plus élevé = moins de compression). Utilisé en mode `quality` |
|
||||
| targetSizeKb | number | Non | - | Taille de fichier cible en kilo-octets. Utilisé en mode `targetSize` |
|
||||
|
||||
## Exemple de requête {#example-request}
|
||||
|
||||
Compresser par 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}'
|
||||
```
|
||||
|
||||
Compresser jusqu'à une taille cible :
|
||||
|
||||
```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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 5200000,
|
||||
"processedSize": 1800000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- En mode `quality`, des valeurs plus basses produisent des fichiers plus petits avec une plus forte dégradation des images.
|
||||
- En mode `targetSize`, une recherche binaire trouve le DPI le plus élevé qui respecte la taille demandée.
|
||||
- Si la compression devait agrandir le fichier, les octets d'origine sont renvoyés inchangés.
|
||||
- Le texte et le contenu vectoriel ne sont pas affectés ; seules les images matricielles intégrées sont sous-échantillonnées.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Rogner toutes les pages d'un PDF avec une marge uniforme."
|
||||
i18n_source_hash: ffa1a2cee08d
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 541553bea606
|
||||
---
|
||||
|
||||
# Rogner un PDF {#crop-pdf}
|
||||
|
||||
Rognez toutes les pages d'un PDF en appliquant une marge uniforme, en supprimant le contenu de chaque bord de manière égale.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/crop-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| margin | number | Non | `20` | Marge de rognage uniforme en points (0-2000) |
|
||||
|
||||
## Exemple de requête {#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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2440000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- La valeur de la marge est exprimée en points PDF (1 point = 1/72 pouce).
|
||||
- La même marge est appliquée aux quatre bords de chaque page.
|
||||
- Une marge de `0` supprime toutes les marges de rognage existantes, affichant l'intégralité de la boîte média.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Extraire des pages sélectionnées d'un PDF vers un nouveau document."
|
||||
i18n_source_hash: e4a8fad31e0f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2d4f7d483f7e
|
||||
---
|
||||
|
||||
# Extraire des pages {#extract-pages}
|
||||
|
||||
Extrayez des pages sélectionnées d'un PDF vers un nouveau document plus petit.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/extract-pages`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| range | string | Oui | - | Plage de pages en syntaxe qpdf, par exemple `"1-5,8,10-z"` |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 3200000,
|
||||
"processedSize": 1100000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Les plages de pages utilisent la syntaxe qpdf : `1-5` pour les pages 1 à 5, `z` pour la dernière page, et des virgules pour combiner des plages (par exemple `1-3,7,10-z`).
|
||||
- Les pages extraites conservent leur mise en forme, leurs annotations et leurs liens d'origine.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Intégrer les formulaires et annotations dans le contenu des pages."
|
||||
i18n_source_hash: b25c2a2b6f40
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 52e3912267a3
|
||||
---
|
||||
|
||||
# Aplatir un PDF {#flatten-pdf}
|
||||
|
||||
Intégrez les champs de formulaire interactifs et les annotations dans le contenu des pages, produisant un PDF statique qui s'affiche de la même façon partout.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/flatten-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre configurable. Téléversez un PDF et tous les formulaires et annotations seront aplatis.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/form.pdf",
|
||||
"originalSize": 185000,
|
||||
"processedSize": 172000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée accepté : `.pdf`.
|
||||
- Il s'agit d'un outil rapide (synchrone) qui renvoie le résultat directement.
|
||||
- Les valeurs des champs de formulaire sont conservées sous forme de texte statique dans la sortie.
|
||||
- Les annotations (commentaires, surlignages, notes autocollantes) deviennent partie intégrante du contenu de la page et ne peuvent plus être modifiées.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
description: "Convertir toutes les couleurs d'un PDF en niveaux de gris."
|
||||
i18n_source_hash: f327addb32d6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 769e588e51e6
|
||||
---
|
||||
|
||||
# PDF en niveaux de gris {#grayscale-pdf}
|
||||
|
||||
Convertissez toutes les couleurs d'un PDF en niveaux de gris, produisant une version en noir et blanc du document.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/grayscale-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF. Aucun champ `settings` n'est requis.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre de réglage. Téléversez directement le fichier PDF.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 3200000,
|
||||
"processedSize": 2800000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Tous les espaces colorimétriques (RGB, CMYK) sont convertis en niveaux de gris, y compris les images intégrées, les graphiques vectoriels et le texte.
|
||||
- Le fichier de sortie est souvent plus petit que l'original, car les données en niveaux de gris nécessitent moins d'octets par pixel.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Linéariser un PDF pour un affichage web rapide (téléchargement progressif)."
|
||||
i18n_source_hash: 36280b478161
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 0b3a5cad2635
|
||||
---
|
||||
|
||||
# Optimiser un PDF pour le web {#web-optimize-pdf}
|
||||
|
||||
Linéarisez un PDF afin qu'il puisse être téléchargé et affiché progressivement dans les navigateurs web sans attendre le fichier complet.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/linearize-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF. Aucun champ `settings` n'est requis.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre de réglage. Téléversez directement le fichier PDF.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2460000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- La linéarisation réorganise la structure interne du PDF afin que la première page puisse s'afficher avant que le fichier complet ait été téléchargé.
|
||||
- Le fichier de sortie peut être légèrement plus volumineux que l'entrée en raison des données de linéarisation ajoutées.
|
||||
- Les PDF déjà linéarisés sont re-linéarisés sans problème.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Combiner plusieurs PDF en un seul document."
|
||||
i18n_source_hash: e82e389cb8b6
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: c599ce7c8acb
|
||||
---
|
||||
|
||||
# Fusionner des PDF {#merge-pdfs}
|
||||
|
||||
Combinez deux fichiers PDF ou plus en un seul document, en préservant l'ordre des pages de chaque fichier d'entrée.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/merge-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec deux fichiers PDF ou plus. Aucun champ `settings` n'est requis.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre de réglage. Il suffit de téléverser deux fichiers PDF ou plus.
|
||||
|
||||
| Contrainte | Valeur |
|
||||
|------------|-------|
|
||||
| Nombre minimal de fichiers | 2 |
|
||||
| Nombre maximal de fichiers | 20 |
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/merged.pdf",
|
||||
"originalSize": 4500000,
|
||||
"processedSize": 4200000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Les fichiers sont fusionnés dans l'ordre où ils sont téléversés.
|
||||
- Au moins deux fichiers PDF sont requis ; la requête échoue avec une erreur 400 si moins sont fournis.
|
||||
- Le nombre maximal de fichiers d'entrée est de 20.
|
||||
- Les PDF chiffrés doivent être déverrouillés avant la fusion.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Disposer plusieurs pages PDF par feuille (2-up, 4-up, etc.)."
|
||||
i18n_source_hash: 9dd82737cb72
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 4f094c78685e
|
||||
---
|
||||
|
||||
# PDF N-up {#n-up-pdf}
|
||||
|
||||
Disposez plusieurs pages par feuille pour économiser du papier à l'impression, comme les mises en page 2-up ou 4-up.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/nup-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| perSheet | integer | Non | `2` | Pages par feuille : `2`, `3`, `4`, `8`, `9`, `12`, ou `16` |
|
||||
|
||||
## Exemple de requête {#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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2300000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Les pages sont disposées dans l'ordre de lecture (de gauche à droite, de haut en bas).
|
||||
- La taille de la page de sortie correspond à celle de l'original ; les pages individuelles sont réduites pour tenir dans la grille.
|
||||
- Un document de 20 pages avec `perSheet: 4` produit une sortie de 5 pages.
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Extraire le texte de documents PDF à l'aide d'une OCR assistée par IA."
|
||||
i18n_source_hash: 1431fcba180b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 76a0a8e20bc9
|
||||
---
|
||||
|
||||
# OCR de PDF {#pdf-ocr}
|
||||
|
||||
Extrayez le texte de documents PDF à l'aide de la reconnaissance optique de caractères assistée par IA. Prend en charge plusieurs niveaux de qualité et plusieurs langues. Nécessite l'installation du pack de fonctionnalités OCR.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/ocr-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` facultatif au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| quality | string | Non | `"balanced"` | Niveau de qualité OCR : `fast`, `balanced`, `best` |
|
||||
| language | string | Non | `"auto"` | Langue du document : `auto`, `en`, `de`, `fr`, `es`, `zh`, `ja`, `ko` |
|
||||
| pages | string | Non | `"all"` | Sélection de pages, par exemple `"all"`, `"1-3"`, `"1,3,5"` |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
Renvoie `202 Accepted`. Suivez la progression via SSE à `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée accepté : `.pdf`.
|
||||
- Il s'agit d'un outil d'IA qui nécessite l'installation du **pack de fonctionnalités OCR**. Si le pack n'est pas installé, l'API renvoie `501 Not Implemented`.
|
||||
- Le niveau de qualité `fast` utilise un modèle plus léger pour un traitement plus rapide ; `best` utilise un modèle plus précis au prix de la vitesse.
|
||||
- Le réglage de langue `auto` tente de détecter automatiquement la langue du document.
|
||||
- Vous pouvez cibler des pages spécifiques à l'aide de plages (`"1-3"`), de listes séparées par des virgules (`"1,3,5"`), ou de `"all"` pour chaque page.
|
||||
- Pour les PDF qui contiennent déjà du texte sélectionnable, envisagez plutôt d'utiliser l'outil [PDF vers texte](./pdf-to-text), plus rapide.
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Réorganiser les pages d'un PDF selon un ordre de pages explicite."
|
||||
i18n_source_hash: e961fc895b4b
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 78062d1a0bc6
|
||||
---
|
||||
|
||||
# Organiser un PDF {#organize-pdf}
|
||||
|
||||
Réorganisez les pages d'un PDF en spécifiant la séquence de pages souhaitée.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/organize-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| order | string | Oui | - | Ordre de pages souhaité en syntaxe qpdf, par exemple `"3,1,2,5-z"` |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2450000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Les plages de pages utilisent la syntaxe qpdf : `3,1,2` réorganise les trois premières pages, et `5-z` ajoute les pages 5 à la dernière page.
|
||||
- Les pages peuvent être dupliquées en les listant plusieurs fois (par exemple `"1,1,2,3"` duplique la page 1).
|
||||
- Les pages non listées dans la chaîne d'ordre sont omises de la sortie.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Lire et écrire les métadonnées d'un document PDF."
|
||||
i18n_source_hash: b2eaebf7467f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 13f782479ba2
|
||||
---
|
||||
|
||||
# Métadonnées PDF {#pdf-metadata}
|
||||
|
||||
Lisez et mettez à jour les champs de métadonnées d'un document PDF tels que le titre, l'auteur, le sujet et les mots-clés. Lorsqu'aucun réglage n'est fourni, les métadonnées existantes sont renvoyées sans modification.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-metadata`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` facultatif au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| title | string | Non | - | Titre du document (500 caractères max.) |
|
||||
| author | string | Non | - | Auteur du document (500 caractères max.) |
|
||||
| subject | string | Non | - | Sujet du document (500 caractères max.) |
|
||||
| keywords | string | Non | - | Mots-clés du document (500 caractères max.) |
|
||||
|
||||
Tous les paramètres sont facultatifs. Les champs omis restent inchangés.
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#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": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée accepté : `.pdf`.
|
||||
- Il s'agit d'un outil rapide (synchrone) qui renvoie le résultat directement.
|
||||
- Le champ `metadata` de la réponse contient les métadonnées résultantes après toute mise à jour.
|
||||
- Pour lire les métadonnées sans les modifier, omettez le champ `settings` ou envoyez un objet vide.
|
||||
- Chaque champ de métadonnées est limité à 500 caractères.
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
description: "Ajouter des numéros de page à chaque page d'un PDF."
|
||||
i18n_source_hash: 58342d6ac8d2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 04a135cb1dd0
|
||||
---
|
||||
|
||||
# Numéros de page PDF {#pdf-page-numbers}
|
||||
|
||||
Ajoutez des numéros de page « Page N sur M » à chaque page d'un PDF.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-page-numbers`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| position | string | Non | `"bc"` | Emplacement du numéro de page : `bl`, `bc`, `br`, `tl`, `tc`, `tr` |
|
||||
| fontSize | integer | Non | `10` | Taille de police en points (6-24) |
|
||||
|
||||
### Valeurs de position {#position-values}
|
||||
|
||||
- `tl` en haut à gauche, `tc` en haut au centre, `tr` en haut à droite
|
||||
- `bl` en bas à gauche, `bc` en bas au centre, `br` en bas à droite
|
||||
|
||||
## Exemple de requête {#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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2470000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Les numéros de page sont affichés au format « Page 1 sur 10 ».
|
||||
- Les numéros sont ajoutés à chaque page, y compris toute page de titre ou de couverture existante.
|
||||
- La position par défaut `"bc"` place les numéros en bas au centre de chaque page.
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
description: "Convertir des pages PDF en images de haute qualité."
|
||||
i18n_source_hash: 1c36be5dadb8
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e4895e5ed780
|
||||
---
|
||||
|
||||
# PDF vers image {#pdf-to-image}
|
||||
|
||||
Convertissez des pages PDF en images matricielles de haute qualité. Prend en charge la sélection de pages, plusieurs formats de sortie, le contrôle du DPI et les modes colorimétriques. Comprend des sous-routes d'information et d'aperçu pour inspecter les PDF avant la conversion.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image`
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| format | string | Non | `"png"` | Format de sortie : `png`, `jpg`, `webp`, `avif`, `tiff`, `gif`, `heic`, `heif`, `jxl` |
|
||||
| dpi | number | Non | 150 | Résolution de rendu (36 à 2400). Un DPI plus élevé produit des images plus grandes et plus détaillées. |
|
||||
| quality | number | Non | 85 | Qualité de sortie pour les formats avec perte (1 à 100) |
|
||||
| colorMode | string | Non | `"color"` | Mode colorimétrique : `color`, `grayscale`, `bw` (seuil noir et blanc) |
|
||||
| pages | string | Non | `"all"` | Sélection de pages : `all`, page unique (`3`), plage (`1-5`), ou séparées par des virgules (`1,3,5-8`) |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#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
|
||||
}
|
||||
```
|
||||
|
||||
## Sous-route d'information {#info-sub-route}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image/info`
|
||||
|
||||
Renvoie le nombre de pages d'un PDF sans effectuer le rendu d'aucune page.
|
||||
|
||||
### Requête d'information {#info-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/info \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
### Réponse d'information {#info-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"pageCount": 10
|
||||
}
|
||||
```
|
||||
|
||||
## Sous-route d'aperçu {#preview-sub-route}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-image/preview`
|
||||
|
||||
Renvoie des miniatures JPEG basse résolution de toutes les pages sous forme d'URL de données base64. Utile pour construire une interface de sélection de pages.
|
||||
|
||||
### Requête d'aperçu {#preview-request}
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:1349/api/v1/tools/pdf/pdf-to-image/preview \
|
||||
-F "file=@document.pdf"
|
||||
```
|
||||
|
||||
### Réponse d'aperçu {#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
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Utilise MuPDF pour le rendu des PDF, offrant une sortie haute fidélité avec un rendu de police et des graphiques vectoriels corrects.
|
||||
- Les PDF protégés par mot de passe ne sont pas pris en charge et renverront une erreur 400.
|
||||
- Le paramètre `pages` prend en charge une syntaxe flexible :
|
||||
- `"all"` ou `""` - toutes les pages
|
||||
- `"3"` - page unique
|
||||
- `"1-5"` - plage de pages (inclusive)
|
||||
- `"1,3,5-8"` - pages individuelles et plages combinées
|
||||
- Les numéros de page commencent à 1. Spécifier des pages au-delà de la longueur du document renvoie une erreur 400.
|
||||
- Le point de terminaison principal génère toujours à la fois les téléchargements de pages individuelles et un ZIP contenant toutes les pages sélectionnées.
|
||||
- Le point de terminaison d'aperçu effectue le rendu à 72 DPI et met à l'échelle à 300 px de largeur pour une génération rapide de miniatures. Les miniatures sont en JPEG à 60 % de qualité.
|
||||
- Le point de terminaison d'aperçu respecte la configuration serveur `MAX_PDF_PAGES`, limitant le nombre de miniatures générées.
|
||||
- Pour les documents volumineux à haut DPI, le temps de traitement augmente proportionnellement. Envisagez d'utiliser un DPI plus bas (150) pour un usage web et un DPI plus élevé (300-600) pour l'impression.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Extraire le texte brut d'un PDF."
|
||||
i18n_source_hash: 15a7bc1cdf8f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 6420be9c79b2
|
||||
---
|
||||
|
||||
# PDF vers texte {#pdf-to-text}
|
||||
|
||||
Extrayez tout le texte brut lisible d'un document PDF dans un fichier texte.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-text`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre configurable. Téléversez un PDF et son contenu texte sera extrait.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#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
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée accepté : `.pdf`.
|
||||
- Il s'agit d'un outil rapide (synchrone) qui renvoie le résultat directement.
|
||||
- Le champ `chars` de la réponse indique le nombre de caractères extraits.
|
||||
- Seul le texte intégré numériquement est extrait. Pour les documents numérisés ou les PDF basés sur des images, utilisez plutôt l'outil [OCR de PDF](./ocr-pdf).
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
description: "Convertir un PDF en document Word (DOCX)."
|
||||
i18n_source_hash: be41b6b49f84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: aae48465ba37
|
||||
---
|
||||
|
||||
# PDF vers Word {#pdf-to-word}
|
||||
|
||||
Convertissez un PDF basé sur du texte en document Word (DOCX). Idéal pour les PDF avec du texte sélectionnable ; les pages numérisées nécessiteront d'abord une OCR.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdf-to-word`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre configurable. Téléversez un PDF et il sera converti en DOCX.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
Renvoie `202 Accepted`. Suivez la progression via SSE à `/api/v1/jobs/{jobId}/progress`.
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée accepté : `.pdf`.
|
||||
- Fonctionne mieux avec des PDF basés sur du texte. Les pages numérisées ou uniquement en images produiront une sortie vide ou minimale ; utilisez [OCR de PDF](./ocr-pdf) pour ajouter d'abord une couche de texte.
|
||||
- La conversion est effectuée par LibreOffice s'exécutant en mode headless sur le serveur.
|
||||
- Les mises en page complexes (multi-colonnes, éléments superposés) peuvent ne pas se convertir parfaitement.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Convertir un PDF au format d'archivage PDF/A-2 pour une conservation à long terme."
|
||||
i18n_source_hash: 4c6bf7a12e84
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a18ec51a3d2c
|
||||
---
|
||||
|
||||
# Conversion PDF/A {#pdf-a-convert}
|
||||
|
||||
Convertissez un PDF au format d'archivage PDF/A-2, adapté à la conservation à long terme et à la conformité réglementaire.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/pdfa-convert`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF. Aucun champ `settings` n'est requis.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre de réglage. Téléversez directement le fichier PDF.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2600000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- La sortie est conforme à la norme PDF/A-2.
|
||||
- Le format PDF/A intègre toutes les polices et interdit les références externes, de sorte que le fichier de sortie peut être plus volumineux que l'original.
|
||||
- Le chiffrement et le JavaScript sont supprimés lors de la conversion, car ils ne sont pas autorisés par la norme PDF/A.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: "Ajouter une protection par mot de passe avec chiffrement AES-256 à un PDF."
|
||||
i18n_source_hash: 869cfbc739ef
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: afb16e6dbc20
|
||||
---
|
||||
|
||||
# Protéger un PDF {#protect-pdf}
|
||||
|
||||
Ajoutez une protection par mot de passe à un PDF à l'aide du chiffrement AES-256.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/protect-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| userPassword | string | Oui | - | Mot de passe requis pour ouvrir le PDF (1-256 caractères) |
|
||||
| ownerPassword | string | Non | Identique à `userPassword` | Mot de passe propriétaire pour les autorisations (1-256 caractères) |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2500000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Le chiffrement utilise AES-256.
|
||||
- Si `ownerPassword` est omis, il prend par défaut la même valeur que `userPassword`.
|
||||
- Les mots de passe sont masqués dans les journaux d'audit.
|
||||
- Le PDF chiffré nécessite le mot de passe utilisateur pour être ouvert et le mot de passe propriétaire (s'il est différent) pour les autorisations complètes.
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Supprimer définitivement des occurrences de texte d'un PDF (censure véritable et vérifiée)."
|
||||
i18n_source_hash: 296ad2a701b2
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: dd04fc28ae22
|
||||
---
|
||||
|
||||
# Censurer un PDF {#redact-pdf}
|
||||
|
||||
Supprimez définitivement des occurrences de texte spécifiées d'un PDF à l'aide d'une censure véritable et vérifiée. Le texte censuré est complètement retiré du fichier, et pas seulement recouvert d'un rectangle noir.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/redact-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| terms | string[] | Oui | - | Chaînes de texte à censurer (1-50 termes, chacun jusqu'à 200 caractères) |
|
||||
| caseSensitive | boolean | Non | `false` | Indique si la correspondance est sensible à la casse |
|
||||
|
||||
## Exemple de requête {#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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#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
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée accepté : `.pdf`.
|
||||
- Il s'agit d'un outil rapide (synchrone) qui renvoie le résultat directement.
|
||||
- Cet outil effectue une censure véritable : le texte correspondant est retiré du flux de contenu du PDF, et non simplement masqué visuellement.
|
||||
- Le champ `found` de la réponse indique le nombre d'occurrences censurées.
|
||||
- Vous pouvez censurer jusqu'à 50 termes en une seule requête.
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
description: "Supprimer des pages spécifiques d'un PDF."
|
||||
i18n_source_hash: 003e460a047c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: dd7ef2cd7ee1
|
||||
---
|
||||
|
||||
# Supprimer des pages {#remove-pages}
|
||||
|
||||
Supprimez des pages spécifiques d'un PDF en conservant toutes les pages restantes intactes.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/remove-pages`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| pages | string | Oui | - | Plage de pages à supprimer en syntaxe qpdf, par exemple `"3,5-7"` |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 1800000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Vous ne pouvez pas supprimer toutes les pages d'un document ; au moins une page doit rester.
|
||||
- Les plages de pages utilisent la syntaxe qpdf : `3` pour une page unique, `5-7` pour une plage, et des virgules pour combiner (par exemple `1,3,5-7`).
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: "Tenter de réparer un PDF endommagé ou corrompu."
|
||||
i18n_source_hash: 864073a2f09f
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: f27bf08f0819
|
||||
---
|
||||
|
||||
# Réparer un PDF {#repair-pdf}
|
||||
|
||||
Tentez de réparer un PDF endommagé ou corrompu en reconstruisant sa structure interne.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/repair-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF. Aucun champ `settings` n'est requis.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
Cet outil n'a aucun paramètre de réglage. Téléversez directement le fichier PDF endommagé.
|
||||
|
||||
## Exemple de requête {#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"
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/damaged.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2400000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- La validation structurelle est ignorée à l'entrée pour laisser passer les fichiers mal formés.
|
||||
- La réparation est effectuée au mieux ; les fichiers gravement corrompus peuvent ne pas être entièrement récupérables.
|
||||
- Le PDF réparé peut différer légèrement en taille de l'original en raison des tables de références croisées reconstruites.
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
description: "Faire pivoter les pages d'un PDF de 90, 180 ou 270 degrés."
|
||||
i18n_source_hash: cc2acd091427
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: d9d6423b1e2f
|
||||
---
|
||||
|
||||
# Faire pivoter un PDF {#rotate-pdf}
|
||||
|
||||
Faites pivoter toutes les pages ou des pages sélectionnées d'un PDF d'un angle spécifié.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/rotate-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| angle | integer | Non | `90` | Angle de rotation : `90`, `180`, ou `270` |
|
||||
| range | string | Non | `"1-z"` | Plage de pages en syntaxe qpdf, par exemple `"1-5,8"` (`"1-z"` = toutes les pages) |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2450000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- La rotation se fait dans le sens des aiguilles d'une montre.
|
||||
- Les plages de pages utilisent la syntaxe qpdf : `1-5` pour les pages 1 à 5, `z` pour la dernière page, et des virgules pour combiner des plages.
|
||||
- La plage par défaut `"1-z"` fait pivoter toutes les pages.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: "Apposer des images de signature téléversées sur un PDF à l'aide de placements de page normalisés."
|
||||
i18n_source_hash: c28f78c2e7fd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: e72288f186c4
|
||||
---
|
||||
|
||||
# Signer un PDF {#sign-pdf}
|
||||
|
||||
Apposez une ou plusieurs images de signature PNG téléversées sur n'importe quelle page d'un PDF. Cette route utilise un contrat multipart personnalisé car elle a besoin du PDF, d'une ou plusieurs images de signature et des coordonnées de placement.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/sign-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart. Le PDF est envoyé en tant que `file` ; les signatures sont envoyées en tant que `sig0`, `sig1`, et ainsi de suite ; les placements sont envoyés dans un champ JSON `placements`.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| file | file | Oui | - | Fichier PDF à signer |
|
||||
| sig0 | file | Oui | - | Première image de signature. Les images supplémentaires utilisent `sig1`, `sig2`, et ainsi de suite |
|
||||
| placements | JSON string | Oui | - | Tableau d'objets de placement : `{ "sig": 0, "page": 0, "x": 0.2, "y": 0.7, "w": 0.25, "h": 0.08 }` |
|
||||
| clientJobId | string | Non | - | UUID facultatif pour le suivi de la progression via SSE |
|
||||
| fileId | string | Non | - | ID de bibliothèque de fichiers facultatif pour enregistrer le résultat signé comme nouvelle version |
|
||||
|
||||
## Coordonnées de placement {#placement-coordinates}
|
||||
|
||||
| Champ | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| sig | integer | Index de l'image de signature. `0` correspond à `sig0` |
|
||||
| page | integer | Index de page PDF commençant à zéro |
|
||||
| x | number | Position gauche en fraction de page |
|
||||
| y | number | Position haute en fraction de page |
|
||||
| w | number | Largeur de la signature en fraction de page |
|
||||
| h | number | Hauteur de la signature en fraction de page |
|
||||
|
||||
Les coordonnées utilisent une origine en haut à gauche. Les valeurs peuvent légèrement dépasser le bord de la page ; le moteur de rendu PDF découpe le tampon final à la page.
|
||||
|
||||
## Exemple de requête {#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}]'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#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
|
||||
}
|
||||
```
|
||||
|
||||
Si la requête ne peut pas se terminer dans la fenêtre d'attente synchrone, l'API renvoie :
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
Connectez-vous à `/api/v1/jobs/<jobId>/progress` et téléchargez le résultat une fois le travail terminé.
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Format d'entrée PDF accepté : `.pdf`.
|
||||
- Les images de signature doivent être des fichiers image valides, généralement au format PNG avec transparence.
|
||||
- Jusqu'à 100 images de signature et 100 placements sont acceptés.
|
||||
- `sign-pdf` est une route personnalisée et n'utilise pas le champ JSON `settings` d'outil standard.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: "Extraire des pages ou diviser un PDF en plusieurs parties."
|
||||
i18n_source_hash: 5c8d8041d219
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b6b3e592a9c3
|
||||
---
|
||||
|
||||
# Diviser un PDF {#split-pdf}
|
||||
|
||||
Extrayez une plage de pages vers un nouveau PDF, ou divisez un document en blocs de N pages.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/split-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| mode | string | Non | `"range"` | Mode de division : `range` ou `every` |
|
||||
| range | string | Lorsque le mode est `range` | - | Plage de pages en syntaxe qpdf, par exemple `"1-5,8,10-z"` |
|
||||
| everyN | integer | Lorsque le mode est `every` | - | Diviser en blocs de N pages (1-500) |
|
||||
|
||||
## Exemple de requête {#example-request}
|
||||
|
||||
Extraire des pages spécifiques :
|
||||
|
||||
```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"}'
|
||||
```
|
||||
|
||||
Diviser en blocs de 10 pages :
|
||||
|
||||
```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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 980000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- En mode `range`, un seul PDF contenant les pages sélectionnées est renvoyé.
|
||||
- En mode `every`, le résultat est une archive ZIP contenant les parties individuelles.
|
||||
- Les plages de pages utilisent la syntaxe qpdf : `1-5` pour les pages 1 à 5, `z` pour la dernière page, et des virgules pour combiner des plages (par exemple `1-3,7,10-z`).
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: "Supprimer la protection par mot de passe d'un PDF."
|
||||
i18n_source_hash: 14f5165d185c
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: 2d6702e0a6b5
|
||||
---
|
||||
|
||||
# Déverrouiller un PDF {#unlock-pdf}
|
||||
|
||||
Supprimez la protection par mot de passe d'un PDF chiffré en fournissant le mot de passe correct.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/unlock-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| password | string | Oui | - | Mot de passe pour déchiffrer le PDF (1-256 caractères) |
|
||||
|
||||
## Exemple de requête {#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"}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2500000,
|
||||
"processedSize": 2450000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Le mot de passe correct doit être fourni ; un mot de passe incorrect renvoie une erreur 400.
|
||||
- Le mot de passe utilisateur ou le mot de passe propriétaire fonctionnera pour le déchiffrement.
|
||||
- Les mots de passe sont masqués dans les journaux d'audit.
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: "Ajouter un filigrane textuel à chaque page d'un PDF."
|
||||
i18n_source_hash: f1f7d8912fbd
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: b2024fb0f76a
|
||||
---
|
||||
|
||||
# Filigraner un PDF {#watermark-pdf}
|
||||
|
||||
Apposez un filigrane textuel sur chaque page d'un PDF avec une position, une taille, une opacité et une rotation configurables.
|
||||
|
||||
## Point de terminaison de l'API {#api-endpoint}
|
||||
|
||||
`POST /api/v1/tools/pdf/watermark-pdf`
|
||||
|
||||
Accepte des données de formulaire multipart avec un fichier PDF et un champ `settings` au format JSON.
|
||||
|
||||
## Paramètres {#parameters}
|
||||
|
||||
| Paramètre | Type | Requis | Par défaut | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| text | string | Oui | - | Texte du filigrane (1-200 caractères) |
|
||||
| position | string | Non | `"c"` | Emplacement sur la page : `tl`, `tc`, `tr`, `l`, `c`, `r`, `bl`, `bc`, `br` |
|
||||
| fontSize | integer | Non | `48` | Taille de police en points (6-72) |
|
||||
| opacity | number | Non | `0.3` | Opacité du filigrane (0.05-1) |
|
||||
| rotation | number | Non | `45` | Angle de rotation en degrés (-180 à 180) |
|
||||
|
||||
### Valeurs de position {#position-values}
|
||||
|
||||
- `tl` en haut à gauche, `tc` en haut au centre, `tr` en haut à droite
|
||||
- `l` au centre à gauche, `c` au centre, `r` au centre à droite
|
||||
- `bl` en bas à gauche, `bc` en bas au centre, `br` en bas à droite
|
||||
|
||||
## Exemple de requête {#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}'
|
||||
```
|
||||
|
||||
## Exemple de réponse {#example-response}
|
||||
|
||||
```json
|
||||
{
|
||||
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/document.pdf",
|
||||
"originalSize": 2450000,
|
||||
"processedSize": 2500000
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques {#notes}
|
||||
|
||||
- Le filigrane est rendu sous forme de superposition de texte sur chaque page.
|
||||
- Le même texte, la même position et le même style de filigrane sont appliqués uniformément à toutes les pages.
|
||||
- Utilisez des valeurs d'opacité plus faibles (0.1-0.3) pour des filigranes subtils qui n'obscurcissent pas le contenu.
|
||||
Reference in New Issue
Block a user