Packages

PDF generation library with versioned Liquid templates stored in a database

Current section

Files

Jump to
sfera_doc lib sfera_doc pdf_engine chromic_pdf.ex
Raw

lib/sfera_doc/pdf_engine/chromic_pdf.ex

defmodule SferaDoc.PdfEngine.ChromicPDF do
@moduledoc """
Default PDF engine adapter backed by `ChromicPDF`.
"""
require Logger
@behaviour SferaDoc.PdfEngine.Adapter
@impl true
def render(html, opts) do
case ChromicPDF.print_to_pdf({:html, html}, opts) do
{:ok, base64_data} ->
pdf_binary = Base.decode64!(base64_data)
Logger.debug("ChromicPDF rendered PDF of size: #{byte_size(pdf_binary)} bytes")
{:ok, pdf_binary}
other ->
{:error, {:chromic_pdf_error, other}}
end
end
end