File: text_link_in.rb

package info (click to toggle)
ruby-rghost 0.9.9-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,188 kB
  • sloc: ruby: 3,374; makefile: 6; sh: 1
file content (37 lines) | stat: -rw-r--r-- 1,497 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require "rghost/ps_object"
require "rghost/cursor"
require "rghost/ruby_to_ps"
# TextLinkIn is a helper to combine the cursor positioning and text with hyperlink output into one step as TextIn.
# It works only PDF format
class RGhost::TextLinkIn < RGhost::PsObject
  include RGhost::RubyToPs
  DEFAULT_OPTIONS = {x: :limit_left, y: :current_row, tag: :default_font, color: :blue, label: "RGhost API", url: "http://rghost.rubyforge.org"}
  #===Options
  # * <tt>:x and :y</tt> - Initial position.
  # * <tt>:tag or :with</tt> - Use predefined tag.
  # * <tt>:color</tt> - Override color of the tag.
  # * <tt>:label</tt> - The text.
  # * <tt>:url</tt> - Hyperlink.
  #===Examples
  # doc=RGhost::Document.new
  # doc.text_link "Shairon at Hashcode", :url => "http://www.hashcode.eti.br", :color => :blue,  :x => 3, :y => 4, :tag => :h1
  #====Rotating
  # doc.newpath do
  #  translate :x => 3, :y=> 4
  #   rotate 45
  #   text_link "RGhost website", :url => "http://rghost.rubyforge.org", :x => 0, :y => 0, :tag => :font2
  # end
  def initialize(options = {})
    @options = DEFAULT_OPTIONS.dup.merge(options)
  end

  def ps
    text = RGhost::PsObject.new
    text.set RGhost::Cursor.moveto(@options)
    text.raw RGhost::Color.create(@options[:color]) if @options[:color]
    f = "_#{@options[:with] || @options[:tag] || :default_font}"
    text.raw f
    text.raw "/:link_str #{to_string(@options[:label])} def /:link_uri #{to_string(@options[:url])} def :link_make "
    text.ps
  end
end