Module: Redmine::Export::PDF::WikiPdfHelper

Included in:
WikiHelper
Defined in:
lib/redmine/export/pdf/wiki_pdf_helper.rb

Overview

Since:

  • 3.0.0

Instance Method Summary collapse

Instance Method Details

#wiki_page_to_pdf(page, project) ⇒ Object

Returns a PDF string of a single wiki page



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/redmine/export/pdf/wiki_pdf_helper.rb', line 42

def wiki_page_to_pdf(page, project)
  pdf = ITCPDF.new(current_language)
  pdf.set_title("#{project} - #{page.title}")
  pdf.alias_nb_pages
  pdf.footer_date = format_date(User.current.today)
  pdf.add_page
  pdf.SetFontStyle('B',11)
  pdf.RDMMultiCell(190,5,
       "#{project} - #{page.title} - # #{page.content.version}")
  pdf.ln
  # Set resize image scale
  pdf.set_image_scale(1.6)
  pdf.SetFontStyle('',9)
  write_wiki_page(pdf, page)
  pdf.output
end

#wiki_pages_to_pdf(pages, project) ⇒ Object

Returns a PDF string of a set of wiki pages



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/redmine/export/pdf/wiki_pdf_helper.rb', line 25

def wiki_pages_to_pdf(pages, project)
  pdf = Redmine::Export::PDF::ITCPDF.new(current_language)
  pdf.set_title(project.name)
  pdf.alias_nb_pages
  pdf.footer_date = format_date(User.current.today)
  pdf.add_page
  pdf.SetFontStyle('B',11)
  pdf.RDMMultiCell(190,5, project.name)
  pdf.ln
  # Set resize image scale
  pdf.set_image_scale(1.6)
  pdf.SetFontStyle('',9)
  write_page_hierarchy(pdf, pages.group_by(&:parent_id))
  pdf.output
end

#write_page_hierarchy(pdf, pages, node = nil, level = 0) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/redmine/export/pdf/wiki_pdf_helper.rb', line 59

def write_page_hierarchy(pdf, pages, node=nil, level=0)
  if pages[node]
    pages[node].each do |page|
      unless level == 0 && page == pages[node].first
        pdf.add_page
      end
      pdf.bookmark page.title, level
      write_wiki_page(pdf, page)
      write_page_hierarchy(pdf, pages, page.id, level + 1) if pages[page.id]
    end
  end
end

#write_wiki_page(pdf, page) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/redmine/export/pdf/wiki_pdf_helper.rb', line 72

def write_wiki_page(pdf, page)
  text = textilizable(page.content, :text,
    :only_path => false,
    :edit_section_links => false,
    :headings => false,
    :inline_attachments => false
  )
  pdf.RDMwriteFormattedCell(190,5,'','', text, page.attachments, 0)
  if page.attachments.any?
    pdf.ln(5)
    pdf.SetFontStyle('B',9)
    pdf.RDMCell(190,5, l(:label_attachment_plural), "B")
    pdf.ln
    for attachment in page.attachments
      pdf.SetFontStyle('',8)
      pdf.RDMCell(80,5, attachment.filename)
      pdf.RDMCell(20,5, number_to_human_size(attachment.filesize),0,0,"R")
      pdf.RDMCell(25,5, format_date(attachment.created_on),0,0,"R")
      pdf.RDMCell(65,5, attachment.author.name,0,0,"R")
      pdf.ln
    end
  end
end