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

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

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
58
59
60
# 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


62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/redmine/export/pdf/wiki_pdf_helper.rb', line 62

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


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

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