eml-to-pdf-converter
v1.0.1
Published
Convert EML email files to PDF format with attachments support
Maintainers
Readme
EML to PDF Converter
A Node.js package that converts EML email files to PDF format with full attachments support.
Features
- Converts EML files to PDF format
- Preserves email metadata (subject, sender, receiver, date)
- Handles HTML and plain text email content
- Merges PDF attachments directly into the output PDF
- Provides both programmatic API and CLI interface
- Generates clean, formatted PDFs with email headers and content
Installation
As a dependency in your project:
npm install eml-to-pdf-converterAs a global CLI tool:
npm install -g eml-to-pdf-converterUsage
Command Line Interface (CLI)
Convert a single EML file:
eml-to-pdf email.eml
eml-to-pdf email.eml output.pdfConvert all EML files in a directory:
eml-to-pdf ./emails/
eml-to-pdf ./emails/ ./output/Show help:
eml-to-pdf --helpProgrammatic API
const { convertEmlToPdf, generateOutputFilename } = require('eml-to-pdf-converter');
// Convert a single file
async function convertFile() {
const outputPath = await generateOutputFilename('email.eml');
await convertEmlToPdf('email.eml', outputPath);
console.log('Conversion completed!');
}
convertFile();Output
The converter generates a single PDF file for each email with:
- Email headers (subject, sender, receiver, date)
- Formatted email content (HTML or plain text)
- Merged PDF attachments (when present)
Files are saved with descriptive names in the format:
yyyy_mm_dd_hh_mm_ss_sender_to_receiver.pdf
Dependencies
mailparser- For parsing EML filespdfkit- For PDF generationpdf-lib- For merging PDF attachmentsfs-extra- Enhanced file system operations
Notes
- HTML content is processed with basic formatting preservation
- PDF attachments are automatically merged into the main PDF
- Non-PDF attachments are listed in the PDF but not included
- Works with Node.js version 14 and higher
