urlpdf
Job Sheet Host
engine · checking

POST /generate-pdf

HTML binnen.
PDF terug.

Headless Chromium opent de URL, wacht tot de pagina stilstaat, en rastert naar PDF. Adobe zet die om naar DOCX. Beide bestanden komen terug als base64.

01 navigate 02 fonts.ready 03 paged.js 04 page.pdf() 05 exportpdf 06 base64

CV-URLs voor ng-front

instance · omgeving · uid · output

Angular bouwt alleen de URL en opent die. Geen X-API-Key, geen POST /generate-pdf. De pagina op deze host haalt de HTML op bij Talentpool, rendert PDF of Word, en toont of downloadt het bestand. instance en uid mogen alleen letters, cijfers, punten, underscores en streepjes bevatten.

Formule

https://documents.eazycv.com/{output}/{instance}/{uid}?environment={omgeving}&filename={naam}
Deel Verplicht Waarde
host ja https://documents.eazycv.com in productie. Lokaal de origin van deze pagina.
output ja pdf-view voor PDF, docx-view voor Word.
instance ja Tenant/template, bijvoorbeeld ict-nl.
uid ja CV-uid van het document.
environment ja in acc acc haalt HTML van tp.acc.eazycv.com. Weglaten of elke andere waarde gebruikt tp.eazycv.com.
filename nee Downloadnaam. Zonder extensie wordt .pdf of .docx toegevoegd. Fallback: {instance}-{uid}.{ext}.
debug nee 1 toont frames, klok en debugrapport. Zonder debug alleen de viewer of download-UI.
beta nee PDF en Word. true zet ?beta=true op de bron-HTML bij Talentpool.
plainmode nee PDF en Word. true of alleen plainmode zet ?plainmode=true op de bron-HTML.

Outputtypes

PDF · iframe of nieuw tabblad

/pdf-view/{instance}/{uid}

Toont de PDF met PDF.js (zoom, pagina’s, print, download). Intern: {tp}/pdf/{instance}/{uid}, plus beta en plainmode als die op deze URL staan. In ng-front: zet deze URL als iframe src of open in een nieuw tabblad.

Word · download + Open

/docx-view/{instance}/{uid}

Bouwt een .docx via Adobe, start de download en biedt Open in Word. Intern: {tp}/pdf/{instance}/{uid}?word=true, plus beta en plainmode als die op deze URL staan. In ng-front: window.open, niet in een iframe.

Voorbeelden

Aanbod URL
PDF · productie https://documents.eazycv.com/pdf-view/{instance}/{uid}?filename=Jan-Jansen.pdf
PDF · acceptatie https://documents.eazycv.com/pdf-view/{instance}/{uid}?environment=acc&filename=Jan-Jansen.pdf
Word · productie https://documents.eazycv.com/docx-view/{instance}/{uid}?filename=Jan-Jansen.docx
Word · acceptatie https://documents.eazycv.com/docx-view/{instance}/{uid}?environment=acc&filename=Jan-Jansen.docx
Query-fallback /pdf-view?instance={instance}&uid={uid}&environment=acc

Path en query altijd met encodeURIComponent. De bron-HTML zelf (https://tp.eazycv.com/pdf/{instance}/{uid}) is geen eindgebruikers-URL; die is alleen de input voor deze service.

Endpoints

HTTP · JSON

GET

/health

Liveness. Geen auth. Antwoordt status, timestamp en adobeConfigured.

POST · application/json · max 15 MB

/generate-pdf

Render de opgegeven HTML-URL naar PDF. Vereist X-API-Key als de server een sleutel heeft gezet.

POST · application/json · max 15 MB

/generate-docx

PDF of HTML-URL naar DOCX via Adobe PDF Services. 503 zonder Adobe-credentials.

GET

/pdf-view/{instance}/{uid}

Bouwt {source}/pdf/{instance}/{uid} en toont de PDF met PDF.js. Optioneel ?beta=true en ?plainmode=true gaan mee naar de bron-HTML. Zie CV-URLs voor instance, omgeving, uid en filename. Geen API-key.

GET

/docx-view/{instance}/{uid}

Zelfde parameters als PDF-view. Bouwt {source}/pdf/{instance}/{uid}?word=true, exporteert naar Word en start de download. Optioneel ?beta=true en ?plainmode=true. Geen API-key.

Authenticatie

header

Stuur de sleutel in X-API-Key. Staat PDF_API_KEY leeg, dan is de route open. Een mismatch geeft 401 Unauthorized. De benchmark gebruikt Basic Auth: gebruikersnaam BENCHMARK_USER (standaard benchmark) en wachtwoord BENCHMARK_PASSWORD, met PDF_API_KEY als fallback.

Header

X-API-Key: <PDF_API_KEY>
HTTP
POST /generate-pdf
Content-Type: application/json
X-API-Key: <your-key>

Request body

application/json

Voor /generate-pdf is alleen url verplicht. Puppeteer-opties mogen plat blijven (width, marginTop) of nested binnenkomen als data.pdf_settings. Layout-CSS en -JS horen onder data.layout. Zonder formaat valt de compositor terug op A4. preferCSSPageSize blijft staan: CSS @page wint dan van width/height.

Veld Type Default Rol
url string Bronpagina die Chromium opent.
format string A4 Papierformaat als width/height ontbreken.
width / height string 210mm / 297mm Exacte trim. Zet preferCSSPageSize uit.
landscape bool false Liggend vel.
printBackground bool true Achtergrondkleuren en -beelden meenemen.
omitBackground bool false Witte pagina-achtergrond weglaten (transparant waar mogelijk).
preferCSSPageSize bool false Laat @page de maat bepalen, tenzij width+height gezet zijn.
scale number 1 Render-schaal van de pagina.
marginTop…Left string 0mm Marges, met eenheid (mm, cm, px).
displayHeaderFooter bool false Chromium header/footer-templates tonen.
headerTemplate / footerTemplate string "" HTML voor kop- en voettekst.

pdf_settings & layout

data · toegepast

De compositor leest data.pdf_settings en data.layout (of dezelfde objecten op het topniveau). Na de render komt in data.applied terug wat er écht is gebruikt: bronpad, PDF-opties, geïnjecteerde CSS/JS, paged.js-status en eventuele waarschuwingen.

Veld Verwerking
pdf_settings.page.width/height Chromium-velmaat. Kale getallen worden mm.
pdf_settings.margins.* Puppeteer-marges rond het vel. Los van CSS @page-marges.
other.landscape / scale / printBackground / omitBackground Direct naar page.pdf(). true/1/"yes" tellen als aan.
other.preferCSSPageSize Niet meer geforceerd uit. Bij true wint CSS @page; width/height blijven fallback.
other.displayHeaderFooter + templates Chromium kop/voet. Lege templates blijven leeg.
layout.version / use_version2 Kiest *_beta CSS/JS. Lege beta valt terug op de stabiele variant.
css_html, css_pdf (+ _beta) Na navigatie geïnjecteerd, html eerst, daarna pdf. <style>-wrappers gaan eraf.
css_word (+ _beta) Alleen bij HTML→DOCX. Bij PDF-output bewust overgeslagen.
custom_javascript (+ _beta) Draait ná CSS, vóór paged.js, zodat de DOM al styled is.
use_pagedjs true: wacht op previewDone (max 30 s). false: overslaan. Zonder layout: zelfde wacht, geen tweede preview(). Headers/footers via Paged.js CSS; zet displayHeaderFooter op false.
layout.settings Paginaformaat en marges → @page. Kleuren, typografie en structuur → CSS-variabelen --layout-….
custom_template_name Alleen gelogd. Het sjabloon zit in de bron-URL, niet in Chromium.

DOCX

Adobe PDF Services

POST /generate-docx heeft twee bronnen. Default is een bestaande PDF. Met source: "html" rendert Chromium eerst, daarna exporteert Adobe naar Word (ocrLang default nl-NL).

Veld Type Default Rol
source string pdf pdf of html.
url string PDF-URL bij source=pdf, HTML-URL bij source=html.
pdfBase64 string Ruwe PDF als base64. Alternatief voor url bij source=pdf.
ocrLang string nl-NL Adobe OCR-taal voor de export.

Bij source=html gelden dezelfde render-velden als /generate-pdf. Credentials: ADOBE_CLIENT_ID, ADOBE_CLIENT_SECRET, optioneel ADOBE_API_URL (default https://pdf-services.adobe.io).

Response

200 · 400 · 401 · 500 · 503
200 success
{
  "status": "success",
  "data": {
    "base64file": "JVBERi0xLjc...",
    "duration": 1.42,
    "requestId": "a1b2c3d4e5f6",
    "applied": { /* pdf + layout feedback */ },
    "timings": { /* navigateMs, fontsMs, pagedjsMs, pdfMs, pages, localAssets */ }
  }
}

base64file is het ruwe PDF of DOCX. duration is seconden wall-clock. requestId koppelt logs en eventuele error-screenshots. applied zegt per veld of het is geïnjecteerd, overgeslagen of als fallback gebruikt. timings splitst navigatie, fonts, paged.js en page.pdf().

400 zonder bron. 503 als Adobe niet geconfigureerd is. 500 bij navigatie-, raster- of exportfout, met error en dezelfde requestId. Navigatie 45 s; PDF-write 30 s; Adobe-poll max 90 s.

Voorbeeld

curl · postman

Importeer de collectie in Postman (Collection v2.1). Variables: baseUrl en apiKey.

curl -sS /generate-pdf \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: $PDF_API_KEY' \
  -d '{
    "url": "https://example.com/document",
    "width": "210mm",
    "height": "297mm",
    "printBackground": true
  }'
/generate-docx
curl -sS /generate-docx \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: $PDF_API_KEY' \
  -d '{
    "source": "html",
    "url": "https://example.com/document",
    "width": "210mm",
    "height": "297mm",
    "ocrLang": "nl-NL"
  }'