Improve pdf
This commit is contained in:
parent
bf0548ecfe
commit
976936d480
4 changed files with 90 additions and 22 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
BIN
app/assets/images/logo-apfelschule_xs.png
Normal file
BIN
app/assets/images/logo-apfelschule_xs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
|
|
@ -45,8 +45,8 @@ module PdfDocuments
|
||||||
@prawn_document.markup "<h4>#{text}</h4>"
|
@prawn_document.markup "<h4>#{text}</h4>"
|
||||||
end
|
end
|
||||||
|
|
||||||
def text(text)
|
def text(text, **args)
|
||||||
@prawn_document.text text, markup_options[:text]
|
@prawn_document.text text, markup_options[:text].merge(args)
|
||||||
end
|
end
|
||||||
|
|
||||||
def rich_text(text)
|
def rich_text(text)
|
||||||
|
|
@ -69,8 +69,8 @@ module PdfDocuments
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def logo
|
def logo(width: 24, xs: true)
|
||||||
@prawn_document.image "app/assets/images/logo-apfelschule.png", width: 150
|
@prawn_document.image "app/assets/images/logo-apfelschule#{ xs ? "_xs" : "" }.png", width:
|
||||||
end
|
end
|
||||||
|
|
||||||
def prepare_rich_text(rich_text)
|
def prepare_rich_text(rich_text)
|
||||||
|
|
@ -81,6 +81,7 @@ module PdfDocuments
|
||||||
|
|
||||||
rich_text.sub(/(<br>)+$/, "")
|
rich_text.sub(/(<br>)+$/, "")
|
||||||
end
|
end
|
||||||
|
# @prawn_document.draw_text("Dokument erstellt am #{Time.current.strftime('%d %B %Y')} um #{Time.current.strftime('%H:%M:%S')}", at: [ 0, -15 ])
|
||||||
|
|
||||||
def font(...)
|
def font(...)
|
||||||
@prawn_document.font(...)
|
@prawn_document.font(...)
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,34 @@ module PdfDocuments
|
||||||
private
|
private
|
||||||
|
|
||||||
def generate
|
def generate
|
||||||
|
move_down 130
|
||||||
|
logo(width: 250, xs: false)
|
||||||
|
move_down 40
|
||||||
heading1 params.report.name
|
heading1 params.report.name
|
||||||
rich_text params.report.comment
|
|
||||||
|
move_down 20
|
||||||
|
@prawn_document.text "#{I18n.l params.report.updated_at.to_date, format: :long}"
|
||||||
|
move_down 40
|
||||||
|
safe_display(params.report.comment) do
|
||||||
|
rich_text _1
|
||||||
|
move_down 30
|
||||||
|
end
|
||||||
|
|
||||||
|
@prawn_document.font_size(8) do
|
||||||
|
@prawn_document.draw_text("Dokument erstellt am #{Time.current.strftime('%d %B %Y')} um #{Time.current.strftime('%H:%M:%S')}", at: [0, 0])
|
||||||
|
end
|
||||||
|
@prawn_document.start_new_page
|
||||||
@pages = {}
|
@pages = {}
|
||||||
|
|
||||||
params.report.export[:elements].each.with_index(1) do |(element, success_criteria), element_index|
|
params.report.export[:elements].each.with_index(1) do |(element, success_criteria), element_index|
|
||||||
new_page(required_space: 200) if element_index > 1
|
new_page(required_space: 200) if element_index > 1
|
||||||
without_page_break do
|
without_page_break do
|
||||||
heading2 "#{element_index} #{element.title}"
|
heading2 "#{element_index} #{element.title}"
|
||||||
bold("#{element.page.path}")
|
@prawn_document.text("<b>Pfad:</b> #{element.page.path}", inline_format: true)
|
||||||
safe_display(element.screenshot) { image(_1.variant(:thumbnail), height: 160) && move_down(5) }
|
safe_display(element.screenshot) do
|
||||||
|
image(_1.variant(:thumbnail), height: 160)
|
||||||
|
move_down(15)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
rich_text element.description
|
rich_text element.description
|
||||||
move_down(10)
|
move_down(10)
|
||||||
|
|
@ -24,17 +42,71 @@ module PdfDocuments
|
||||||
success_criterion_row(success_criterion, [ element_index, sc_index ])
|
success_criterion_row(success_criterion, [ element_index, sc_index ])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@prawn_document.start_new_page
|
||||||
|
heading1("Anhang: Richtlinien")
|
||||||
|
params.report.export[:success_criteria].group_by(&:check).sort_by{ |c, _scs| c.external_number }.each do |check, criteria|
|
||||||
|
heading2(check.display_label)
|
||||||
|
{
|
||||||
|
external_number: { label: "WCAG Nummer" },
|
||||||
|
external_url: { label: "WCAG Link" },
|
||||||
|
conformity_level: { label: "Konformität" },
|
||||||
|
conformity_notice_de: { label: "Anmerkung Konformität", rich: true },
|
||||||
|
priority: { label: "Priorität" },
|
||||||
|
criterion_de: { label: "Kriterium/Grundlage", rich: true },
|
||||||
|
exemption_details_de: { label: "Ausnahmen", rich: true },
|
||||||
|
criterion_details_de: { label: "Verstehen", rich: true },
|
||||||
|
example_de: { label: "Beispiel", rich: true },
|
||||||
|
annotation_de: { label: "Anmerkung", rich: true }
|
||||||
|
}.each do |attribute, options|
|
||||||
|
v = check.send(attribute)
|
||||||
|
safe_display(v) do
|
||||||
|
text("<b>#{options[:label]}</b>", inline_format: true)
|
||||||
|
if options[:rich]
|
||||||
|
rich_text(_1)
|
||||||
|
else
|
||||||
|
text(_1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if check.links.any?
|
||||||
|
text("<b>Links</b>", inline_format: true)
|
||||||
|
check.links.group_by(&:link_category).each do |cat, links|
|
||||||
|
text(%Q(
|
||||||
|
<b>#{cat.name}</b>
|
||||||
|
<ul>
|
||||||
|
#{links.map{ "<link href=#{_1.url}>#{_1.text}</link>" }.join() }
|
||||||
|
</ul>
|
||||||
|
))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
text("<b>Erfolgskriterien</b>", inline_format: true)
|
||||||
|
text criteria.map(&:number).sort.join(", ")
|
||||||
|
end
|
||||||
string = "Seite <page> / <total>"
|
string = "Seite <page> / <total>"
|
||||||
# Green page numbers 1 to 7
|
# Green page numbers 1 to 7
|
||||||
options = {
|
options = {
|
||||||
at: [ @prawn_document.bounds.right - 150, -10 ],
|
at: [ @prawn_document.bounds.right - 150, 776 ],
|
||||||
width: 150,
|
width: 150,
|
||||||
align: :right,
|
align: :right,
|
||||||
start_count_at: 1
|
start_count_at: 2,
|
||||||
|
page_filter: ->(x) { x > 1 }
|
||||||
}
|
}
|
||||||
@prawn_document.number_pages string, options
|
@prawn_document.number_pages string, options
|
||||||
|
|
||||||
@prawn_document.repeat(:all) do
|
@prawn_document.repeat(2..) do
|
||||||
|
@prawn_document.text_box "<b>#{params.report.name}</b>", at: [ 50, 777 ], inline_format: true, width: 300
|
||||||
|
# @prawn_document.text_box "#{I18n.l params.report.updated_at.to_date, format: :long}", at: [ 0, 777 ], inline_format: true, width: 532, align: :right
|
||||||
|
@prawn_document.bounding_box([0, 766], width: 532) do
|
||||||
|
hr
|
||||||
|
end
|
||||||
|
@prawn_document.bounding_box([0, 796], width: 200, height: 200) do
|
||||||
|
logo
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@prawn_document.repeat(2..) do
|
||||||
# @prawn_document.bounding_box([ 0, 790 ], width: 200) do
|
# @prawn_document.bounding_box([ 0, 790 ], width: 200) do
|
||||||
# logo
|
# logo
|
||||||
# end
|
# end
|
||||||
|
|
@ -46,20 +118,13 @@ module PdfDocuments
|
||||||
# at: [ 0, -15 ],
|
# at: [ 0, -15 ],
|
||||||
# width: 200
|
# width: 200
|
||||||
# )
|
# )
|
||||||
@prawn_document.text_box "<b>#{params.report.name}</b>", at: [ 150, 777 ], inline_format: true, width: 300
|
# @prawn_document.text_box "#{I18n.l params.report.updated_at.to_date, format: :long}", at: [ 0, 777 ], inline_format: true, width: 532, align: :right
|
||||||
@prawn_document.text_box "#{I18n.l params.report.updated_at.to_date, format: :long}", at: [ 0, 777 ], inline_format: true, width: 516, align: :right
|
|
||||||
@prawn_document.bounding_box([-10, 800], width: 200, height: 200) do
|
|
||||||
logo
|
|
||||||
end
|
|
||||||
@prawn_document.font_size(8) do
|
@prawn_document.font_size(8) do
|
||||||
@prawn_document.draw_text("Dieses Dokument wurd am #{Time.current.strftime('%d %B %Y')} um #{Time.current.strftime('%H:%M:%S')} erstellt.", at: [ 0, -15 ])
|
# @prawn_document.draw_text("Dokument erstellt am #{Time.current.strftime('%d %B %Y')} um #{Time.current.strftime('%H:%M:%S')}", at: [ 0, -15 ])
|
||||||
end
|
|
||||||
@prawn_document.bounding_box([0, 0], width: 516) do
|
|
||||||
hr
|
|
||||||
end
|
|
||||||
@prawn_document.bounding_box([0, 766], width: 516) do
|
|
||||||
hr
|
|
||||||
end
|
end
|
||||||
|
# @prawn_document.bounding_box([0, 0], width: 532) do
|
||||||
|
# hr
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
x = params
|
x = params
|
||||||
|
|
@ -105,6 +170,8 @@ module PdfDocuments
|
||||||
end
|
end
|
||||||
heading4("Protokollnummer")
|
heading4("Protokollnummer")
|
||||||
text(success_criterion.number)
|
text(success_criterion.number)
|
||||||
|
heading4("WCAG")
|
||||||
|
text("<link href='#{success_criterion.check.external_url}'>#{success_criterion.check.external_number}</link>'", inline_format: true)
|
||||||
move_down(10)
|
move_down(10)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue