2026-03-20 10:46:53 -04:00
|
|
|
module IdCardPrinterService
|
2026-03-16 12:09:45 -04:00
|
|
|
class PdfProcessor
|
|
|
|
|
|
2026-03-19 00:42:27 -04:00
|
|
|
def initialize(employer, layout, zip = false)
|
|
|
|
|
@employer = employer
|
2026-03-16 12:09:45 -04:00
|
|
|
@layout = layout
|
|
|
|
|
@zip = zip
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def call
|
2026-03-19 00:42:27 -04:00
|
|
|
# if @zip
|
|
|
|
|
# group_cards_pdf_array = []
|
|
|
|
|
# else
|
|
|
|
|
# group_cards_pdf = CombinePDF.new
|
|
|
|
|
# end
|
2026-03-16 12:09:45 -04:00
|
|
|
group_cards_pdf_array = []
|
2026-03-19 00:42:27 -04:00
|
|
|
IdCard::PrintData.where(pl_plan_key: @employer.pl_plan_key).each do |card|
|
2026-03-20 10:46:53 -04:00
|
|
|
url = IdCardPrinterService::JasperUrlGenerator.new(@employer.pl_plan_key, card.family_id, @layout).call
|
2026-03-16 12:09:45 -04:00
|
|
|
puts url
|
2026-03-20 10:46:53 -04:00
|
|
|
card_pdf = IdCardPrinterService::JasperPdfGenerator.new(url).call
|
2026-03-16 12:09:45 -04:00
|
|
|
if @zip
|
2026-03-19 00:42:27 -04:00
|
|
|
card_filename = "#{card.full_name_last_name_first.gsub(", ", "_")}_digital_card_#{Date.today}.pdf"
|
2026-03-16 12:09:45 -04:00
|
|
|
group_cards_pdf_array << { name: card_filename, data: card_pdf.to_pdf }
|
|
|
|
|
else
|
|
|
|
|
group_cards_pdf_array << card_pdf
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2026-03-19 00:42:27 -04:00
|
|
|
# if @zip
|
|
|
|
|
# group_cards_pdf = Zip::OutputStream.write_buffer do |zio|
|
|
|
|
|
# group_cards_pdf_array.each do |file|
|
|
|
|
|
# zio.put_next_entry(file[:name])
|
|
|
|
|
# zio.write(file[:data])
|
|
|
|
|
# end
|
|
|
|
|
# end
|
|
|
|
|
# # else
|
|
|
|
|
# # todays_date = DateTime.current.strftime('%Y%m%d%H%M%S')
|
|
|
|
|
# # group_cards_pdf.save("tmp/#{@employer.name}_print_cards_#{todays_date}.pdf")
|
|
|
|
|
# end
|
2026-03-16 12:09:45 -04:00
|
|
|
|
2026-03-19 00:42:27 -04:00
|
|
|
group_cards_pdf_array
|
2026-03-16 12:09:45 -04:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|