|
- require "prawn"
- require "prawn/table"
- require "pry"
-
- class Prawn::Document
- def background_color(color)
- tmp_color = fill_color
- canvas do
- fill_color color
- fill_rectangle [bounds.left, bounds.top], bounds.right, bounds.top
- end
- fill_color tmp_color
- end
- end
-
- class Awakened2069
- FONT_SIZE_CHAPTER = 48
- FONT_SIZE_BODY = 10
-
- attr_accessor :pdf, :chapter_title
-
- def start_chapter(chapter_name)
- @chapter_title = chapter_name
- puts "Starting #{chapter_title}"
-
- pdf.start_new_page
-
- pdf.outline.update do
- puts "\tAdding #{@awakened2069.chapter_title} on page #{page_number}"
- section(@chapter_title, :destination => page_number)
- end
-
- puts "\tSetting font size"
- pdf.font_size Awakened2069::FONT_SIZE_CHAPTER
- pdf.font "Abess"
- puts "\tPrinting chapter to document"
- pdf.text chapter_title, :align => :center
-
- puts "\tRestoring body text"
- pdf.font "Goudy"
- pdf.font_size FONT_SIZE_BODY
- end
-
-
- def generate
- @pdf = Prawn::Document.new(:margin => 0)
- pdf.font_families.update(
- "Goudy" => {
- :normal => "goudy.ttf",
- :bold => "goudy-bold.ttf",
- :italic => "goudy-italic.ttf"
- },
- "Abess" => {
- :normal => "abess.ttf"
- },
- "Lilith" => {
- :normal => "lilith.ttf"
- },
- "Goblin Hand" => {
- :normal => "VTCGoblinHand.ttf",
- :bold => "VTCGoblinHandBold.ttf",
- :italic => "VTCGoblinHandItalic.ttf"
- },
- "Ultramarines" => {
- :normal => "ultramarines.ttf"
- },
- "Unispace" => {
- :normal => "unispace rg.ttf"
- }
- )
-
- pdf.outline.instance_variable_set(:@awakened2069, self)
-
- pdf.image("cover.png", :width => 612, :height => 792)
-
- pdf.start_new_page(:margin => 50)
-
- pdf.font "Ultramarines"
- pdf.font_size 72
- pdf.text "Awakened 2069", :align => :center
-
- pdf.font "Goudy"
- pdf.font_size 36
- pdf.text "\nGuide To The Mage: the Awakening, Second Edition Game On Discord. \n\nInvite Code:", :align => :center
-
- pdf.font "Unispace"
- pdf.text "25MpfjP", :align => :center
-
- pdf.font "Goudy"
-
- pdf.font_size 24
- pdf.text "\n\nAll content in this manual is inspired by the Storyteller and the players", :align => :center
-
- start_chapter "Introduction"
-
-
-
- pdf.render_file("writeup.pdf")
- end
- end
-
-
- awakened2069 = Awakened2069.new
- awakened2069.generate
|