0.4.0 • Published 7 months ago
@profullstack/document-converters v0.4.0
@profullstack/document-converters
A simple, unified API for converting between various document formats.
Features
- Convert HTML to PDF
- Convert HTML to Word documents (.docx)
- Convert HTML to Excel spreadsheets (.xlsx)
- Convert HTML to PowerPoint presentations (.pptx)
- Convert HTML to EPUB e-books
- Convert between HTML and Markdown
- Simple, promise-based API
- Fallback mechanisms for different environments
- Comprehensive options for fine-tuning conversions
Installation
npm install @profullstack/document-convertersBasic Usage
import converters from '@profullstack/document-converters';
// Convert HTML to PDF
const pdfBuffer = await converters.htmlToPdf('<h1>Hello World</h1>');
// Convert HTML to Word document
const docBuffer = await converters.htmlToDoc('<h1>Hello World</h1>');
// Convert HTML to Markdown
const markdown = await converters.htmlToMarkdown('<h1>Hello World</h1>');
// Convert Markdown to HTML
const html = await converters.markdownToHtml('# Hello World');API Reference
Main Converter Object
The main export is a converter object with methods for all supported conversions:
import converters from '@profullstack/document-converters';HTML to PDF
const pdfBuffer = await converters.htmlToPdf(html, options);html: HTML content to convertoptions: PDF generation options (see Puppeteer PDF options)format: Paper format (default: 'A4')printBackground: Whether to print background (default: true)margin: Page margins (default: 1cm on all sides)
HTML to Word
const docBuffer = await converters.htmlToDoc(html, options);html: HTML content to convertoptions: Word document generation optionsforcePandoc: Force using pandoc even if docx is availableforceDocx: Force using docx library even if pandoc is availablepandocOptions: Additional pandoc command line options
HTML to Excel
const excelBuffer = await converters.htmlToExcel(html, options);html: HTML content to convert (should contain table elements)options: Excel generation options
HTML to PowerPoint
const pptBuffer = await converters.htmlToPpt(html, options);html: HTML content to convertoptions: PowerPoint generation options
HTML to EPUB
const epubBuffer = await converters.htmlToEpub(html, options);html: HTML content to convertoptions: EPUB generation options
HTML to Markdown
const markdown = await converters.htmlToMarkdown(html, options);html: HTML content to convertoptions: Markdown generation options
Markdown to HTML
const html = await converters.markdownToHtml(markdown, options);markdown: Markdown content to convertoptions: HTML generation options
Individual Converters
For more advanced usage, you can access the individual converters directly:
import { pdfConverter, docConverter } from '@profullstack/document-converters';
// Or access them from the main object
const { pdf, doc, excel, ppt, epub, markdown } = converters;PDF Converter
// Convert HTML to PDF
const pdfBuffer = await pdfConverter.fromHtml(html, options);
// Convert URL to PDF
const pdfFromUrl = await pdfConverter.fromUrl('https://example.com', options);
// Convert multiple HTML pages to a single PDF
const multiPagePdf = await pdfConverter.fromMultipleHtml([html1, html2], options);Word Document Converter
// Convert HTML to Word document
const docBuffer = await docConverter.fromHtml(html, options);
// Convert URL to Word document
const docFromUrl = await docConverter.fromUrl('https://example.com', options);
// Convert Markdown to Word document
const docFromMarkdown = await docConverter.fromMarkdown(markdown, options);Examples
See the examples directory for complete usage examples.
Requirements
- Node.js 14.x or higher
- For PDF conversion: Puppeteer (included as a dependency)
- For Word document conversion: Either pandoc installed on the system or the docx library (included as a dependency)
License
MIT