PDF Blocks
TarifsSupport
Commencer gratuitement
Ouvrir la page

Formats de réponse et négociation de contenu

Ce que renvoie une action, et comment l’en-tête Accept choisit entre un PDF, un ZIP, une enveloppe JSON et multipart/mixed.

La plupart des actions renvoient un seul document application/pdf. Les quatre actions de division en renvoient plusieurs d’un coup, et vous choisissez leur conditionnement avec l’en-tête de requête Accept. Cette page est la référence de cette négociation de contenu : les options de conditionnement, le schéma de l’enveloppe JSON et ce qui se passe quand un en-tête Accept ne correspond à rien.

Réponses à un seul document

Toute action qui n’est pas une division répond 200 OK avec le PDF traité comme corps brut :

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213

Il n’y a rien à négocier : écrivez le corps en flux dans un fichier, comme le font les exemples de chaque page d’action.

Réponses à plusieurs documents

La famille des divisions renvoie plusieurs documents en un seul appel : Diviser par nombre de pages, Diviser à une page, Diviser par taille de fichier et Diviser en groupes de pages. Les documents de sortie sont nommés 00001.pdf, 00002.pdf, et ainsi de suite, dans l’ordre. Vous sélectionnez le conditionnement avec l’en-tête de requête Accept :

En-tête Accept Réponse
(aucun envoyé) application/zip, le format par défaut
application/zip Une archive ZIP des PDF de sortie
application/json Une enveloppe JSON de documents encodés en base64
multipart/mixed Un PDF par partie
toute autre valeur 406 Not Acceptable

application/zip, le format par défaut

Sans en-tête Accept (ou avec Accept: application/zip), la réponse est une archive ZIP dont les entrées sont nommées 00001.pdf, 00002.pdf, et ainsi de suite :

cURLbash
curl https://api.pdfblocks.com/v1/split_by_page_count \
  -H 'X-API-Key: your_api_key' \
  -F file=@input.pdf \
  -F page_count=10 \
  -o parts.zip

Décompressez parts.zip pour obtenir les documents individuels.

application/json, l’enveloppe base64

Demandez Accept: application/json pour obtenir tous les documents en ligne dans une seule réponse JSON, ce qui est pratique quand vous voulez garder les parties en mémoire ou les transmettre sans toucher au système de fichiers :

cURLbash
curl https://api.pdfblocks.com/v1/split_by_page_count \
  -H 'X-API-Key: your_api_key' \
  -H 'Accept: application/json' \
  -F file=@input.pdf \
  -F page_count=10 \
  -o parts.json

Le corps est un tableau documents dont chaque entrée porte son nom et ses octets encodés en base64 :

{
  "documents": [
    {
      "name": "00001.pdf",
      "content": "JVBERi0xLjcKJeLjz9MK... (base64)",
      "content_type": "application/pdf"
    },
    {
      "name": "00002.pdf",
      "content": "JVBERi0xLjcKJeLjz9MK... (base64)",
      "content_type": "application/pdf"
    }
  ]
}
documentsarrayrequired

Les documents PDF de sortie, dans l’ordre.

documents[].namestringrequired

Le nom du document : 00001.pdf, 00002.pdf, et ainsi de suite.

documents[].contentstring (base64)required

Le document PDF, encodé en base64. Décodez-le pour retrouver les octets bruts du PDF.

documents[].content_typestringrequired

Le type de média du document : application/pdf.

multipart/mixed, une partie par document

Demandez Accept: multipart/mixed pour recevoir les documents en flux, dans un corps multipart avec une partie par PDF de sortie, dans l’ordre. Chaque partie a un Content-Type valant application/pdf et un Content-Disposition qui la nomme 00001.pdf, 00002.pdf, et ainsi de suite.

cURLbash
curl https://api.pdfblocks.com/v1/split_by_page_count \
  -H 'X-API-Key: your_api_key' \
  -H 'Accept: multipart/mixed' \
  -F file=@input.pdf \
  -F page_count=10 \
  -o parts.multipart

Un Accept sans correspondance renvoie 406

Si vous envoyez un en-tête Accept qui ne correspond à aucun des trois formats ci-dessus, par exemple Accept: application/pdf sur une action de division, l’API répond 406 Not Acceptable avec un corps application/problem+json. Soit vous omettez Accept pour prendre le ZIP par défaut, soit vous demandez l’un des types de média pris en charge. Voir Erreurs pour la forme des problem details.

Pour du code de bout en bout qui appelle une action de division et déballe chaque format, en extrayant le ZIP, en décodant l’enveloppe JSON ou en lisant les parties multipart, voir le guide Diviser un PDF et traiter la sortie.