Ressources
Importer une ressource
Les logos, signatures et polices sont importés une seule fois puis référencés par ID. La requête est multipart ; le fichier est placé dans un champ nommé file et altText est facultatif.
curl -X POST https://api.pdfgine.com/api/v1/assets \
-H "X-PDFgine-Key: $PDFGINE_KEY" \
-F "file=@logo.png" \
-F "altText=Logo de l’entreprise"
{
"assetId": "ast_985f87e2b22d486db2d6d8bacd29288e",
"fileName": "logo.png",
"contentType": "image/png",
"length": 20184,
"altText": "Logo de l’entreprise",
"createdAt": "2026-09-26T15:29:44.8420041+00:00",
"expiresAt": null,
"fontEmbedding": null
}
Le type est lu à partir des premiers octets du fichier, pas du Content-Type envoyé : un .png qui est en réalité un PDF est refusé. Les formats PNG, JPEG, WebP, TTF et OTF sont acceptés, jusqu’à 10 MB par fichier.
Utilisation dans un document
Envoyez l’ID à l’endroit où le modèle attend une image. Le même champ accepte aussi une URI data:, mais une ressource importée est plus légère à transmettre et peut être réutilisée.
curl -X POST https://api.pdfgine.com/api/v1/render \
-H "X-PDFgine-Key: $PDFGINE_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateCode": "invoice",
"format": "pdf",
"data": { "logo": "ast_985f87e2b22d486db2d6d8bacd29288e" }
}'
Ressources temporaires, liste et suppression
Une image nécessaire à un seul document n’a pas besoin d’être supprimée manuellement : indiquez expiresInMinutes entre 1 et 10080 (sept jours), et la ressource se supprimera automatiquement.
curl -X POST https://api.pdfgine.com/api/v1/assets \
-H "X-PDFgine-Key: $PDFGINE_KEY" \
-F "file=@signature.png" \
-F "expiresInMinutes=60"
# Liste, contenu d’une ressource et suppression
curl https://api.pdfgine.com/api/v1/assets -H "X-PDFgine-Key: $PDFGINE_KEY"
curl https://api.pdfgine.com/api/v1/assets/ast_985f87e2b22d486db2d6d8bacd29288e/content \
-H "X-PDFgine-Key: $PDFGINE_KEY" -o logo.png
curl -X DELETE https://api.pdfgine.com/api/v1/assets/ast_985f87e2b22d486db2d6d8bacd29288e \
-H "X-PDFgine-Key: $PDFGINE_KEY"
Polices et autorisations d’incorporation
Le fichier de police indique dans ses bits fsType les usages autorisés dans un document. PDFgine les lit à l’importation et répond avec fontEmbedding ; vous connaissez ainsi les autorisations avant de produire le document plutôt qu’après son ouverture.
fontEmbedding |
Usages autorisés dans le document |
|---|---|
installable | Aucune restriction ; incorporée dans le PDF et dans Word. |
editable | Incorporée dans le PDF et dans Word. |
preview-print | Incorporée dans le PDF. Non incorporée dans Word, car un document Word peut être modifié ; Word remplace la police. |
restricted | Non incorporée, quel que soit le format. Le document est tout de même produit et utilise une police disponible chez le lecteur. |
bitmap-only | Seule l’incorporation bitmap est autorisée, ce qu’un document ne peut pas utiliser. Non incorporée. |
unstated | Le fichier ne déclare aucune autorisation. Il est considéré comme incorporable, conformément à la spécification OpenType. |
WOFF et WOFF2 sont refusés à l’importation. Ils ne peuvent pas être incorporés dans un document Word ; le même modèle serait alors correct en PDF et incorrect dans Word, une différence que vous ne remarqueriez qu’après l’envoi du document.
Polices intégrées
Ces familles sont fournies avec le produit ; utilisez leur nom dans style.fontFamily et page.defaultFont. La même police est utilisée dans le PDF, dans Word et dans l’éditeur. Une graisse absente n’est pas refusée ; la variante la plus proche est utilisée.
| Famille | Groupe | Graisses | Systèmes d’écriture |
|---|---|---|---|
Inter |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, greek, cyrillic, vietnamese |
Roboto |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, greek, cyrillic, vietnamese |
Montserrat |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, cyrillic, vietnamese |
Poppins |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin |
DM Sans |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin |
Nunito |
sans |
200, 300, 400, 500, 600, 700, 800, 900 | latin, cyrillic, vietnamese |
Manrope |
sans |
200, 300, 400, 500, 600, 700, 800 | latin, greek, cyrillic, vietnamese |
Noto Sans |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, greek, cyrillic, vietnamese |
Plus Jakarta Sans |
sans |
200, 300, 400, 500, 600, 700, 800 | latin, vietnamese |
Work Sans |
sans |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, vietnamese |
Roboto Condensed |
condensed |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, greek, cyrillic, vietnamese |
Oswald |
condensed |
200, 300, 400, 500, 600, 700 | latin, latin-ext, cyrillic, vietnamese |
Noto Serif |
serif |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, greek, cyrillic, vietnamese |
EB Garamond |
serif |
400, 500, 600, 700, 800 | latin, latin-ext, greek, cyrillic, vietnamese |
Newsreader |
serif |
200, 300, 400, 500, 600, 700, 800 | latin, vietnamese |
Literata |
serif |
200, 300, 400, 500, 600, 700, 800, 900 | latin, greek, cyrillic, vietnamese |
Tinos |
serif |
400, 700 | latin, latin-ext, greek, cyrillic, vietnamese |
Rokkitt |
serif |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, vietnamese |
Inconsolata |
mono |
200, 300, 400, 500, 600, 700, 800, 900 | latin, vietnamese |
Noto Sans Mono |
mono |
100, 200, 300, 400, 500, 600, 700, 800, 900 | latin, latin-ext, greek, cyrillic, vietnamese |
Arial |
system |
400, 700 | |
Georgia |
system |
400, 700 |
Cas de refus d’une importation
Chaque refus renvoie une réponse 400 avec le motif dans errors.file. Affichez cette phrase à la personne qui importe le fichier ; elle indique déjà la marche à suivre.
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"errors": {
"file": ["Importez une police TTF ou OTF pour qu’elle puisse être utilisée dans la sortie Word. Les fichiers WOFF et WOFF2 ne peuvent pas être incorporés dans un document Word."]
},
"correlationId": "505aac87e234a7b4669e6203ac7ffcd5"
}
Les problèmes les plus courants
- Le type est lu dans les premiers octets, pas dans le nom. Renommer un PDF en .png n’en fait pas une image ; l’importation est refusée.
- WOFF et WOFF2 sont volontairement refusés. Ils ne peuvent pas être incorporés dans Word ; le même modèle serait correct en PDF et incorrect dans Word. Importez TTF ou OTF.
- La réponse d’importation contient fontEmbedding. L’ignorer revient à découvrir le remplacement de la police après l’envoi du document.
- Une URI data: accompagne chaque requête. Pour un logo présent sur chaque document, importez-le une seule fois et envoyez son ID.
- Une image nécessaire à un document n’a pas besoin de nettoyage manuel. Indiquez expiresInMinutes et elle se supprimera automatiquement.