A simple, unified API for converting between various document formats.
- 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
npm install @profullstack/document-converters
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');
The main export is a converter object with methods for all supported conversions:
import converters from '@profullstack/document-converters';
const pdfBuffer = await converters.htmlToPdf(html, options);
-
html
: HTML content to convert -
options
: 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)
-
const docBuffer = await converters.htmlToDoc(html, options);
-
html
: HTML content to convert -
options
: Word document generation options-
forcePandoc
: Force using pandoc even if docx is available -
forceDocx
: Force using docx library even if pandoc is available -
pandocOptions
: Additional pandoc command line options
-
const excelBuffer = await converters.htmlToExcel(html, options);
-
html
: HTML content to convert (should contain table elements) -
options
: Excel generation options
const pptBuffer = await converters.htmlToPpt(html, options);
-
html
: HTML content to convert -
options
: PowerPoint generation options
const epubBuffer = await converters.htmlToEpub(html, options);
-
html
: HTML content to convert -
options
: EPUB generation options
const markdown = await converters.htmlToMarkdown(html, options);
-
html
: HTML content to convert -
options
: Markdown generation options
const html = await converters.markdownToHtml(markdown, options);
-
markdown
: Markdown content to convert -
options
: HTML generation options
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;
// 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);
// 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);
See the examples directory for complete usage examples.
- 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)
MIT