Introducing Anvil Document AI. Operate faster.Learn more.

Generate PDFs with TypeScript

A simple API for generating PDFs within your app. Write TypeScript 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.

TypeScript to PDF

Use TypeScript 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 anvilClient = new Anvil({ apiKey })
  const { statusCode, data } = await anvilClient.generatePDF(exampleData)

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

  // `data` will be the filled PDF binary data. It is important that the
  // data is saved with no encoding! Otherwise the PDF file will be corrupt.
  fs.writeFileSync(outputFilepath, data, { encoding: null })
  console.log('Generated PDF saved to:', outputFilepath)

Try it now

SOC2 logo
GDPR logo
HIPAA logo
EIDAS logo