Программирование на языке Ruby
Шрифт:
rencoding => "WinAnsiEncoding",
differences => { 0x01 => "lozenge" })
mx = pdf.absolute_x_middle
my = pdf.absolute_y_middle
pdf.line(0, my, pdf.page_width, my).stroke
pdf.line(mx, 0, mx, pdf.page_height).stroke
# Левый верхний: Demo (UL).
quadrant(pdf, :ul) do
x = pdf.absolute_right_margin
r1 = 25
40.step(1, -3) do |xw|
tone = 1.0 - (xw / 40.0) * 0.2
pdf.stroke_style(PDF::Writer::StrokeStyle.new(xw))
pdf.stroke_color(Color::RGB.from_fraction(1, tone, tone))
pdf.line(x, pdf.bottom_margin, x,
pdf.absolute_top_margin).stroke
x -= xw+2
end
40.step(1, -3) do |xw|
tone = 1.0 - (xw / 40.0) * 0.2
pdf.stroke_style(PDF::Writer::StrokeStyle.new(xw))
pdf.stroke_color(Color::RGB.from_fraction(1, tone, tone))
pdf.circle_at(pdf.left_margin + 10, pdf.margin_height - 15,
r1).stroke
r1 += xw
end
pdf.stroke_color(Color::RGB::Black)
x = pdf.absolute_left_margin
y = pdf.absolute_bottom_margin
w = pdf.margin_width
h = pdf.margin_height
pdf.rectangle(x, y, w, h).stroke
text = "The Ruby Way"
y = pdf.absolute_top_margin
50.step(5, -5) do |size|
height = pdf.font_height(size)
y -= height
pdf.add_text(pdf.left_margin + 10, y, text, size)
end
(0...360).step(20) do |angle|
pdf.fill_color(Color::RGB.from_fraction(rand, rand, rand))
pdf.add_text(300 + Math.cos(PDF::Math.deg2rad(angle)) * 40,
300 + Math.sin(PDF::Math.deg2rad(angle)) * 40,
text, 20, angle)
end
end
pdf.fill_color Color::RGB::Black
#
Правый верхний: Grampian Highlands (UR).
quadrant(pdf, :ur) do
pdf.image("grampian-highlands.jpg",
:height => pdf.margin_height,
:resize => :width)
pdf.text("The Grampian Highlands, Scotland",
justification => :center,
:font_size => 36)
pdf.text("\001August 2001\001", :justification => :center,
:font_size => 24)
pdf.move_pointer(24)
info = <<-'EOS'.split($/).join(" ").squeeze(" ")
This picture was taken during a driving vacation through the
Scottish highlands in August 2001 by Austin Ziegler.
EOS
pdf.text(info, :justification => :full, :font_size => 16,
:left => 100, :right => 100)
end
pdf.fill_color Color::RGB::Black
#
Левый нижний: Individual-I (LL).
quadrant(pdf, :ll) do
require 'color/palette/monocontrast'
class IndividualI
def initialize(size = 100)
@size = size
end
# Размер буквы "i" в пунктах.
attr_accessor :size
def half_i(pdf)
pdf.move_to(0, 82)
pdf.line_to(0, 78)
pdf.line_to(9, 78)
pdf.line_to(9, 28)
pdf.line_to(0, 28)
pdf.line_to(0, 23)
pdf.line_to(18, 23)
pdf.line_to(18, 82)
pdf.fill
end
private :half_i
def draw(pdf, x, y)
pdf.save_state
pdf.translate_axis(x, y)
pdf.scale_axis(1 * (@size / 100.0), -1 * (@size / 100.0))
pdf.circle_at(20, 10, 7.5)
pdf.fill
half_i(pdf)
pdf.translate_axis(40, 0)
Поделиться:
Популярные книги
Женщина для утех семьи Бэкхейм
Фантастика:
фэнтези
5.00
рейтинг книги
В поисках христиан и пряностей
Страницы истории
Научно-образовательная:
история
5.00
рейтинг книги
Судьба
Проза:
историческая проза
советская классическая проза
5.00
рейтинг книги
Маленькая женщина Большого
5. Наша
Любовные романы:
эро литература
современные любовные романы
5.40
рейтинг книги
Кромешник. Книга 1
Проза:
проза прочее
5.00
рейтинг книги
Погоня за судьбой
Детективы:
триллеры
5.00
рейтинг книги
Танец убийц
Проза:
историческая проза
5.00
рейтинг книги
Отморозок 2
2. Отморозок
Фантастика:
попаданцы
5.50
рейтинг книги
Голос ночной птицы
1. Мэтью Корбетт
Детективы:
исторические детективы
8.97
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 35
35. История Телепата
Фантастика:
аниме
боевая фантастика
фэнтези
6.40
рейтинг книги
Алхимик. Компиляция. Книги 1-9
Алхимик
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Высоцкий
829. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.20
рейтинг книги
Дитя прибоя
Дитя прибоя
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.25
рейтинг книги
Имперец. Том 4
3. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00