Introducing Anvil Document AI. Operate faster.Learn more.

Generate PDFs with JavaScript

A simple API for generating PDFs within your app. Write JavaScript to send HTML & CSS or Markdown to Anvil, get back a PDF.
Beyond Giant hero assetGiant hero assetDesktop hero assetMobile hero assetTablet hero asset

Perfectly formatted PDFs

Create dynamic and variable length PDFs with adjustments based on your content. Each page is perfectly scaled to a standard 8.5” x11” paper size.

JavaScript to PDF

Use JavaScript to lay out and generate your PDF for a 100% pixel perfect document.

import fs from 'fs'
import Anvil from '@anvilco/anvil'

const exampleData = {
  title: 'Example HTML to PDF',
  type: 'html',
  data: {
    html: `
      <h1 class='header-one'>What is Lorem Ipsum?</h1>
        Lorem Ipsum is simply dummy text of the printing and typesetting
        industry. Lorem Ipsum has been the industry's standard dummy text
        ever since the <strong>1500s</strong>, when an unknown printer took
        a galley of type and scrambled it to make a type specimen book.
    css: `
      body { font-size: 14px; color: #171717; }
      .header-one { text-decoration: underline; }

const { statusCode, data, errors } = await anvilClient.generatePDF(exampleData)

console.log('Finished! Status code:', statusCode) // => 200, 400, 404, etc

const outputFilepath = path.join(__dirname, '..', 'output', 'generate-html-output.pdf')
fs.writeFileSync(outputFilepath, data, { encoding: null })
console.log('Generated PDF saved to:', outputFilepath)

Try it now

SOC2 logo
GDPR logo
HIPAA logo
EIDAS logo