Generate PDFs with TypeScript

A simple API for filling out PDFs from your app.

A simple API for generating PDFs within your app. Write TypeScript to send HTML & CSS or Markdown to Anvil, get back a PDF.
Hero Image

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