Générer des documents (multiples)
PDF4me Générer des documents (multiples) affiche plusieurs documents en un seul REST Appel. Envoyez un seul mot. HTML, ou PDF modèle (Base64, URLou cru HTML) plus un tableau d'enregistrements (JSON ou XML, comme texte, Base64 fichier, ou URL). Renvoie un JSON liste des fichiers générés (une entrée par enregistrement) comme Base64 dans outputDocuments[].streamFile, ou une seule valeur binaire en fonction de la réponse.
Authentification de votre API Demande
Chaque PDF4me REST L'appel doit inclure votre API clé dans le Authorization En-tête : Authentification de base. Récupérez ou renouvelez votre clé depuis le tableau de bord développeur.
Point de terminaison
/api/v2/GenerateDocumentMultipleLe nom du point de terminaison est GénérerDocumentMultiple (singulier) Document), pas Générer des documents multiples.
Informations importantes à ne pas manquer
outputDocuments[]nom de fichier et une base64 fluxFichier (parfois contenu du fichier, contenu, ou donnéesDécodez chaque chaîne base64 pour enregistrer le fichier.Docx, HTML, PDF. Types de données limités à Json, XMLLa sortie ajoute xlsx pour Word / PDF modèles.HTTP installation
Méthode: POSTE
URL: https://api.pdf4me.com/api/v2/GenerateDocumentMultiple
Type de contenu : application/json
Autorisation: Basique <votre PDF4me API clé>
Envoyer IsAsync : vrai dans le corps. 200 peut retourner JSON avec outputDocuments[] ou un seul fichier binaire. 202 renvoie un Emplacement En-tête avec un sondage URL.
Différences vs Générer un document (unique)
| Sujet | Multiple | Célibataire |
|---|---|---|
| Endpoint | /api/v2/GenerateDocumentMultiple | /api/v2/GenerateDocumentSingle |
| templateFileType | Docx, HTML, PDF only | Also MailMerge, GoogleDocs |
| documentDataType | Json, XML only | Also Csv |
| outputType | PDF, Docx, xlsx (Word/PDF), HTML | No xlsx |
| Data shape | Typically array of records (one doc per row) | Usually one object |
| outputFileName | Integration-UI only (output naming) | Not in API body either |
Matrice des variantes (pertinente pour Postman)
Modèle (templateFileData)
| Code | Source | valeur du facteur | Également requis |
|---|---|---|---|
| T1 | Base64 | Base64 template (strip data:...;base64, prefix if present) | templateFileName |
| T2 | URL | HTTPS URL string | templateFileName |
| T3 | HTML code | Base64(UTF-8 HTML): Buffer.from(html, "utf8").toString("base64") | templateFileName, templateFileType: HTML |
Données du document
| Code | Source | Champ API | valeur du facteur |
|---|---|---|---|
| D1 | Text | documentDataText | JSON array (or XML with multiple records) |
| D2 | Base64 | documentDataFile | Base64 of the .json / .xml file |
| D3 | URL | documentDataFile | URL to the data file |
Utilisez l'un ou l'autre documentDataText ou fichier de données du document (omettre le champ inutilisé).
templateFileType → type de sortie autorisé
type de fichier modèle | Autorisé type de sortie |
|---|---|
Docx | PDF, Docx, xlsx |
PDF | PDF, Docx, xlsx |
HTML | HTML only |
API champs corporels
Toujours envoyé
| Champ | Requis | Taper | Notes |
|---|---|---|---|
templateFileType | Yes | string | Docx, HTML, PDF |
templateFileName | Yes | string | e.g. template.docx, template.html, template.pdf |
templateFileData | Yes | string | Base64 template, or template URL |
documentDataType | Yes | string | Json or XML (exact casing) |
outputType | Yes | string | PDF, Docx, xlsx, or HTML |
IsAsync | Yes | boolean | true |
Données du document (un seul chemin)
| Champ | Requis lorsque | Taper | Notes |
|---|---|---|---|
documentDataText | D1 | string | Valid JSON (JSON.parse) or XML-like for XML |
documentDataFile | D2 or D3 | string | Base64 data file or URL |
Facultatif
| Champ | Quand | Défaut |
|---|---|---|
KeepPdfEditable | outputType is PDF | false |
Règles de validation
| Vérifier | Détail |
|---|---|
| Template URL / base64 | Same rules as Single. |
| HTML code | Only when templateFileType is HTML. |
| JSON text | Must parse with JSON.parse. |
| XML text | Looser than Single (no strict tag check); send XML the template expects. |
| Data source | documentDataFile or documentDataText is required. |
Forme des données à enregistrements multiples
Pour JSON, utilisez un tableau d'objets (un objet par document généré) :
[
]
Pour XMLUtilisez une structure que votre modèle attend pour les lignes répétitives (même principe que le publipostage). API ne vérifie que JSON analyse ; le moteur détermine le nombre de documents produits.
API réponse (Facteur)
Souvent, le format JSON ressemble à ceci :
{
"outputDocuments": [
{
"fileName": "document1.pdf",
"streamFile": "<base64>"
}
]
}
Le nom du champ peut également apparaître comme fileContent, content, ou dataDécodez chaque Base64 chaîne de caractères permettant d'enregistrer chaque fichier.
Exemples de charges utiles
1. Modèle Word (base64) + JSON tableau (texte) → multiple PDFs
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataText": "[{\"name\": \"Alice\", \"email\": \"[email protected]\"}, {\"name\": \"Bob\", \"email\": \"[email protected]\"}]",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}
2. Modèle Word (URL) + JSON données (URL) → PDFs
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "Json",
"documentDataFile": "https://example.com/customers.json",
"outputType": "PDF",
"IsAsync": true
}
3. Modèle Word (base64) + JSON fichier (base64) → Excel (xlsx)
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "W3sibmFtZSI6ICJBbGljZSJ9LCB7Im5hbWUiOiAiQm9iIn1d",
"outputType": "xlsx",
"IsAsync": true
}
(documentDataFile = base64 de [{"name":"Alice"},{"name":"Bob"}].)
4. HTML modèle (base64) + JSON tableau (texte) → HTML
{
"templateFileType": "HTML",
"templateFileName": "template.html",
"templateFileData": "PCFET0NUWVBFIGh0bWw+...",
"documentDataType": "Json",
"documentDataText": "[{\"title\": \"Invoice 1\", \"heading\": \"Hello\", \"content\": \"A\"}, {\"title\": \"Invoice 2\", \"heading\": \"Hi\", \"content\": \"B\"}]",
"outputType": "HTML",
"IsAsync": true
}
5. PDF modèle (URL) + XML (texte) → multiple PDFs
{
"templateFileType": "PDF",
"templateFileName": "template.pdf",
"templateFileData": "https://example.com/template.pdf",
"documentDataType": "XML",
"documentDataText": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><records><record><name>Alice</name></record><record><name>Bob</name></record></records>",
"outputType": "PDF",
"KeepPdfEditable": true,
"IsAsync": true
}
6. Modèle Word (base64) + XML (URL) → Word (Docx)
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "XML",
"documentDataFile": "https://example.com/data.xml",
"outputType": "Docx",
"IsAsync": true
}
Conseils pour la collecte par le facteur
Exemple curl
curl -X POST https://api.pdf4me.com/api/v2/GenerateDocumentMultiple \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "Json",
"documentDataText": "[{\"name\":\"Alice\"},{\"name\":\"Bob\"}]",
"outputType": "PDF",
"IsAsync": true
}' \
--output response.json
Référence rapide : obligatoire ou facultatif selon la variante
| Champ | T1+D1 | T2+D3 | T1+D2 | T3+D1 | Sortie PDF |
|---|---|---|---|---|---|
templateFileType | Req | Req | Req | Req | Req |
templateFileName | Req | Req | Req | Req | Req |
templateFileData | Req (b64) | Req (URL) | Req (b64) | Req (b64) | Req |
documentDataType | Req | Req | Req | Req | Req |
outputType | Req | Req | Req | Req | Req |
documentDataText | Req | Omit | Omit | Req | Omit |
documentDataFile | Omit | Req | Req | Omit | Omit |
IsAsync | Req | Req | Req | Req | Req |
KeepPdfEditable | Opt | Opt | Opt | N/A* | Opt |
*Uniquement lorsque type de sortie est PDF.