@cle-does-things/pdfitdown
v4.2.0
Published
Convert (almost) anything to PDF — Node bindings with napi
Maintainers
Readme
PdfItDown Node Bindings
Convert (almost) anything to PDF — fast, native Node.js bindings powered by Rust (NAPI-RS).
Installation
npm install @cle-does-things/pdfitdown
# or
yarn add @cle-does-things/pdfitdownPrebuilt binaries are available for:
- macOS (x86_64, arm64)
- Linux (x86_64, arm64, musl)
- Windows (x86_64, arm64)
Supported Formats
- Office: DOCX, PPTX, XLSX
- Markup: HTML, Markdown
- Images: WebP, PNG, JPG, and more
- Text: Plain text files
Usage
Convert a single file
import { PdfItDownConverter } from '@cle-does-things/pdfitdown'
const converter = new PdfItDownConverter()
converter.convertFile('input.docx', 'output.pdf', true)Convert multiple files
const converter = new PdfItDownConverter()
converter.convertMultipleFiles(
['file1.docx', 'file2.pptx'],
['file1.pdf', 'file2.pdf'],
true, // overwrite existing
)Convert a directory
const converter = new PdfItDownConverter()
converter.convertDirectory('./documents', true, true) // overwrite, recursiveConvert from memory (Buffer → Buffer)
import { readFileSync, writeFileSync } from 'fs'
const converter = new PdfItDownConverter()
const input = readFileSync('input.docx')
const output = converter.convertBytes(input)
writeFileSync('output.pdf', output)API
class PdfItDownConverter {
constructor()
/** Convert a file on disk. */
convertFile(inputFile: string, outputFile: string, overwrite: boolean): void
/** Convert multiple files in one call. */
convertMultipleFiles(inputFiles: string[], outputFiles: string[], overwrite: boolean): void
/** Convert all supported files in a directory. */
convertDirectory(directory: string, overwrite: boolean, recursive: boolean): void
/** Convert a Buffer in memory and return a PDF Buffer. */
convertBytes(input: Buffer): Buffer
}Development
This is a NAPI-RS project. To build from source you need Rust and Node.js installed.
# Development build
yarn build:debug
# Release build
yarn build
# Run tests
yarn test
# Format code
yarn formatLicense
MIT
