Sha256: f01e96455842dd60ba93178f8288a77ee7f8133acc71c4126f9bfba33c46dbef

Contents?: true

Size: 1.43 KB

Versions: 38

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

require "collection_presenter"

module Renalware
  module Letters
    module Printing
      # Renders a PDF for printing with interleaved address and letter pages for multiple recipients
      class DuplexInterleavedPdfRenderer
        # Note we can't support page numbers here as they would start on the first address page and
        # end on the last letter, so the last letter if there are 3 recipients might say
        # Page 5 of 6 on the address page and Page 6 of 6 on the letter.
        OPTIONS = {
          page_size: "A4",
          encoding: "UTF-8"
        }.freeze

        def self.call(letter)
          unless letter.respond_to?(:to_html)
            letter = LetterPresenterFactory.new(letter)
          end
          # NB not caching the pdf for now until we can find a more standard way of using the
          # letter cache across adhoc and env stuffer renderers. Here for example we should be
          # using a hex digest of the interleaved letter but currently would not be.
          # PdfLetterCache.fetch(letter) do
          WickedPdf.new.pdf_from_string(
            LettersController.new.render_to_string(
              template: "/renalware/letters/printable_letters/show",
              locals: { letter: letter, recipients: PrintableRecipients.for(letter) },
              encoding: "UTF-8"
            ),
            OPTIONS
          )
          # end
        end
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
renalware-core-2.0.149 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.148 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.147 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.146 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.145 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.144 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.143 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.142 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.141 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.140 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.139 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.138 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.137 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.136 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.135 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.134 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.133 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.132 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.131 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb
renalware-core-2.0.130 app/models/renalware/letters/printing/duplex_interleaved_pdf_renderer.rb