晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/opt/alt/libharu/usr/share/libharu/bindings/ruby/demo/
Upload File :
Current File : //opt/alt/libharu/usr/share/libharu/bindings/ruby/demo/text_demo2.rb
#
# << Haru Free PDF Library 2.0.0 >> -- text_demo2.rb
#
# Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
#
# Permission to use, copy, modify, distribute and sell this software
# and its documentation for any purpose is hereby granted without fee,
# provided that the above copyright notice appear in all copies and
# that both that copyright notice and this permission notice appear
# in supporting documentation.
# It is provided "as is" without express or implied warranty.
#

require "hpdf"

samp_text = "The quick brown fox jumps over the lazy dog. "

pdf = HPDFDoc.new

page = pdf.add_page
page.set_size(HPDFDoc::HPDF_PAGE_SIZE_A5, HPDFDoc::HPDF_PAGE_PORTRAIT)
height = page.get_height

font = pdf.get_font("Helvetica", nil)
page.set_text_leading(20)

# HPDF_TALIGN_LEFT
left = 25
top = 545
right = 200
bottom = top - 40

page.rectangle(left, bottom, right - left, top - bottom)
page.stroke

page.begin_text
page.set_font_and_size(font, 10)
page.text_out(left, top + 3, "HPDF_TALIGN_LEFT")

page.set_font_and_size(font, 13)
page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_LEFT)
page.end_text

# HPDF_TALIGN_RIGHT
left = 220
right = 395

page.rectangle(left, bottom, right - left, top - bottom)
page.stroke

page.begin_text
page.set_font_and_size(font, 10)
page.text_out(left, top + 3, "HPDF_TALIGN_RIGHT")

page.set_font_and_size(font, 13)
page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_RIGHT)
page.end_text

# HPDF_TALIGN_CENTER
left = 25
top = 475
right = 200
bottom = top - 40

page.rectangle(left, bottom, right - left, top - bottom)
page.stroke

page.begin_text
page.set_font_and_size(font, 10)
page.text_out(left, top + 3, "HPDF_TALIGN_CENTER")

page.set_font_and_size(font, 13)
page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_CENTER)
page.end_text

# HPDF_TALIGN_JUSTIFY
left = 220
right = 395

page.rectangle(left, bottom, right - left, top - bottom)
page.stroke

page.begin_text
page.set_font_and_size(font, 10)
page.text_out(left, top + 3, "HPDF_TALIGN_JUSTIFY")

page.set_font_and_size(font, 13)
page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_JUSTIFY)
page.end_text


# Skewed coordinate system

angle1 = 5.0
angle2 = 10.0
rad1 = angle1 / 180 * 3.141592
rad2 = angle2 / 180 * 3.141592

page.gsave

page.concat(1, Math.tan(rad1), Math.tan(rad2), 1, 25, 350)
    left = 0
    top = 40
    right = 175
    bottom = 0

page.rectangle(left, bottom, right - left,
                top - bottom)
page.stroke

page.begin_text

page.set_font_and_size(font, 10)
page.text_out(left, top + 3, "Skewed coordinate system")

page.set_font_and_size(font, 13)
page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_LEFT)

page.end_text

page.grestore


# Rotated coordinate system
page.gsave

angle1 = 5.0
rad1 = angle1 / 180 * 3.141592

page.concat(Math.cos(rad1), Math.sin(rad1), -Math.sin(rad1), Math.cos(rad1), 220, 350)
left = 0
top = 40
right = 175
bottom = 0

page.rectangle(left, bottom, right - left,
                top - bottom)
page.stroke

page.begin_text

page.set_font_and_size(font, 10)
page.text_out(left, top + 3, "Rotated coordinate system")

page.set_font_and_size(font, 13)
page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_LEFT)

page.end_text

page.grestore


# text along a circle
page.set_gray_stroke(0)
page.circle(210, 190, 145)
page.circle(210, 190, 113)
page.stroke

angle1 = 360.0 / samp_text.length
angle2 = 180.0

page.begin_text
font = pdf.get_font("Courier-Bold", nil)
page.set_font_and_size(font, 30)

i = 0
while i < samp_text.length
  rad1 = (angle2 - 90) / 180 * 3.141592
  rad2 = angle2 / 180 * 3.141592

  x = 210.0 + Math.cos(rad2) * 122
  y = 190.0 + Math.sin(rad2) * 122

  page.set_text_matrix(Math.cos(rad1), Math.sin(rad1), -Math.sin(rad1), Math.cos(rad1), x, y)

  page.show_text(samp_text[i, 1])
  angle2 -= angle1
  i = i + 1
end

page.end_text


pdf.save_to_file($0 + ".pdf")