pafyra
v2.0.0
Published
Official Node.js SDK for Pafyra - HTML-to-PDF Conversion SaaS Platform
Maintainers
Readme
Pafyra Node.js SDK
The official Node.js SDK for Pafyra - a high-performance, developer-first HTML-to-PDF generation platform.
Features
- Asynchronous PDF Generation: Queue massive HTML documents and track status.
- Synchronous PDF Streaming: Convert HTML directly to buffers.
- Polling Utility: Easily poll for completions without boilerplate.
- Zero-Dependency: Extremely lightweight, built using native
fetch(requires Node.js 18+). - TypeScript Support: Fully typed out-of-the-box.
Installation
npm install pafyraQuick Start
Initialize Client
import { PafyraClient } from 'pafyra';
const client = new PafyraClient({
apiKey: 'pfy_live_your_api_key_here',
// baseUrl: 'https://api.pafyra.com' // Optional, defaults to Pafyra cloud
});Asynchronous HTML-to-PDF Conversion (Recommended for large files)
// 1. Submit the conversion job
const job = await client.generate({
html: '<h1>Hello, Pafyra!</h1><p>This is a test PDF.</p>',
format: 'A4',
orientation: 'portrait'
});
console.log(`Job queued: ${job.jobId}`);
// 2. Poll/wait until complete
const result = await client.waitForPdf(job.jobId);
console.log(`PDF ready: ${result.downloadUrl}`);Synchronous HTML-to-PDF (Direct Buffer Download)
import fs from 'fs';
const pdfBuffer = await client.generateSync({
html: '<h1>Instant PDF</h1>',
format: 'Letter'
});
fs.writeFileSync('output.pdf', pdfBuffer);Batch Asynchronous Conversion
const batch = await client.batchGenerate([
{ html: '<h1>First Document</h1>' },
{ html: '<h1>Second Document</h1>' }
]);
console.log('Submitted jobs:', batch.jobs);API Reference
new PafyraClient(config)
config.apiKey(string, required): Your Pafyra API Key.config.baseUrl(string, optional): Backend endpoint URL.
client.generate(options)
Queue an HTML-to-PDF render job. Returns Promise<PdfResponse>.
client.generateSync(options)
Generate a PDF from HTML synchronously. Returns Promise<Buffer>.
client.getStatus(jobId)
Retrieve the current status of a queued job. Returns Promise<PdfResponse>.
client.batchGenerate(jobs)
Queue multiple documents in a single call. Returns Promise<BatchPdfResponse>.
client.waitForPdf(jobId, options)
Polls status of a job until it resolves. Options support:
intervalMs: polling frequency (default1000)timeoutMs: max wait time (default30000)
License: MIT
