JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q35110F
  • License Apache-2.0

Official TypeScript SDK for the Neat PDF API

Package Exports

  • @neat-pdf/sdk

Readme

Neat PDF

@neat-pdf/sdk

Official TypeScript SDK for the Neat PDF API

npm version license


Installation

npm install @neat-pdf/sdk

Get Your API Key

  1. Go to neat-pdf.com and sign up
  2. Open the menu and click Generate Key
  3. Copy your key immediately — it's only displayed once

Quick Start

import { NeatPdf } from "@neat-pdf/sdk";

const client = new NeatPdf({
  apiKey: "your-api-key",
});

const response = await client.htmlToPdf({
  body: {
    html: "<h1>Hello, World!</h1>",
  },
});

if (response.error) {
  console.error(response.error);
} else {
  // response.data is a Blob containing the PDF
  const pdf = response.data;
}

Features

  • HTML to PDF - Convert HTML content to PDF
  • URL to PDF - Capture any webpage as PDF
  • Office to PDF - Convert Word, PowerPoint, and text files
  • Compress PDF - Reduce PDF file size with quality control

Usage

HTML to PDF

Convert HTML content with full control over paper size, margins, and rendering options.

const response = await client.htmlToPdf({
  body: {
    html: "<h1>Invoice #123</h1><p>Thank you for your purchase.</p>",
    paperWidth: "8.5in",
    paperHeight: "11in",
    marginTop: "1in",
    marginBottom: "1in",
    marginLeft: "0.5in",
    marginRight: "0.5in",
    scale: 1,
    printBackground: true,
  },
});

URL to PDF

Capture any webpage as a PDF.

const response = await client.urlToPdf({
  body: {
    url: "https://example.com",
    landscape: true,
    printBackground: true,
  },
});

Office to PDF

Convert Word documents, PowerPoint presentations, and text files.

const file = new File([buffer], "document.docx", {
  type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
});

const response = await client.officeToPdf({
  body: {
    file,
    landscape: false,
  },
});

Compress PDF

Reduce PDF file size with configurable quality settings.

const file = new File([buffer], "large.pdf", { type: "application/pdf" });

const response = await client.compressPdf({
  body: {
    file,
    quality: 75,
    reduceImageResolution: true,
    maxImageResolution: "150",
  },
});

Configuration

interface NeatPdfConfig {
  apiKey: string;
  baseUrl?: string; // Default: 'https://api.neat-pdf.com/functions/v1'
  timeout?: number; // Default: 60000 (60 seconds)
}

Error Handling

All methods return a response object with either data or error:

const response = await client.htmlToPdf({
  body: { html: "<h1>Hello</h1>" },
});

if (response.error) {
  // Handle error
  console.error(response.error.error); // Error message
  console.error(response.error.details); // Optional details
} else {
  // Success - response.data is a Blob
  const pdf = response.data;
}

Documentation

For full API documentation, visit https://www.neat-pdf.com/docs

License

Apache-2.0