Travailler avec les fichiers
Comment joindre des fichiers d’entrée à une requête : un seul PDF, une liste ordonnée pour la fusion, une seconde image pour les filigranes, et les limites de chacun.
Les entrées sont envoyées comme parties binaires d’une requête
multipart/form-data. La plupart des actions prennent exactement un PDF dans un
champ file, mais deux actions en demandent davantage : la fusion prend un
tableau ordonné de fichiers, et le filigrane image prend un second binaire à côté
du PDF. Cette page couvre les trois formes d’entrée.
Un seul fichier
Le cas par défaut. Joignez un PDF dans le champ file et ajoutez les options de
l’action sous forme de champs texte :
curl https://api.pdfblocks.com/v1/extract_pages \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F pages='1..3' \
-o extract.pdfLe @ de -F file=@input.pdf indique à cURL d’envoyer le contenu du fichier.
Toutes les actions à entrée unique (filigranes, sécurité, opérations sur les
pages, divisions) fonctionnent ainsi.
Plusieurs fichiers : la fusion
Fusionner des documents est la seule action
qui accepte un tableau. Envoyez le champ file plusieurs fois et les
documents sont fusionnés dans l’ordre où les parties apparaissent dans la
requête. Fournissez au moins un fichier ; vous pouvez en envoyer beaucoup en un
seul appel.
L’ordre est positionnel : envoyez donc les parties dans la séquence où vous
voulez les fusionner. Quand votre client HTTP expose un objet formulaire,
utilisez sa méthode append (et non set) pour que la répétition de file
ajoute des parties au lieu d’écraser la précédente.
curl https://api.pdfblocks.com/v1/merge_documents \
-H 'X-API-Key: your_api_key' \
-F file=@cover.pdf \
-F file=@body.pdf \
-F file=@appendix.pdf \
-o merged.pdf# pip install requests
import requests
files = [
('file', ('cover.pdf', open('cover.pdf', 'rb'), 'application/pdf')),
('file', ('body.pdf', open('body.pdf', 'rb'), 'application/pdf')),
('file', ('appendix.pdf', open('appendix.pdf', 'rb'), 'application/pdf')),
]
response = requests.post(
'https://api.pdfblocks.com/v1/merge_documents',
headers={'X-API-Key': 'your_api_key'},
files=files,
)
response.raise_for_status()
with open('merged.pdf', 'wb') as output:
output.write(response.content)// Node.js 18+
import { readFile, writeFile } from 'node:fs/promises';
const body = new FormData();
for (const name of ['cover.pdf', 'body.pdf', 'appendix.pdf']) {
body.append('file', new Blob([await readFile(name)]), name);
}
const response = await fetch('https://api.pdfblocks.com/v1/merge_documents', {
method: 'POST',
headers: { 'X-API-Key': 'your_api_key' },
body,
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
await writeFile('merged.pdf', Buffer.from(await response.arrayBuffer()));Si répéter le champ file est malcommode dans votre client HTTP (cURL en PHP,
les assistants de formulaire en Ruby), envoyez plutôt des champs numérotés de
file_1 à file_10 : ils sont fusionnés dans l’ordre numérique. Utilisez le
tableau file répété quand il vous faut plus de dix documents.
Une image à côté du PDF : le filigrane image
Ajouter un filigrane image prend
deux parties binaires : le PDF dans file et l’image du filigrane dans un champ
image. L’image doit être au format PNG ou JPEG. Les deux parties sont
obligatoires.
curl https://api.pdfblocks.com/v1/add_image_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F image=@logo.png \
-o watermarked.pdfLes champs restants (transparency, margin et pages) sont des options texte
ordinaires. Consultez la référence de l’action pour leurs plages et leurs valeurs
par défaut.
Entrées acceptées et taille
- L’entrée
file(et chaque fichier fusionné) doit être un PDF lisible. Un fichier qui ne peut pas être analysé comme un PDF renvoie un400qui nomme le champfile. Consultez Erreurs. - L’entrée
imagedu filigrane image doit être au format PNG ou JPEG. - Les pages qu’une action touche sont une question distincte de la façon dont
vous joignez le fichier. Exprimez vos sélections de pages avec le champ
pagesdocumenté dans Sélectionner des pages.
Pour les gros documents (envoi et téléchargement en flux, délais d’attente, nouvelles tentatives), consultez Travailler avec de gros fichiers.