Pour les développeurs
Le rendu passe par l'API. Ce n'est pas une limite, c'est le principe.
Quelqu'un d'autre a construit le template. Vous envoyez du JSON à un endpoint et récupérez un résultat de rendu — le statut de chaque document, un lien de téléchargement signé et les octets du PDF eux-mêmes si vous les demandez — en synchrone pour un document unique, ou en tâche mise en file avec webhook signé pour un lot. Six SDK natifs sont disponibles, plus une API REST simple.
{
"documents": [{
"customer":
"Acme Inc.",
"total": 1240.00,
"lines": [ … ]
}]
}Démarrage rapide
Générez votre premier PDF en quelques lignes
Tous les SDK suivent la même forme : l'exemple ci-dessous constitue l'intégration complète dans chacun d'eux. Choisissez votre stack :
var pagr = new PagrClient( Environment.GetEnvironmentVariable("PAGR_KEY")); var result = await pagr.RenderAsync(templateId, new[] { new { customer = "Acme Inc.", total = 1240.00m, lines = order.Lines } }); // result.Status, result.Documents[0].ViewUrl
La passation
Vous recevez la spécification markdown complète du template
Chaque champ lié, son type, s'il est toujours requis ou conditionnel, une valeur d'exemple et le formatage appliqué par le template : tout y est listé. Confiez-le à votre assistant IA pour rédiger le mapping des données, ou lisez-le simplement et terminez en dix minutes.
# epc certificate — data model · v1 (draft) ## Root object | Field | Type | Required | Example | |---------------------|--------|-------------|--------------| | `certificateNumber` | string | Always | "20240117-1" | | `postalCode` | string | Always | "9000" | | `buildingPhoto` | image | Always | "https://…" | | `energyScore` | number | Always | 148 | | `expiryDate` | date | Always | "2035-01-17" | | `remarks` | string | Conditional | null | `energyScore` prints as "148 kWh/m²", `expiryDate` as "17 January 2035" — send raw values, the template formats. … 4 more fields omitted.
Généré depuis le template, pas de mémoire
Il est extrait du template qui effectue le rendu : il ne peut pas être obsolète. Quand le document change, générez à nouveau la spécification et comparez-la à la précédente pour voir exactement quels champs ont bougé.
Requis ou conditionnel, indiqué explicitement
« Toujours » signifie que le champ est lié hors de toute condition. « Conditionnel » signifie qu'il se trouve dans un élément conditionnel ou une branche ternaire et peut légitimement être absent.
Envoyez des valeurs brutes
Un nombre est un nombre et une date est une date ISO. Le template gère le formatage : vous ne construisez pas de chaînes de votre côté.
Images par URL
Envoyez une URL pour les photos et les logos. Les codes-barres et QR codes, vous ne les envoyez pas : le template les génère à partir de la valeur présente dans votre JSON.
SDK
Six clients, un seul comportement
Chaque SDK est écrit pour paraître natif dans son langage et maintenu à parité. Chacun est sur GitHub — choisissez un langage pour ouvrir son dépôt.
Génération en masse
Le volume passe par le code, pas par l'interface
Le rendu en masse, c'est du JSON vers l'API — un tableau de documents en un seul appel, ou une tâche asynchrone sur un ensemble plus large. C'est la version du traitement par lot qui tient encore quand un enregistrement est mal formé à 2 h du matin.
Un document, tout de suite
Appelez render et la réponse contient le résultat : statut, nombre de pages et lien de téléchargement signé, avec les octets du PDF intégrés si vous les demandez. À utiliser dans un chemin de requête : un utilisateur clique sur « télécharger la facture » et le document arrive.
Lancez et oubliez, à grande échelle
Mettez une tâche en file et passez à autre chose. À la fin, vous recevez un webhook signé et horodaté — HMAC-SHA256, compatible rotation — au lieu qu'on vous demande de faire confiance à une réponse.
Directement vers l'utilisateur
Demandez le PDF brut et lancez le rendu sans persistance : les octets passent directement dans votre réponse. Rien à nettoyer, rien qui traîne dans un bucket en attendant de devenir une question de conformité.
Pagr ne distribue pas les documents. La génération s'arrête à la remise du PDF — l'envoi vers un client, un portail ou une archive reste dans votre système, là où la piste d'audit existe déjà. Le stockage, c'est votre choix : gardez les fichiers générés dans Pagr avec une durée de conservation que vous définissez, ou effectuez le rendu sans persistance et rien n'est conservé.
Plateforme
Conçu pour vivre sous un produit, pas à côté
Le multi-tenant n'est pas un palier tarifaire ici. Organisations, projets, templates versionnés, clés à portée limitée et suivi de consommation : c'est ainsi que la plateforme est construite.
Organisations et projets
Séparez proprement vos environnements et vos clients, avec des clés API limitées à chacun.
Templates versionnés
Épinglez une version par appel. Revenez sur une mauvaise modification sans toucher à un déploiement.
Consommation et pistes d'audit
Sachez ce qui a été généré, depuis quelle version de template, avec quelle clé.
Prenez une clé et générez quelque chose.
Un espace de travail gratuit, une clé de test et 100 rendus par mois. Aucune carte bancaire requise.


