Aller au contenu principal

Générer des documents (multiples)

Que fait ce point de terminaison ?

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.

Articles de blog connexes
Il n'y a pas encore d'article de blog consacré à cette fonctionnalité — à venir prochainement.
En attendant, n'hésitez pas à consulter le blog de PDF4me pour découvrir des tutoriels et des procédures de travail adaptés à toutes les plateformes.
Consultez le blog

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

POSTE/api/v2/GenerateDocumentMultiple

Le nom du point de terminaison est GénérerDocumentMultiple (singulier) Document), pas Générer des documents multiples.

Informations importantes à ne pas manquer

Un modèle, de nombreux enregistrements
Envoyer un JSON tableau (ou enregistrement répétitif) XML) dans votre charge utile de données. Le moteur génère un document de sortie par élément du tableau et les renvoie ensemble.
La réponse est généralement JSON outputDocuments[]
Chaque entrée a un nom de fichier et une base64 fluxFichier (parfois contenu du fichier, contenu, ou donnéesDécodez chaque chaîne base64 pour enregistrer le fichier.
Diffère de la version simple : pas de fichiers CSV ni XLSX autorisés, moins de types de modèles
Types de modèles limités à 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)

SujetMultipleCélibataire
Endpoint/api/v2/GenerateDocumentMultiple/api/v2/GenerateDocumentSingle
templateFileTypeDocx, HTML, PDF onlyAlso MailMerge, GoogleDocs
documentDataTypeJson, XML onlyAlso Csv
outputTypePDF, Docx, xlsx (Word/PDF), HTMLNo xlsx
Data shapeTypically array of records (one doc per row)Usually one object
outputFileNameIntegration-UI only (output naming)Not in API body either

Matrice des variantes (pertinente pour Postman)

Modèle (templateFileData)

CodeSourcevaleur du facteurÉgalement requis
T1Base64Base64 template (strip data:...;base64, prefix if present)templateFileName
T2URLHTTPS URL stringtemplateFileName
T3HTML codeBase64(UTF-8 HTML): Buffer.from(html, "utf8").toString("base64")templateFileName, templateFileType: HTML

Données du document

CodeSourceChamp APIvaleur du facteur
D1TextdocumentDataTextJSON array (or XML with multiple records)
D2Base64documentDataFileBase64 of the .json / .xml file
D3URLdocumentDataFileURL 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èleAutorisé type de sortie
DocxPDF, Docx, xlsx
PDFPDF, Docx, xlsx
HTMLHTML only

API champs corporels

Toujours envoyé

ChampRequisTaperNotes
templateFileTypeYesstringDocx, HTML, PDF
templateFileNameYesstringe.g. template.docx, template.html, template.pdf
templateFileDataYesstringBase64 template, or template URL
documentDataTypeYesstringJson or XML (exact casing)
outputTypeYesstringPDF, Docx, xlsx, or HTML
IsAsyncYesbooleantrue

Données du document (un seul chemin)

ChampRequis lorsqueTaperNotes
documentDataTextD1stringValid JSON (JSON.parse) or XML-like for XML
documentDataFileD2 or D3stringBase64 data file or URL

Facultatif

ChampQuandDéfaut
KeepPdfEditableoutputType is PDFfalse

Règles de validation

VérifierDétail
Template URL / base64Same rules as Single.
HTML codeOnly when templateFileType is HTML.
JSON textMust parse with JSON.parse.
XML textLooser than Single (no strict tag check); send XML the template expects.
Data sourcedocumentDataFile or documentDataText is required.

Forme des données à enregistrements multiples

Pour JSON, utilisez un tableau d'objets (un objet par document généré) :

[
{ "name": "Alice", "email": "[email protected]" },
{ "name": "Bob", "email": "[email protected]" }
]

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

Array data
Prefer a JSON array in documentDataText when documentDataType is Json and you expect more than one file.
Filename match
Match the extension in templateFileName to templateFileType.
Base64 of file
For D2, base64-encode the whole data file (not each row separately).
Decode response
If the response is JSON, decode each outputDocuments[].streamFile (or fileContent / content / data) from base64.
Endpoint name
Endpoint name is GenerateDocumentMultiple (singular Document), not GenerateDocumentsMultiple.

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

ChampT1+D1T2+D3T1+D2T3+D1Sortie PDF
templateFileTypeReqReqReqReqReq
templateFileNameReqReqReqReqReq
templateFileDataReq (b64)Req (URL)Req (b64)Req (b64)Req
documentDataTypeReqReqReqReqReq
outputTypeReqReqReqReqReq
documentDataTextReqOmitOmitReqOmit
documentDataFileOmitReqReqOmitOmit
IsAsyncReqReqReqReqReq
KeepPdfEditableOptOptOptN/A*Opt

*Uniquement lorsque type de sortie est PDF.

Exemples de code

FAQ

How is Multiple different from Single?+
Different endpoint (/api/v2/GenerateDocumentMultiple), fewer template types (Docx, HTML, PDF only), no CSV, can output xlsx, and expects array-shaped data to produce one document per record in a single call.
What does the response look like?+
Typically a JSON object with outputDocuments[], each containing fileName and streamFile (base64). Some responses may use fileContent, content, or data as the field name. Decode each base64 string to save the file.
Which output types are allowed?+
Docx and PDF templates accept PDF, Docx, or xlsx. HTML template accepts HTML only.
Does HTML output produce multiple files?+
Yes when the engine renders one HTML document per input record. The response still uses the outputDocuments[] shape.
What is the maximum array size?+
No published hard cap. Large batches usually push you onto the async path (202 + Location poll). For very large workloads, split into multiple calls of a few hundred records each.
Why is the endpoint name singular Document?+
The path is /api/v2/GenerateDocumentMultiple, not GenerateDocumentsMultiple. A common typo. The plural version returns 404.
Does KeepPdfEditable work for xlsx or HTML output?+
No. It only applies when outputType is PDF. For other outputs the API ignores it.
Can I mix multiple template files in one call?+
No. One call uses one template. To render the same data set against multiple templates, issue one call per template.

Actions connexes

Même tâche sur d'autres plateformes

Obtenez de l'aide