Générer un document (unique)
PDF4me Générer un document (unique) génère un document unique en fusionnant un modèle (Word, HTML, ou PDF) avec une charge utile de données (JSON, XML, ou CSV) dans un REST appel. Le modèle peut être Base64, un public URLou cru HTMLLes données peuvent être du texte intégré, un Base64fichier encodé, ou un URLRenvoie le rendu PDF, Docx, ou HTML en binaire (200) ou via un Location-sondage d'en-tête URL (202).
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/GenerateDocumentSingleInformations importantes à ne pas manquer
documentDataText ou fichier de données du documentdocumentDataText pour en ligne JSON / XML / CSV. Utiliser fichier de données du document pour un Base64-fichier de données encodé ou un fichier public URL.PDF ou DocxHTML accepte HTML uniquement. Le format PDF accepte PDF uniquement. La casse exacte est importante.IsAsync : vrai le API peut répondre 202 et un en-tête Location. GET que URL (même autorisation) jusqu'à 200 avec le fichier rendu (standard) pdf4meAsyncRequest modèle).HTTP installation
Méthode: POSTE
URL: https://api.pdf4me.com/api/v2/GenerateDocumentSingle
Type de contenu : application/json
Autorisation: Basique <votre PDF4me API clé>
Envoyer IsAsync : vrai dans le corps. 200 renvoie les octets du fichier rendu. 202 renvoie un Emplacement En-tête avec un sondage URL; GET que URL avec le même en-tête d'autorisation jusqu'à 200.
Matrice des variantes (pertinente pour Postman)
Choisissez une variante de modèle (T1 / T2 / T3) et une variante de données (D1 / D2 / D3). Six combinaisons couvrent chaque appel.
Modèle (templateFileData)
| Code | Source | Valeur du facteur données de fichier modèle | Également requis |
|---|---|---|---|
| T1 | Base64 | Base64 template file (strip data:...;base64, prefix if present) | templateFileName |
| T2 | URL | Full HTTPS URL string (not downloaded by the API request body) | templateFileName |
| T3 | HTML code | Base64-encoded UTF-8 HTML: Buffer.from(html, "utf8").toString("base64") | templateFileName, templateFileType: HTML |
Données du document (l'une des deux) API champs)
| Code | Source | Champ API | valeur du facteur |
|---|---|---|---|
| D1 | Text | documentDataText | Raw JSON / XML / CSV string |
| D2 | Base64 | documentDataFile | Base64 of the data file (strip data-URL prefix if present) |
| D3 | URL | documentDataFile | Full HTTPS URL to .json / .xml / .csv |
Règle: exactement un de documentDataText ou fichier de données du document Ce champ doit être renseigné. Omettez le champ inutilisé dans le corps de la requête.
Combinaisons courantes
| # | Modèle | Données | Utilisation typique |
|---|---|---|---|
| 1 | T1 Docx base64 | D1 JSON text | Word mail-merge to PDF |
| 2 | T2 Docx URL | D3 JSON URL | Hosted template + hosted data |
| 3 | T3 HTML | D1 JSON text | HTML mustache rendered to HTML / PDF |
| 4 | T1 PDF form | D2 JSON base64 | PDF template + encoded data file |
| 5 | T2 MailMerge URL | D1 XML text | Word merge fields + inline XML |
templateFileType → type de sortie autorisé
type de fichier modèle | Autorisé type de sortie | Notes |
|---|---|---|
Docx | PDF, Docx | PDF4me Word template |
MailMerge | PDF, Docx | Mail merge Word |
GoogleDocs | PDF, Docx | Google Docs export style |
HTML | HTML only | Mustache in HTML |
PDF | PDF only | PDF form / template |
API champs corporels
Toujours envoyé
| Champ | Requis | Taper | Notes |
|---|---|---|---|
templateFileType | Yes | string | Docx, HTML, PDF, MailMerge, GoogleDocs |
templateFileName | Yes | string | With extension, e.g. template.docx, template.html, template.pdf |
templateFileData | Yes | string | Base64 template, or template URL string |
documentDataType | Yes | string | Json, XML, or Csv (exact casing) |
outputType | Yes | string | PDF, Docx, or HTML (see allowed-output table above) |
IsAsync | Yes | boolean | true |
Données du document (un seul chemin)
| Champ | Requis lorsque | Taper | Notes |
|---|---|---|---|
documentDataText | D1 (text) | string | Valid JSON when documentDataType is Json; XML must look like XML; CSV non-empty |
documentDataFile | D2 or D3 | string | Base64 data file or URL to data file |
Facultatif
| Champ | Quand | Défaut |
|---|---|---|
KeepPdfEditable | outputType is PDF | false |
documentDataFile | D1 text path is used | Omitted |
documentDataText | D2 or D3 path is used | Omitted |
Règles de validation
| Vérifier | Détail |
|---|---|
| Template URL | Non-empty, valid URL. |
| Template base64 | Non-empty after optional data-URL strip. |
| HTML code | Only when templateFileType is HTML. Empty is rejected. Auto-wraps <html> if missing. |
| JSON text | Must parse successfully with JSON.parse. |
| XML text | Must start with < and contain >. |
| CSV text | Non-empty after trim. |
| Either data source | documentDataFile or documentDataText is required. |
Exemples de substitution
| Article | Exemple |
|---|---|
| Template URL (Docx) | https://example.com/template.docx |
| Template name | template.docx / template.html / template.pdf |
| Data URL (JSON) | https://example.com/data.json |
| Data file name | data.json |
| JSON text | {"name": "John Doe", "email": "[email protected]", "items": [{"product": "Widget", "price": 29.99}]} |
| XML text | <?xml version="1.0"?><root><name>John Doe</name></root> |
| CSV text | name,email\nJohn Doe,[email protected] |
| HTML template | <!DOCTYPE html>...{{title}}... |
Exemples de charges utiles
1. Modèle Word (base64) + JSON texte → PDF
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataText": "{\"name\": \"John Doe\", \"email\": \"[email protected]\", \"items\": [{\"product\": \"Widget\", \"price\": 29.99}]}",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}
2. Modèle Word (URL) + JSON données (URL) → PDF
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "Json",
"documentDataFile": "https://example.com/data.json",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}
3. Modèle Word (base64) + JSON Données (base64) → Sortie Word
documentDataFile contient la base64 de JSON octets du fichier (et non l'objet analysé).
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "eyJuYW1lIjogIkpvaG4gRG9lIn0=",
"outputType": "Docx",
"IsAsync": true
}
4. HTML modèle (base64 de HTML fichier) + JSON texte → HTML
Pour cru HTML Dans Postman, envoyez la même charge utile n8n Le nœud serait : encodé en base64 HTML dans templateFileData.
{
"templateFileType": "HTML",
"templateFileName": "template.html",
"templateFileData": "PCFET0NUWVBFIGh0bWw+...",
"documentDataType": "Json",
"documentDataText": "{\"title\": \"Invoice\", \"heading\": \"Hello\", \"content\": \"World\"}",
"outputType": "HTML",
"IsAsync": true
}
5. Fusion et publipostage (URL) + XML texte → PDF
{
"templateFileType": "MailMerge",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "XML",
"documentDataText": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><name>John Doe</name><email>[email protected]</email></root>",
"outputType": "PDF",
"IsAsync": true
}
6. PDF Modèle de formulaire (base64) + CSV texte → PDF (modifiable)
{
"templateFileType": "PDF",
"templateFileName": "template.pdf",
"templateFileData": "JVBERi0xLjQKJcfsj6IK...",
"documentDataType": "Csv",
"outputType": "PDF",
"KeepPdfEditable": true,
"IsAsync": true
}
7. Style Google Docs (base64) + JSON URL → Docx
{
"templateFileType": "GoogleDocs",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "https://example.com/data.json",
"outputType": "Docx",
"IsAsync": true
}
Conseils pour la collecte par le facteur
Exemple curl
curl -X POST https://api.pdf4me.com/api/v2/GenerateDocumentSingle \
-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",
"documentDataFile": "https://example.com/data.json",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}' \
--output generated.pdf
Référence rapide : obligatoire ou facultatif selon la variante
| Champ | T1+D1 | T2+D3 | T1+D2 | T3+D1 | Tout PDF sortant |
|---|---|---|---|---|---|
templateFileType | Req | Req | Req | Req | Req |
templateFileName | Req | Req | Req | Req | Req |
templateFileData | Req (b64) | Req (URL) | Req (b64) | Req (b64 HTML) | Req |
documentDataType | Req | Req | Req | Req | Req |
outputType | Req | Req | Req | Req | Req |
documentDataText | Req | Omit | Omit | Req | Omit |
documentDataFile | Omit | Req (URL) | Req (b64) | Omit | Omit |
IsAsync | Req | Req | Req | Req | Req |
KeepPdfEditable | Opt | Opt | Opt | N/A* | Opt if PDF |
*Conserver le PDF modifiable s'applique uniquement lorsque type de sortie est PDF; le API forces fausses autrement.