Lightweight Go Solution for Converting HTML to PDF Without Full Browser Overhead

Problem Context

I’m developing a Go application that requires rendering HTML and CSS content directly into a PDF format. My primary challenge is finding a lightweight rendering solution that doesn’t involve spinning up an entire web browser or complex networking infrastructure.

Specific Requirements

  • Need a renderer that can accept HTML/CSS as runtime variables
  • Minimal binary size footprint
  • Ability to convert HTML directly without requiring a URL
  • Potential support for multiple output formats

Current Observations

  • Existing headless browsers are network-oriented
  • Most solutions introduce unnecessary complexity
  • Local web server workarounds seem inefficient

Seeking community recommendations for Go packages or custom approaches that can streamline HTML-to-PDF conversion with minimal overhead.

Check out GitHub - go-rod/rod: A Chrome DevTools Protocol driver for web automation and scraping. - rly lightweight headles browser library. Can do html 2 pdf w/o full chrome overhead. Supr clean api n minimal deps. Worked gr8 4 my proj b4

For a lightweight HTML to PDF conversion in Go, I recommend looking into gotenberg (github.com/gotenberg/gotenberg). It's a Docker-powered library that provides a clean, straightforward conversion mechanism without full browser overhead. You can directly send HTML/CSS content and get PDF output with minimal complexity.

In my past projects, I've used gotenberg as a microservice alongside my Go application. It handles rendering with Chromium, but in a more controlled and resource-efficient manner compared to full browser solutions. The library supports runtime HTML input, has a small footprint, and doesn't require complex networking setup.

Configuration is straightforward - you can specify conversion parameters, handle multiple formats, and it integrates smoothly with containerized environments. Just make sure to evaluate performance for your specific use case, as conversion complexity can impact processing time.

u could try weasyprint, its python lib but works w/ go via cmd exec. super lightweight n handles html 2 pdf rly smooth. no full browser needed. tested it b4 n its awesome for simple conversions :+1: