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