\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /proc/self/root/opt/alt/libharu/usr/share/libharu/bindings/ruby/demo/

Viewing File: line_demo.rb

#
# << Haru Free PDF Library 2.0.2 >> -- line_demo.rb
#
# http://libharu.org/
#
# Copyright (c) 1999-2006 Takeshi Kanno
#
# 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"

def draw_line(page, x, y, text)
  page.begin_text
  page.move_text_pos(x, y - 10)
  page.show_text(text)
  page.end_text

  page.move_to(x, y - 15)
  page.line_to(x + 220, y - 15)
  page.stroke
end

def draw_line2(page, x, y, text)
  page.begin_text
  page.move_text_pos(x, y)
  page.show_text(text)
  page.end_text

  page.move_to(x + 30, y - 25)
  page.line_to(x + 160, y - 25)
  page.stroke
end

def draw_rect(page, x, y, text)
  page.begin_text
  page.move_text_pos(x, y - 10)
  page.show_text(text)
  page.end_text

  page.rectangle(x, y - 40, 220, 25)
end

pdf = HPDFDoc.new

pdf.set_compression_mode(HPDFDoc::HPDF_COMP_ALL)

font = pdf.get_font("Helvetica", nil)

page = pdf.add_page

#print the lines of the page.#
page.set_line_width(1)
x = page.get_width - 100
y = page.get_height - 110
page.rectangle(50, 50, x, y)
page.stroke

#print the title of the page (with positioning center).#
page.set_font_and_size(font, 24)
tw = page.text_width('Line Demo')
page.begin_text

x =(page.get_width - tw) / 2
y = page.get_height - 50
page.move_text_pos(x, y)

page.show_text('Line Demo')
page.end_text

page.set_font_and_size(font, 10)

#Draw various widths of lines.#
page.set_line_width(0)
draw_line(page, 60, 770, 'line width = 0')

page.set_line_width(1.0)
draw_line(page, 60, 740, 'line width = 1.0')

page.set_line_width(2.0)
draw_line(page, 60, 710, 'line width = 2.0')

#Line dash pattern#
page.set_line_width(1.0)

page.set_dash([3], 1)
draw_line(page, 60, 680, 'dash_ptn=[3], phase=1 -- 2 on, 3 off, 3 on...')

page.set_dash([7, 3], 2)
draw_line(page, 60, 650, 'dash_ptn=[7, 3], phase=2 -- 5 on 3 off, 7 on,...')

page.set_dash([8, 7, 2, 7], 0)
draw_line(page, 60, 620, 'dash_ptn=[8, 7, 2, 7], phase=0')

page.set_dash([], 0)

page.set_line_width(30)
page.set_rgb_stroke(0.0, 0.5, 0.0)

#Line Cap Style#
page.set_line_cap(HPDFDoc::HPDF_BUTT_END)
draw_line2(page, 60, 570, 'HPDF_BUTT_END')

page.set_line_cap(HPDFDoc::HPDF_ROUND_END)
draw_line2(page, 60, 505, 'HPDF_ROUND_END')

page.set_line_cap(HPDFDoc::HPDF_PROJECTING_SQUARE_END)
draw_line2(page, 60, 440, 'HPDF_PROJECTING_SQUARE_END')

#Line Join Style#
page.set_line_width(30)
page.set_rgb_stroke(0.0, 0.0, 0.5)

page.set_line_join(HPDFDoc::HPDF_MITER_JOIN)
page.move_to(120, 300)
page.line_to(160, 340)
page.line_to(200, 300)
page.stroke

page.begin_text
page.move_text_pos(60, 360)
page.show_text('HPDF_MITER_JOIN')
page.end_text

page.set_line_join(HPDFDoc::HPDF_ROUND_JOIN)
page.move_to(120, 195)
page.line_to(160, 235)
page.line_to(200, 195)
page.stroke

page.begin_text
page.move_text_pos(60, 255)
page.show_text('HPDF_ROUND_JOIN')
page.end_text

page.set_line_join(HPDFDoc::HPDF_BEVEL_JOIN)
page.move_to(120, 90)
page.line_to(160, 130)
page.line_to(200, 90)
page.stroke

page.begin_text
page.move_text_pos(60, 150)
page.show_text('HPDF_BEVEL_JOIN')
page.end_text

# Draw rectangle #
page.set_line_width(2)
page.set_rgb_stroke(0, 0, 0)
page.set_rgb_fill(0.75, 0.0, 0.0)

draw_rect(page, 300, 770, 'stroke')
page.stroke

draw_rect(page, 300, 720, 'Fill')
page.fill

draw_rect(page, 300, 670, 'Fill then stroke')
page.fill_stroke

#clip Rect#
page.gsave  # Save the current graphic state#
draw_rect(page, 300, 620, 'Clip rectangle')
page.clip
page.stroke
page.set_font_and_size(font, 13)

page.begin_text
page.move_text_pos(290, 600)
page.set_text_leading(12)
page.show_text('Clip Clip Clip Clip Clip Clipi Clip Clip Clip')
page.show_text_next_line('Clip Clip Clip Clip Clip Clip Clip Clip Clip')
page.show_text_next_line('Clip Clip Clip Clip Clip Clip Clip Clip Clip')
page.end_text
page.grestore

x0 = 330
y0 = 440
x1 = 430
y1 = 530
x2 = 480
y2 = 470
x3 = 480
y3 = 90

#Curve Example(curve_to2)#
page.set_rgb_fill(0, 0, 0)

page.begin_text
page.move_text_pos(300, 540)
page.show_text('curve_to2(x1, y1, x2. y2)')
page.end_text

page.begin_text
page.move_text_pos(x0 + 5, y0 - 5)
page.show_text('Current point')
page.move_text_pos(x1 - x0, y1 - y0)
page.show_text('(x1, y1)')
page.move_text_pos(x2 - x1, y2 - y1)
page.show_text('(x2, y2)')
page.end_text

page.set_dash([], 0)

page.set_line_width(0.5)
page.move_to(x1, y1)
page.line_to(x2, y2)
page.stroke

page.set_dash([], 0)

page.set_line_width(1.5)

page.move_to(x0, y0)
page.curve_to2(x1, y1, x2, y2)
page.stroke

#Curve Example(curve_to3)#
y0 = y0 - 150
y1 = y1 - 150
y2 = y2 - 150

page.begin_text
page.move_text_pos(300, 390)
page.show_text('curve_to3(x1, y1, x2. y2)')
page.end_text

page.begin_text
page.move_text_pos(x0 + 5, y0 - 5)
page.show_text('Current point')
page.move_text_pos(x1 - x0, y1 - y0)
page.show_text('(x1, y1)')
page.move_text_pos(x2 - x1, y2 - y1)
page.show_text('(x2, y2)')
page.end_text

page.set_dash([3], 1)

page.set_line_width(0.5)
page.move_to(x0, y0)
page.line_to(x1, y1)
page.stroke

page.set_dash([], 0)

page.set_line_width(1.5)
page.move_to(x0, y0)
page.curve_to3(x1, y1, x2, y2)
page.stroke

# Curve Example(curve_to)
y0 = y0 - 150
y1 = y1 - 160
y2 = y2 - 130
x2 = x2 + 10

page.begin_text
page.move_text_pos(300, 240)
page.show_text('curve_to(x1, y1, x2. y2, x3, y3)')
page.end_text

page.begin_text
page.move_text_pos(x0 + 5, y0 - 5)
page.show_text('Current point')
page.move_text_pos(x1 - x0, y1 - y0)
page.show_text('(x1, y1)')
page.move_text_pos(x2 - x1, y2 - y1)
page.show_text('(x2, y2)')
page.move_text_pos(x3 - x2, y3 - y2)
page.show_text('(x3, y3)')
page.end_text

page.set_dash([3], 1)

page.set_line_width(0.5)
page.move_to(x0, y0)
page.line_to(x1, y1)
page.stroke
page.move_to(x2, y2)
page.line_to(x3, y3)
page.stroke

page.set_dash([], 0)

page.set_line_width(1.5)
page.move_to(x0, y0)
page.curve_to(x1, y1, x2, y2, x3, y3)
page.stroke

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