An Elixir library for HTML to PDF/A conversion using headless Chrome and Ghostscript without Node.js.
ChromicPDF is an HTML-to-PDF renderer for Elixir applications that uses headless Chrome's DevTools API for direct communication. It generates PDFs from HTML sources without requiring Node.js, offering features like custom headers/footers, PDF/A conversion via Ghostscript, and multi-source concatenation. It provides a high-performance, Elixir-native alternative to Node.js-based solutions like Puppeteer.
Elixir developers building applications that require reliable, high-performance PDF generation from HTML, such as reporting systems, invoice generators, or document export features. It is particularly suited for teams wanting to avoid Node.js dependencies in their Elixir stack.
Developers choose ChromicPDF for its direct integration with Chrome's DevTools API, eliminating the need for Node.js or Puppeteer while maintaining or improving performance. Its unique selling points include native Elixir supervision tree integration, support for PDF/A compliance with Ghostscript, and advanced features like header/footer templates and multi-source concatenation.
Convenient HTML to PDF/A rendering library for Elixir based on Chrome & Ghostscript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Communicates directly with Chrome's DevTools API via pipes, eliminating Node.js dependencies while maintaining or improving performance, as highlighted in the README's comparison to puppeteer.
Supports custom HTML headers and footers using Chrome's full printToPDF options and enables PDF/A conversion with Ghostscript, validated by verapdf for compliance.
Designed as a supervision tree that integrates smoothly into Elixir applications, providing robustness and scalability without external runtime dependencies.
Allows automatic concatenation of multiple HTML sources into a single PDF using Ghostscript, useful for assembling complex documents from disparate parts.
Requires headless Chrome and optionally Ghostscript, adding deployment complexity and potential environment setup hurdles, especially in containerized or restricted systems.
The README admits the Phoenix integration example is outdated, which may hinder developers seeking modern, ready-to-use implementations for common web frameworks.
Chrome process startup and management can introduce latency, making it less ideal for real-time or extremely high-volume PDF generation scenarios without careful tuning.