errors.rb : Implements custom error classes for Prawn
Copyright April 2008, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
measurements.rb: Conversions from other measurements to PDF points
Copyright December 2008, Florian Witteler. All Rights Reserved.
stamp.rb : Implements a repeatable stamp
Copyright October 2009, Daniel Nelson. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
text/box.rb : Implements text boxes
Copyright November 2009, Daniel Nelson. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
prawn/core/object_store.rb : Implements PDF object repository for Prawn
Copyright August 2009, Brad Ediger. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
prawn/core/page.rb : Implements low-level representation of a PDF page
Copyright February 2010, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
Top level Module
transparency.rb : Implements transparency
Copyright October 2009, Daniel Nelson. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
transformation.rb: Implements rotate, translate, skew, scale and a generic
transformation_matrix
Copyright January 2010, Michael Witrant. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
color.rb : Implements color handling
Copyright June 2008, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
join_style.rb : Implements stroke join styling
Contributed by Daniel Nelson. October, 2009
This is free software. Please see the LICENSE and COPYING files for details.
dash.rb : Implements stroke dashing
Contributed by Daniel Nelson. October, 2009
This is free software. Please see the LICENSE and COPYING files for details.
cap_style.rb : Implements stroke cap styling
Contributed by Daniel Nelson. October, 2009
This is free software. Please see the LICENSE and COPYING files for details.
repeater.rb : Implements repeated page elements. Heavy inspired by repeating_element() in PDF::Wrapper
http://pdf-wrapper.rubyforge.org/
Copyright November 2009, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
internals.rb : Implements document internals for Prawn
Copyright August 2008, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
graphics_state.rb: Implements graphics state saving and restoring
Copyright January 2010, Michael Witrant. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
span.rb : Implements text columns
Copyright September 2008, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
page_geometry.rb : Describes PDF page geometries
Copyright April 2008, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
bounding_box.rb : Implements a mechanism for shifting the coordinate space
Copyright May 2008, Gregory Brown. All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
Copyright September 2008, Gregory Brown, James Healy All Rights Reserved.
This is free software. Please see the LICENSE and COPYING files for details.
Whe set to true, Prawn will verify hash options to ensure only valid keys are used. Off by default.
Example:
>> Prawn::Document.new(:tomato => "Juicy") Prawn::Errors::UnknownOption: Detected unknown option(s): [:tomato] Accepted options are: [:page_size, :page_layout, :left_margin, ...]
Serializes Ruby objects to their PDF equivalents. Most primitive objects will work as expected, but please note that Name objects are represented by Ruby Symbol objects and Dictionary objects are represented by Ruby hashes (keyed by symbols)
Examples: PdfObject(true) #=> "true" PdfObject(false) #=> "false" PdfObject(1.2124) #=> "1.2124" PdfObject("foo bar") #=> "(foo bar)" PdfObject(:Symbol) #=> "/Symbol" PdfObject(["foo",:bar, [1,2]]) #=> "[foo /bar [1 2]]"
# File lib/prawn/pdf_object.rb, line 30 def PdfObject(obj, in_content_stream = false) case(obj) when NilClass then "null" when TrueClass then "true" when FalseClass then "false" when Numeric then String(obj) when Array "[" << obj.map { |e| PdfObject(e, in_content_stream) }.join(' ') << "]" when Prawn::LiteralString obj = obj.gsub(/[\\\n\(\)]/) { |m| "\\#{m}" } "(#{obj})" when Time obj = obj.strftime("D:%Y%m%d%H%M%S%z").chop.chop + "'00'" obj = obj.gsub(/[\\\n\(\)]/) { |m| "\\#{m}" } "(#{obj})" when Prawn::ByteString "<" << obj.unpack("H*").first << ">" when String obj = "\xFE\xFF" + obj.unpack("U*").pack("n*") unless in_content_stream "<" << obj.unpack("H*").first << ">" when Symbol if (obj = obj.to_s) =~ /\s/ raise Prawn::Errors::FailedObjectConversion, "A PDF Name cannot contain whitespace" else "/" << obj end when Hash output = "<< " obj.each do |k,v| unless String === k || Symbol === k raise Prawn::Errors::FailedObjectConversion, "A PDF Dictionary must be keyed by names" end output << PdfObject(k.to_sym, in_content_stream) << " " << PdfObject(v, in_content_stream) << "\n" end output << ">>" when Prawn::Reference obj.to_s when Prawn::NameTree::Node PdfObject(obj.to_hash) when Prawn::NameTree::Value PdfObject(obj.name) + " " + PdfObject(obj.value) when Prawn::OutlineRoot, Prawn::OutlineItem PdfObject(obj.to_hash) else raise Prawn::Errors::FailedObjectConversion, "This object cannot be serialized to PDF" end end
Generated with the Darkfish Rdoc Generator 2.