@neat-pdf/sdk
v0.1.8
Published
Official TypeScript SDK for the Neat PDF API
Downloads
877
Maintainers
Readme
Installation
npm install @neat-pdf/sdkGet Your API Key
- Go to neat-pdf.com and sign up
- Open the menu and click Generate Key
- 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
