# typed: true # DO NOT EDIT MANUALLY # This is an autogenerated file for types exported from the `prawn` gem. # Please instead update this file by running `bin/tapioca gem prawn`. # @private # # source://prawn//lib/prawn/security/arcfour.rb#14 class Arcfour # @return [Arcfour] a new instance of Arcfour # # source://prawn//lib/prawn/security/arcfour.rb#15 def initialize(key); end # source://prawn//lib/prawn/security/arcfour.rb#41 def encrypt(string); end private # Produces the next byte of key material in the stream (3.2 Stream Generation) # # source://prawn//lib/prawn/security/arcfour.rb#48 def key_byte; end end # @private # # source://prawn//lib/prawn/security.rb#207 module PDF; end # source://prawn//lib/prawn/security.rb#208 module PDF::Core private # Like PdfObject, but returns an encrypted result if required. # For direct objects, requires the object identifier and generation number # from the indirect object referencing obj. # # @private # # source://prawn//lib/prawn/security.rb#216 def EncryptedPdfObject(obj, key, id, gen, in_content_stream = T.unsafe(nil)); end # source://pdf-core/0.4.0/lib/pdf/core/pdf_object.rb#40 def PdfObject(obj, in_content_stream = T.unsafe(nil)); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#74 def Reference(*args, &block); end # source://pdf-core/0.4.0/lib/pdf/core/pdf_object.rb#22 def string_to_hex(str); end # source://pdf-core/0.4.0/lib/pdf/core/pdf_object.rb#15 def utf8_to_utf16(str); end class << self # Like PdfObject, but returns an encrypted result if required. # For direct objects, requires the object identifier and generation number # from the indirect object referencing obj. # # @private # # source://prawn//lib/prawn/security.rb#216 def EncryptedPdfObject(obj, key, id, gen, in_content_stream = T.unsafe(nil)); end # source://pdf-core/0.4.0/lib/pdf/core/pdf_object.rb#40 def PdfObject(obj, in_content_stream = T.unsafe(nil)); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#74 def Reference(*args, &block); end # source://pdf-core/0.4.0/lib/pdf/core/pdf_object.rb#22 def string_to_hex(str); end # source://pdf-core/0.4.0/lib/pdf/core/pdf_object.rb#15 def utf8_to_utf16(str); end end end # @private # # source://prawn//lib/prawn/security.rb#268 class PDF::Core::Reference # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#16 def initialize(id, data); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#34 def <<(io); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def data; end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def data=(_arg0); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#46 def deep_copy(share = T.unsafe(nil)); end # Returns the object definition for the object this references, keyed from # +key+. # # source://prawn//lib/prawn/security.rb#272 def encrypted_object(key); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def gen; end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def gen=(_arg0); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def identifier; end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def identifier=(_arg0); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#23 def object; end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def offset; end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def offset=(_arg0); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#66 def replace(other_ref); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def stream; end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#14 def stream=(_arg0); end # source://pdf-core/0.4.0/lib/pdf/core/reference.rb#39 def to_s; end end # @private # # source://prawn//lib/prawn/security.rb#257 class PDF::Core::Stream # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#14 def initialize(io = T.unsafe(nil)); end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#20 def <<(io); end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#26 def compress!; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#33 def compressed?; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#72 def data; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#37 def empty?; end # source://prawn//lib/prawn/security.rb#258 def encrypted_object(key, id, gen); end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#41 def filtered_stream; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#12 def filters; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#93 def inspect; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#60 def length; end # source://pdf-core/0.4.0/lib/pdf/core/stream.rb#64 def object; end end # source://prawn//lib/prawn.rb#11 module Prawn extend ::Prawn # 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, ...] # # source://prawn//lib/prawn.rb#35 def debug; end # 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, ...] # # source://prawn//lib/prawn.rb#35 def debug=(_arg0); end # @private # # source://prawn//lib/prawn.rb#37 def verify_options(accepted, actual); end class << self # source://prawn//lib/prawn/image_handler.rb#12 def image_handler; end end end # The base source directory for Prawn as installed on the system # # source://prawn//lib/prawn.rb#21 Prawn::BASEDIR = T.let(T.unsafe(nil), String) # @private # # source://prawn//lib/prawn.rb#47 module Prawn::Configurable # source://prawn//lib/prawn.rb#48 def C(*args); end # source://prawn//lib/prawn.rb#48 def configuration(*args); end end # source://prawn//lib/prawn.rb#22 Prawn::DATADIR = T.let(T.unsafe(nil), String) # The Prawn::Document class is how you start creating a PDF document. # # There are three basic ways you can instantiate PDF Documents in Prawn, they # are through assignment, implicit block or explicit block. Below is an exmple # of each type, each example does exactly the same thing, makes a PDF document # with all the defaults and puts in the default font "Hello There" and then # saves it to the current directory as "example.pdf" # # For example, assignment can be like this: # # pdf = Prawn::Document.new # pdf.text "Hello There" # pdf.render_file "example.pdf" # # Or you can do an implied block form: # # Prawn::Document.generate "example.pdf" do # text "Hello There" # end # # Or if you need to access a variable outside the scope of the block, the # explicit block form: # # words = "Hello There" # Prawn::Document.generate "example.pdf" do |pdf| # pdf.text words # end # # Usually, the block forms are used when you are simply creating a PDF document # that you want to immediately save or render out. # # See the new and generate methods for further details on the above. # # source://prawn//lib/prawn/security.rb#16 class Prawn::Document include ::Prawn::Document::Internals include ::PDF::Core::Annotations include ::PDF::Core::Destinations include ::Prawn::Document::Security include ::PDF::Core::Text include ::Prawn::Text::Formatted include ::Prawn::Text include ::Prawn::Graphics::Color include ::Prawn::Graphics::Dash include ::Prawn::Graphics::CapStyle include ::Prawn::Graphics::JoinStyle include ::Prawn::Graphics::Transparency include ::Prawn::Graphics::Transformation include ::Prawn::Graphics::Patterns include ::Prawn::Graphics include ::Prawn::Images include ::Prawn::Stamp include ::Prawn::SoftMask # Creates a new PDF Document. The following options are available (with # the default values marked in []) # # :page_size:: One of the PDF::Core::PageGeometry sizes [LETTER] # :page_layout:: Either :portrait or :landscape # :margin:: Sets the margin on all sides in points [0.5 inch] # :left_margin:: Sets the left margin in points [0.5 inch] # :right_margin:: Sets the right margin in points [0.5 inch] # :top_margin:: Sets the top margin in points [0.5 inch] # :bottom_margin:: Sets the bottom margin in points [0.5 inch] # :skip_page_creation:: Creates a document without starting the first page [false] # :compress:: Compresses content streams before rendering them [false] # :background:: An image path to be used as background on all pages [nil] # :background_scale:: Backgound image scale [1] [nil] # :info:: Generic hash allowing for custom metadata properties [nil] # :text_formatter: The text formatter to use for :inline_formatted text [Prawn::Text::Formatted::Parser] # # Setting e.g. the :margin to 100 points and the :left_margin to 50 will result in margins # of 100 points on every side except for the left, where it will be 50. # # The :margin can also be an array much like CSS shorthand: # # # Top and bottom are 20, left and right are 100. # :margin => [20, 100] # # Top is 50, left and right are 100, bottom is 20. # :margin => [50, 100, 20] # # Top is 10, right is 20, bottom is 30, left is 40. # :margin => [10, 20, 30, 40] # # Additionally, :page_size can be specified as a simple two value array giving # the width and height of the document you need in PDF Points. # # Usage: # # # New document, US Letter paper, portrait orientation # pdf = Prawn::Document.new # # # New document, A4 paper, landscaped # pdf = Prawn::Document.new(:page_size => "A4", :page_layout => :landscape) # # # New document, Custom size # pdf = Prawn::Document.new(:page_size => [200, 300]) # # # New document, with background # pdf = Prawn::Document.new(:background => "#{Prawn::DATADIR}/images/pigs.jpg") # # @return [Document] a new instance of Document # # source://prawn//lib/prawn/document.rb#192 def initialize(options = T.unsafe(nil), &block); end # :call-seq: # bounding_box(point, options={}, &block) # # A bounding box serves two important purposes: # * Provide bounds for flowing text, starting at a given point # * Translate the origin (0,0) for graphics primitives # # A point and :width must be provided. :height is optional. # (See stretchyness below) # # ==Positioning # # Bounding boxes are positioned relative to their top left corner and # the width measurement is towards the right and height measurement is # downwards. # # Usage: # # * Bounding box 100pt x 100pt in the absolute bottom left of the # containing box: # # pdf.bounding_box([0,100], :width => 100, :height => 100) # stroke_bounds # end # # * Bounding box 200pt x 400pt high in the center of the page: # # x_pos = ((bounds.width / 2) - 150) # y_pos = ((bounds.height / 2) + 200) # pdf.bounding_box([x_pos, y_pos], :width => 300, :height => 400) do # stroke_bounds # end # # ==Flowing Text # # When flowing text, the usage of a bounding box is simple. Text will # begin at the point specified, flowing the width of the bounding box. # After the block exits, the cursor position will be moved to # the bottom of the bounding box (y - height). If flowing text exceeds # the height of the bounding box, the text will be continued on the next # page, starting again at the top-left corner of the bounding box. # # Usage: # # pdf.bounding_box([100,500], :width => 100, :height => 300) do # pdf.text "This text will flow in a very narrow box starting" + # "from [100,500]. The pointer will then be moved to [100,200]" + # "and return to the margin_box" # end # # Note, this is a low level tool and is designed primarily for building # other abstractions. If you just need to flow text on the page, you # will want to look at span() and text_box() instead # # ==Translating Coordinates # # When translating coordinates, the idea is to allow the user to draw # relative to the origin, and then translate their drawing to a specified # area of the document, rather than adjust all their drawing coordinates # to match this new region. # # Take for example two triangles which share one point, drawn from the # origin: # # pdf.polygon [0,250], [0,0], [150,100] # pdf.polygon [100,0], [150,100], [200,0] # # It would be easy enough to translate these triangles to another point, # e.g [200,200] # # pdf.polygon [200,450], [200,200], [350,300] # pdf.polygon [300,200], [350,300], [400,200] # # However, each time you want to move the drawing, you'd need to alter # every point in the drawing calls, which as you might imagine, can become # tedious. # # If instead, we think of the drawing as being bounded by a box, we can # see that the image is 200 points wide by 250 points tall. # # To translate it to a new origin, we simply select a point at (x,y+height) # # Using the [200,200] example: # # pdf.bounding_box([200,450], :width => 200, :height => 250) do # pdf.stroke do # pdf.polygon [0,250], [0,0], [150,100] # pdf.polygon [100,0], [150,100], [200,0] # end # end # # Notice that the drawing is still relative to the origin. If we want to # move this drawing around the document, we simply need to recalculate the # top-left corner of the rectangular bounding-box, and all of our graphics # calls remain unmodified. # # ==Nesting Bounding Boxes # # At the top level, bounding boxes are specified relative to the document's # margin_box (which is itself a bounding box). You can also nest bounding # boxes, allowing you to build components which are relative to each other # # Usage: # # pdf.bounding_box([200,450], :width => 200, :height => 250) do # pdf.stroke_bounds # Show the containing bounding box # pdf.bounding_box([50,200], :width => 50, :height => 50) do # # a 50x50 bounding box that starts 50 pixels left and 50 pixels down # # the parent bounding box. # pdf.stroke_bounds # end # end # # ==Stretchyness # # If you do not specify a height to a bounding box, it will become stretchy # and its height will be calculated automatically as you stretch the box # downwards. # # pdf.bounding_box([100,400], :width => 400) do # pdf.text("The height of this box is #{pdf.bounds.height}") # pdf.text('this is some text') # pdf.text('this is some more text') # pdf.text('and finally a bit more') # pdf.text("Now the height of this box is #{pdf.bounds.height}") # end # # ==Absolute Positioning # # If you wish to position the bounding boxes at absolute coordinates rather # than relative to the margins or other bounding boxes, you can use canvas() # # pdf.bounding_box([50,500], :width => 200, :height => 300) do # pdf.stroke_bounds # pdf.canvas do # Positioned outside the containing box at the 'real' (300,450) # pdf.bounding_box([300,450], :width => 200, :height => 200) do # pdf.stroke_bounds # end # end # end # # Of course, if you use canvas, you will be responsible for ensuring that # you remain within the printable area of your document. # # source://prawn//lib/prawn/document/bounding_box.rb#158 def bounding_box(pt, *args, &block); end # The bounds method returns the current bounding box you are currently in, # which is by default the box represented by the margin box on the # document itself. When called from within a created bounding_box # block, the box defined by that call will be returned instead of the # document margin box. # # Another important point about bounding boxes is that all x and y measurements # within a bounding box code block are relative to the bottom left corner of the # bounding box. # # For example: # # Prawn::Document.new do # # In the default "margin box" of a Prawn document of 0.5in along each edge # # # Draw a border around the page (the manual way) # stroke do # line(bounds.bottom_left, bounds.bottom_right) # line(bounds.bottom_right, bounds.top_right) # line(bounds.top_right, bounds.top_left) # line(bounds.top_left, bounds.bottom_left) # end # # # Draw a border around the page (the easy way) # stroke_bounds # end # # source://prawn//lib/prawn/document.rb#394 def bounds; end # Sets Document#bounds to the BoundingBox provided. See above for a brief # description of what a bounding box is. This function is useful if you # really need to change the bounding box manually, but usually, just entering # and exiting bounding box code blocks is good enough. # # source://prawn//lib/prawn/document.rb#410 def bounds=(bounding_box); end # A shortcut to produce a bounding box which is mapped to the document's # absolute coordinates, regardless of how things are nested or margin sizes. # # pdf.canvas do # pdf.line pdf.bounds.bottom_left, pdf.bounds.top_right # end # # source://prawn//lib/prawn/document/bounding_box.rb#172 def canvas(&block); end # A column box is a bounding box with the additional property that when # text flows past the bottom, it will wrap first to another column on the # same page, and only flow to the next page when all the columns are # filled. # # column_box accepts the same parameters as bounding_box, as well as the # number of :columns and a :spacer (in points) between columns. If resetting # the top margin is desired on a new page (e.g. to allow for initial page # wide column titles) the option :reflow_margins => true can be set. # # Defaults are :columns = 3, :spacer = font_size, and # :reflow_margins => false # # Under PDF::Writer, "spacer" was known as "gutter" # # source://prawn//lib/prawn/document/column_box.rb#31 def column_box(*args, &block); end # The current y drawing position relative to the innermost bounding box, # or to the page margins at the top level. # # source://prawn//lib/prawn/document.rb#316 def cursor; end # Defines the grid system for a particular document. Takes the number of # rows and columns and the width to use for the gutter as the # keys :rows, :columns, :gutter, :row_gutter, :column_gutter # # Note that a completely new grid object is built each time define_grid() # is called. This means that all subsequent calls to grid() will use # the newly defined Grid object -- grids are not nestable like # bounding boxes are. # # source://prawn//lib/prawn/grid.rb#22 def define_grid(options = T.unsafe(nil)); end # Looks up the given font using the given criteria. Once a font has been # found by that matches the criteria, it will be cached to subsequent lookups # for that font will return the same object. # -- # Challenges involved: the name alone is not sufficient to uniquely identify # a font (think dfont suitcases that can hold multiple different fonts in a # single file). Thus, the :name key is included in the cache key. # # It is further complicated, however, since fonts in some formats (like the # dfont suitcases) can be identified either by numeric index, OR by their # name within the suitcase, and both should hash to the same font object # (to avoid the font being embedded multiple times). This is not yet implemented, # which means if someone selects a font both by name, and by index, the # font will be embedded twice. Since we do font subsetting, this double # embedding won't be catastrophic, just annoying. # ++ # # @private # # source://prawn//lib/prawn/font.rb#231 def find_font(name, options = T.unsafe(nil)); end # Executes a block and then restores the original y position. If new pages # were created during this block, it will teleport back to the original # page when done. # # pdf.text "A" # # pdf.float do # pdf.move_down 100 # pdf.text "C" # end # # pdf.text "B" # # source://prawn//lib/prawn/document.rb#339 def float; end # Without arguments, this returns the currently selected font. Otherwise, # it sets the current font. When a block is used, the font is applied # transactionally and is rolled back when the block exits. # # Prawn::Document.generate("font.pdf") do # text "Default font is Helvetica" # # font "Times-Roman" # text "Now using Times-Roman" # # font("DejaVuSans.ttf") do # text "Using TTF font from file DejaVuSans.ttf" # font "Courier", :style => :bold # text "You see this in bold Courier" # end # # text "Times-Roman, again" # end # # The :name parameter must be a string. It can be one of the 14 built-in # fonts supported by PDF, or the location of a TTF file. The Font::AFM::BUILT_INS # array specifies the valid built in font values. # # If a ttf font is specified, the glyphs necessary to render your document # will be embedded in the rendered PDF. This should be your preferred option # in most cases. It will increase the size of the resulting file, but also # make it more portable. # # The options parameter is an optional hash providing size and style. To use # the :style option you need to map those font styles to their respective font files. # See font_families for more information. # # source://prawn//lib/prawn/font.rb#51 def font(name = T.unsafe(nil), options = T.unsafe(nil)); end # Hash that maps font family names to their styled individual font names. # # To add support for another font family, append to this hash, e.g: # # pdf.font_families.update( # "MyTrueTypeFamily" => { :bold => "foo-bold.ttf", # :italic => "foo-italic.ttf", # :bold_italic => "foo-bold-italic.ttf", # :normal => "foo.ttf" }) # # This will then allow you to use the fonts like so: # # pdf.font("MyTrueTypeFamily", :style => :bold) # pdf.text "Some bold text" # pdf.font("MyTrueTypeFamily") # pdf.text "Some normal text" # # This assumes that you have appropriate TTF fonts for each style you # wish to support. # # By default the styles :bold, :italic, :bold_italic, and :normal are # defined for fonts "Courier", "Times-Roman" and "Helvetica". When # defining your own font families, you can map any or all of these # styles to whatever font files you'd like. # # source://prawn//lib/prawn/font.rb#171 def font_families; end # Hash of Font objects keyed by names # # source://prawn//lib/prawn/font.rb#253 def font_registry; end # When called with no argument, returns the current font size. # # When called with a single argument but no block, sets the current font # size. When a block is used, the font size is applied transactionally and # is rolled back when the block exits. You may still change the font size # within a transactional block for individual text segments, or nested calls # to font_size. # # Prawn::Document.generate("font_size.pdf") do # font_size 16 # text "At size 16" # # font_size(10) do # text "At size 10" # text "At size 6", :size => 6 # text "At size 10" # end # # text "At size 16" # end # # When called without an argument, this method returns the current font # size. # # source://prawn//lib/prawn/font.rb#98 def font_size(points = T.unsafe(nil)); end # Sets the font size # # source://prawn//lib/prawn/font.rb#107 def font_size=(size); end # Re-opens the page with the given (1-based) page number so that you can # draw on it. # # See Prawn::Document#number_pages for a sample usage of this capability. # # source://prawn//lib/prawn/document.rb#301 def go_to_page(k); end # A method that can either be used to access a particular grid on the page # or work with the grid system directly. # # @pdf.grid # Get the Grid directly # @pdf.grid([0,1]) # Get the GridBox at [0,1] # @pdf.grid([0,1], [1,2]) # Get a multi-box spanning from [0,1] to [1,2] # # source://prawn//lib/prawn/grid.rb#34 def grid(*args); end # Attempts to group the given block vertically within the current context. # First attempts to render it in the current position on the current page. # If that attempt overflows, it is tried anew after starting a new context # (page or column). Returns a logically true value if the content fits in # one page/column, false if a new page or column was needed. # # Raises CannotGroup if the provided content is too large to fit alone in # the current page or column. # # @private # @raise [NotImplementedError] # # source://prawn//lib/prawn/document.rb#570 def group(*a, &b); end # Indents the specified number of PDF points for the duration of the block # # pdf.text "some text" # pdf.indent(20) do # pdf.text "This is indented 20 points" # end # pdf.text "This starts 20 points left of the above line " + # "and is flush with the first line" # pdf.indent 20, 20 do # pdf.text "This line is indented on both sides." # end # # source://prawn//lib/prawn/document.rb#482 def indent(left, right = T.unsafe(nil), &block); end # source://prawn//lib/prawn/document.rb#626 def initialize_first_page(options); end # Returns the value of attribute margin_box. # # source://prawn//lib/prawn/document.rb#104 def margin_box; end # Sets the attribute margin_box # # @param value the value to set the attribute margin_box to. # # source://prawn//lib/prawn/document.rb#104 def margin_box=(_arg0); end # Returns the value of attribute margins. # # source://prawn//lib/prawn/document.rb#105 def margins; end # @private # # source://prawn//lib/prawn/document.rb#614 def mask(*fields); end # Moves to the specified y position in relative terms to the bottom margin. # # source://prawn//lib/prawn/document.rb#322 def move_cursor_to(new_y); end # Moves down the document by n points relative to the current position inside # the current bounding box. # # source://prawn//lib/prawn/document.rb#424 def move_down(n); end # Moves up the document by n points relative to the current position inside # the current bounding box. # # source://prawn//lib/prawn/document.rb#417 def move_up(n); end # Places a text box on specified pages for page numbering. This should be called # towards the end of document creation, after all your content is already in # place. In your template string, refers to the current page, and # refers to the total amount of pages in the document. Page numbering should # occur at the end of your Prawn::Document.generate block because the method iterates # through existing pages after they are created. # # Parameters are: # # string:: Template string for page number wording. # Should include '' and, optionally, ''. # options:: A hash for page numbering and text box options. # :page_filter:: A filter to specify which pages to place page numbers on. # Refer to the method 'page_match?' # :start_count_at:: The starting count to increment pages from. # :total_pages:: If provided, will replace with the value given. # Useful to override the total number of pages when using # the start_count_at option. # :color:: Text fill color. # # Please refer to Prawn::Text::text_box for additional options concerning text # formatting and placement. # # Example: Print page numbers on every page except for the first. Start counting from # five. # # Prawn::Document.generate("page_with_numbering.pdf") do # number_pages " in a total of ", # {:start_count_at => 5, # :page_filter => lambda{ |pg| pg != 1 }, # :at => [bounds.right - 50, 0], # :align => :right, # :size => 14} # end # # source://prawn//lib/prawn/document.rb#521 def number_pages(string, options = T.unsafe(nil)); end # Lazily instantiates a Prawn::Outline object for document. This is used as point of entry # to methods to build the outline tree for a document's table of contents. # # source://prawn//lib/prawn/outline.rb#9 def outline; end # Moves down the document by y, executes a block, then moves down the # document by y again. # # pdf.text "some text" # pdf.pad(100) do # pdf.text "This is 100 points below the previous line of text" # end # pdf.text "This is 100 points below the previous line of text" # # source://prawn//lib/prawn/document.rb#463 def pad(y); end # Executes a block then moves down the document # # pdf.text "some text" # pdf.pad_bottom(100) do # pdf.text "This text appears right below the previous line of text" # end # pdf.text "This is 100 points below the previous line of text" # # source://prawn//lib/prawn/document.rb#449 def pad_bottom(y); end # Moves down the document and then executes a block. # # pdf.text "some text" # pdf.pad_top(100) do # pdf.text "This is 100 points below the previous line of text" # end # pdf.text "This text appears right below the previous line of text" # # source://prawn//lib/prawn/document.rb#436 def pad_top(y); end # @private # # source://prawn//lib/prawn/document.rb#642 def page; end # Returns the number of pages in the document # # pdf = Prawn::Document.new # pdf.page_count #=> 1 # 3.times { pdf.start_new_page } # pdf.page_count #=> 4 # # source://prawn//lib/prawn/document.rb#292 def page_count; end # Provides a way to execute a block of code repeatedly based on a # page_filter. # # Available page filters are: # :all repeats on every page # :odd repeats on odd pages # :even repeats on even pages # some_array repeats on every page listed in the array # some_range repeats on every page included in the range # some_lambda yields page number and repeats for true return values # # @return [Boolean] # # source://prawn//lib/prawn/document.rb#597 def page_match?(page_filter, page_number); end # Returns the value of attribute page_number. # # source://prawn//lib/prawn/document.rb#106 def page_number; end # Sets the attribute page_number # # @param value the value to set the attribute page_number to. # # source://prawn//lib/prawn/document.rb#106 def page_number=(_arg0); end # Returns the innermost non-stretchy bounding box. # # @private # # source://prawn//lib/prawn/document.rb#401 def reference_bounds; end # Renders the PDF document to string. # Pass an open file descriptor to render to file. # # source://prawn//lib/prawn/document.rb#350 def render(*a, &b); end # Renders the PDF document to file. # # pdf.render_file "foo.pdf" # # source://prawn//lib/prawn/document.rb#363 def render_file(filename); end # Provides a way to execute a block of code repeatedly based on a # page_filter. Since Stamp is used under the hood, this method is very space # efficient. # # Available page filters are: # :all -- repeats on every page # :odd -- repeats on odd pages # :even -- repeats on even pages # some_array -- repeats on every page listed in the array # some_range -- repeats on every page included in the range # some_lambda -- yields page number and repeats for true return values # # Also accepts an optional second argument for dynamic content which executes the code # in the context of the filtered pages without using a Stamp. # # Example: # # Prawn::Document.generate("repeat.pdf", :skip_page_creation => true) do # # repeat :all do # draw_text "ALLLLLL", :at => bounds.top_left # end # # repeat :odd do # draw_text "ODD", :at => [0,0] # end # # repeat :even do # draw_text "EVEN", :at => [0,0] # end # # repeat [1,2] do # draw_text "[1,2]", :at => [100,0] # end # # repeat 2..4 do # draw_text "2..4", :at => [200,0] # end # # repeat(lambda { |pg| pg % 3 == 0 }) do # draw_text "Every third", :at => [250, 20] # end # # 10.times do # start_new_page # draw_text "A wonderful page", :at => [400,400] # end # # repeat(:all, :dynamic => true) do # text page_number, :at => [500, 0] # end # # end # # source://prawn//lib/prawn/repeater.rb#78 def repeat(page_filter, options = T.unsafe(nil), &block); end # A list of all repeaters in the document. # See Document#repeat for details # # @private # # source://prawn//lib/prawn/repeater.rb#18 def repeaters; end # Saves the current font, and then yields. When the block # finishes, the original font is restored. # # source://prawn//lib/prawn/font.rb#203 def save_font; end # Sets the font directly, given an actual Font object # and size. # # source://prawn//lib/prawn/font.rb#195 def set_font(font, size = T.unsafe(nil)); end # A span is a special purpose bounding box that allows a column of # elements to be positioned relative to the margin_box. # # Arguments: # +width+:: The width of the column in PDF points # # Options: # :position:: One of :left, :center, :right or an x offset # # This method is typically used for flowing a column of text from one # page to the next. # # span(350, :position => :center) do # text "Here's some centered text in a 350 point column. " * 100 # end # # source://prawn//lib/prawn/document/span.rb#29 def span(width, options = T.unsafe(nil)); end # Creates and advances to a new page in the document. # # Page size, margins, and layout can also be set when generating a # new page. These values will become the new defaults for page creation # # pdf.start_new_page #=> Starts new page keeping current values # pdf.start_new_page(:size => "LEGAL", :layout => :landscape) # pdf.start_new_page(:left_margin => 50, :right_margin => 50) # pdf.start_new_page(:margin => 100) # # source://prawn//lib/prawn/document.rb#242 def start_new_page(options = T.unsafe(nil)); end # @private # # source://prawn//lib/prawn/document.rb#637 def state; end # Returns the value of attribute text_formatter. # # source://prawn//lib/prawn/document.rb#110 def text_formatter; end # Sets the attribute text_formatter # # @param value the value to set the attribute text_formatter to. # # source://prawn//lib/prawn/document.rb#110 def text_formatter=(_arg0); end # @private # @raise [NotImplementedError] # # source://prawn//lib/prawn/document.rb#579 def transaction; end # Returns the width of the given string using the given font. If :size is not # specified as one of the options, the string is measured using the current # font size. You can also pass :kerning as an option to indicate whether # kerning should be used when measuring the width (defaults to +false+). # # Note that the string _must_ be encoded properly for the font being used. # For AFM fonts, this is WinAnsi. For TTF, make sure the font is encoded as # UTF-8. You can use the Font#normalize_encoding method to make sure strings # are in an encoding appropriate for the current font. # -- # For the record, this method used to be a method of Font (and still delegates # to width computations on Font). However, having the primary interface for # calculating string widths exist on Font made it tricky to write extensions # for Prawn in which widths are computed differently (e.g., taking formatting # tags into account, or the like). # # By putting width_of here, on Document itself, extensions may easily override # it and redefine the width calculation behavior. # ++ # # source://prawn//lib/prawn/font.rb#130 def width_of(string, options = T.unsafe(nil)); end # Returns the value of attribute y. # # source://prawn//lib/prawn/document.rb#105 def y; end # source://prawn//lib/prawn/document.rb#308 def y=(new_y); end private # source://prawn//lib/prawn/document.rb#683 def apply_margin_options(options); end # source://prawn//lib/prawn/document.rb#702 def font_metric_cache; end # source://prawn//lib/prawn/document.rb#660 def generate_margin_box; end # source://prawn//lib/prawn/document/bounding_box.rb#184 def init_bounding_box(user_block, options = T.unsafe(nil), &init_block); end # source://prawn//lib/prawn/document/column_box.rb#40 def init_column_box(user_block, options = T.unsafe(nil), &init_block); end # source://prawn//lib/prawn/grid.rb#275 def multi_box(b1, b2); end # source://prawn//lib/prawn/grid.rb#271 def single_box(i, j); end # setting override_settings to true ensures that a new graphic state does not end up using # previous settings. # # source://prawn//lib/prawn/document.rb#651 def use_graphic_settings(override_settings = T.unsafe(nil)); end # source://prawn//lib/prawn/font.rb#259 def width_of_inline_formatted_string(string, options = T.unsafe(nil)); end # source://prawn//lib/prawn/font.rb#269 def width_of_string(string, options = T.unsafe(nil)); end class << self # Any module added to this array will be included into instances of # Prawn::Document at the per-object level. These will also be inherited by # any subclasses. # # Example: # # module MyFancyModule # # def party! # text "It's a big party!" # end # # end # # Prawn::Document.extensions << MyFancyModule # # Prawn::Document.generate("foo.pdf") do # party! # end # # source://prawn//lib/prawn/document.rb#93 def extensions; end # Creates and renders a PDF document. # # When using the implicit block form, Prawn will evaluate the block # within an instance of Prawn::Document, simplifying your syntax. # However, please note that you will not be able to reference variables # from the enclosing scope within this block. # # # Using implicit block form and rendering to a file # Prawn::Document.generate "example.pdf" do # # self here is set to the newly instantiated Prawn::Document # # and so any variables in the outside scope are unavailable # font "Times-Roman" # draw_text "Hello World", :at => [200,720], :size => 32 # end # # If you need to access your local and instance variables, use the explicit # block form shown below. In this case, Prawn yields an instance of # PDF::Document and the block is an ordinary closure: # # # Using explicit block form and rendering to a file # content = "Hello World" # Prawn::Document.generate "example.pdf" do |pdf| # # self here is left alone # pdf.font "Times-Roman" # pdf.draw_text content, :at => [200,720], :size => 32 # end # # source://prawn//lib/prawn/document.rb#141 def generate(filename, options = T.unsafe(nil), &block); end # @private # @private # # source://prawn//lib/prawn/document.rb#98 def inherited(base); end end end # Low level layout helper that simplifies coordinate math. # # See Prawn::Document#bounding_box for a description of what this class # is used for. # # source://prawn//lib/prawn/document/bounding_box.rb#221 class Prawn::Document::BoundingBox # @private # @return [BoundingBox] a new instance of BoundingBox # # source://prawn//lib/prawn/document/bounding_box.rb#223 def initialize(document, parent, point, options = T.unsafe(nil)); end # Absolute bottom y-coordinate of the bottom box # # source://prawn//lib/prawn/document/bounding_box.rb#423 def absolute_bottom; end # Absolute bottom-left point of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#441 def absolute_bottom_left; end # Absolute bottom-left point of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#447 def absolute_bottom_right; end # Absolute left x-coordinate of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#405 def absolute_left; end # Absolute right x-coordinate of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#411 def absolute_right; end # Absolute top y-coordinate of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#417 def absolute_top; end # Absolute top-left point of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#429 def absolute_top_left; end # Absolute top-right point of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#435 def absolute_top_right; end # Increase the left padding of the bounding box. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#295 def add_left_padding(left_padding); end # Increase the right padding of the bounding box. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#311 def add_right_padding(right_padding); end # The translated origin (x,y-height) which describes the location # of the bottom left corner of the bounding box # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#253 def anchor; end # Relative bottom y-coordinate of the bounding box (Always 0) # # Example, position some text 3 pts from the bottom of the containing box: # # draw_text('hello', :at => [0, (bounds.bottom + 3)]) # # source://prawn//lib/prawn/document/bounding_box.rb#349 def bottom; end # Relative bottom-left point of the bounding box # # Example, draw a line along the left hand side of the page: # # stroke do # line(bounds.bottom_left, bounds.top_left) # end # # source://prawn//lib/prawn/document/bounding_box.rb#399 def bottom_left; end # Relative bottom-right point of the bounding box # # Example, draw a line along the right hand side of the page: # # stroke do # line(bounds.bottom_right, bounds.top_right) # end # # source://prawn//lib/prawn/document/bounding_box.rb#387 def bottom_right; end # Returns a deep copy of these bounds (including all parent bounds but # not copying the reference to the Document). # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#516 def deep_copy; end # @private # # source://prawn//lib/prawn/document/bounding_box.rb#239 def document; end # Height of the bounding box. If the box is 'stretchy' (unspecified # height attribute), height is calculated as the distance from the top of # the box to the current drawing position. # # source://prawn//lib/prawn/document/bounding_box.rb#461 def height; end # Temporarily adjust the @x coordinate to allow for left_padding # # Example: # # indent 20 do # text "20 points in" # indent 30 do # text "50 points in" # end # end # # indent 20, 20 do # text "indented on both sides" # end # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#284 def indent(left_padding, right_padding = T.unsafe(nil), &block); end # Relative left x-coordinate of the bounding box. (Always 0) # # Example, position some text 3 pts from the left of the containing box: # # draw_text('hello', :at => [(bounds.left + 3), 0]) # # source://prawn//lib/prawn/document/bounding_box.rb#263 def left; end # an alias for absolute_left # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#469 def left_side; end # Moves to the top of the next page of the document, starting a new page # if necessary. # # source://prawn//lib/prawn/document/bounding_box.rb#484 def move_past_bottom; end # @private # # source://prawn//lib/prawn/document/bounding_box.rb#239 def parent; end # Returns the innermost non-stretchy bounding box. # # source://prawn//lib/prawn/document/bounding_box.rb#501 def reference_bounds; end # Relative right x-coordinate of the bounding box. (Equal to the box width) # # Example, position some text 3 pts from the right of the containing box: # # draw_text('hello', :at => [(bounds.right - 3), 0]) # # source://prawn//lib/prawn/document/bounding_box.rb#329 def right; end # an alias for absolute_right # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#475 def right_side; end # Returns +false+ when the box has a defined height, +true+ when the height # is being calculated on the fly based on the current vertical position. # # @return [Boolean] # # source://prawn//lib/prawn/document/bounding_box.rb#495 def stretchy?; end # Decrease the left padding of the bounding box. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#303 def subtract_left_padding(left_padding); end # Decrease the right padding of the bounding box. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#318 def subtract_right_padding(right_padding); end # Relative top y-coordinate of the bounding box. (Equal to the box height) # # Example, position some text 3 pts from the top of the containing box: # # draw_text('hello', :at => [0, (bounds.top - 3)]) # # source://prawn//lib/prawn/document/bounding_box.rb#339 def top; end # Relative top-left point of the bounding_box # # Example, draw a line from the top left of the box diagonally to the # bottom right: # # stroke do # line(bounds.top_left, bounds.bottom_right) # end # # source://prawn//lib/prawn/document/bounding_box.rb#362 def top_left; end # Relative top-right point of the bounding box # # Example, draw a line from the top_right of the box diagonally to the # bottom left: # # stroke do # line(bounds.top_right, bounds.bottom_left) # end # # source://prawn//lib/prawn/document/bounding_box.rb#375 def top_right; end # The current indentation of the left side of the bounding box. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#243 def total_left_padding; end # The current indentation of the right side of the bounding box. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#247 def total_right_padding; end # Height of the bounding box. If the box is 'stretchy' (unspecified # height attribute), height is calculated as the distance from the top of # the box to the current drawing position. # # source://prawn//lib/prawn/document/bounding_box.rb#461 def update_height; end # Width of the bounding box # # source://prawn//lib/prawn/document/bounding_box.rb#453 def width; end class << self # Restores a copy of the bounds taken by BoundingBox.deep_copy in the # context of the given +document+. Does *not* set the bounds of the # document to the resulting BoundingBox, only returns it. # # @private # # source://prawn//lib/prawn/document/bounding_box.rb#531 def restore_deep_copy(bounds, document); end end end # Implements the necessary functionality to allow Document#column_box to # work. # # source://prawn//lib/prawn/document/column_box.rb#55 class Prawn::Document::ColumnBox < ::Prawn::Document::BoundingBox # @return [ColumnBox] a new instance of ColumnBox # # source://prawn//lib/prawn/document/column_box.rb#57 def initialize(document, parent, point, options = T.unsafe(nil)); end # Override the padding functions so as not to split the padding amount # between all columns on the page. # # source://prawn//lib/prawn/document/column_box.rb#125 def add_left_padding(left_padding); end # source://prawn//lib/prawn/document/column_box.rb#135 def add_right_padding(right_padding); end # The column width, not the width of the whole box, # before left and/or right padding # # source://prawn//lib/prawn/document/column_box.rb#67 def bare_column_width; end # Relative position of the left edge of the current column # # source://prawn//lib/prawn/document/column_box.rb#92 def left; end # x coordinate of the left edge of the current column # # source://prawn//lib/prawn/document/column_box.rb#86 def left_side; end # Moves to the next column or starts a new page if currently positioned at # the rightmost column. # # source://prawn//lib/prawn/document/column_box.rb#111 def move_past_bottom; end # Relative position of the right edge of the current column. # # source://prawn//lib/prawn/document/column_box.rb#105 def right; end # x co-orordinate of the right edge of the current column # # source://prawn//lib/prawn/document/column_box.rb#98 def right_side; end # source://prawn//lib/prawn/document/column_box.rb#130 def subtract_left_padding(left_padding); end # source://prawn//lib/prawn/document/column_box.rb#139 def subtract_right_padding(right_padding); end # The column width after padding. # Used to calculate how long a line of text can be. # # source://prawn//lib/prawn/document/column_box.rb#74 def width; end # Column width including the spacer. # # source://prawn//lib/prawn/document/column_box.rb#80 def width_of_column; end end # A Grid represents the entire grid system of a Page and calculates # the column width and row height of the base box. # # source://prawn//lib/prawn/grid.rb#53 class Prawn::Document::Grid # @return [Grid] a new instance of Grid # # source://prawn//lib/prawn/grid.rb#55 def initialize(pdf, options = T.unsafe(nil)); end # Returns the value of attribute column_gutter. # # source://prawn//lib/prawn/grid.rb#54 def column_gutter; end # Calculates the base width of boxes. # # source://prawn//lib/prawn/grid.rb#66 def column_width; end # Returns the value of attribute columns. # # source://prawn//lib/prawn/grid.rb#54 def columns; end # Returns the value of attribute gutter. # # source://prawn//lib/prawn/grid.rb#54 def gutter; end # Returns the value of attribute pdf. # # source://prawn//lib/prawn/grid.rb#54 def pdf; end # Returns the value of attribute row_gutter. # # source://prawn//lib/prawn/grid.rb#54 def row_gutter; end # Calculates the base height of boxes. # # source://prawn//lib/prawn/grid.rb#71 def row_height; end # Returns the value of attribute rows. # # source://prawn//lib/prawn/grid.rb#54 def rows; end # Diagnostic tool to show all of the grids. Defaults to gray. # # source://prawn//lib/prawn/grid.rb#76 def show_all(color = T.unsafe(nil)); end private # source://prawn//lib/prawn/grid.rb#90 def set_gutter(options); end # source://prawn//lib/prawn/grid.rb#86 def subdivide(total, num, gutter); end end # A Box is a class that represents a bounded area of a page. # A Grid object has methods that allow easy access to the coordinates of # its corners, which can be plugged into most existing prawnmethods. # # source://prawn//lib/prawn/grid.rb#107 class Prawn::Document::GridBox # @return [GridBox] a new instance of GridBox # # source://prawn//lib/prawn/grid.rb#110 def initialize(pdf, i, j); end # y-coordinate of the bottom # # source://prawn//lib/prawn/grid.rb#159 def bottom; end # x,y coordinates of bottom left corner # # source://prawn//lib/prawn/grid.rb#174 def bottom_left; end # x,y coordinates of bottom right corner # # source://prawn//lib/prawn/grid.rb#179 def bottom_right; end # Creates a standard bounding box based on the grid box. # # source://prawn//lib/prawn/grid.rb#184 def bounding_box(&blk); end # Width of the gutter # # source://prawn//lib/prawn/grid.rb#139 def gutter; end # Height of a box # # source://prawn//lib/prawn/grid.rb#134 def height; end # x-coordinate of left side # # source://prawn//lib/prawn/grid.rb#144 def left; end # Mostly diagnostic method that outputs the name of a box as # col_num, row_num # # source://prawn//lib/prawn/grid.rb#119 def name; end # Returns the value of attribute pdf. # # source://prawn//lib/prawn/grid.rb#108 def pdf; end # x-coordinate of right side # # source://prawn//lib/prawn/grid.rb#149 def right; end # Diagnostic method # # source://prawn//lib/prawn/grid.rb#189 def show(grid_color = T.unsafe(nil)); end # y-coordinate of the top # # source://prawn//lib/prawn/grid.rb#154 def top; end # x,y coordinates of top left corner # # source://prawn//lib/prawn/grid.rb#164 def top_left; end # x,y coordinates of top right corner # # source://prawn//lib/prawn/grid.rb#169 def top_right; end # :nodoc # # source://prawn//lib/prawn/grid.rb#124 def total_height; end # Width of a box # # source://prawn//lib/prawn/grid.rb#129 def width; end private # source://prawn//lib/prawn/grid.rb#202 def grid; end end # This module exposes a few low-level PDF features for those who want # to extend Prawn's core functionality. If you are not comfortable with # low level PDF functionality as defined by Adobe's specification, chances # are you won't need anything you find here. # # @private # # source://prawn//lib/prawn/document/internals.rb#20 module Prawn::Document::Internals extend ::Forwardable def add_content(*args, **_arg1, &block); end def compression_enabled?(*args, **_arg1, &block); end def deref(*args, **_arg1, &block); end def graphic_state(*args, **_arg1, &block); end def names(*args, **_arg1, &block); end def ref(*args, **_arg1, &block); end def ref!(*args, **_arg1, &block); end # source://prawn//lib/prawn/document/internals.rb#52 def renderer; end def restore_graphics_state(*args, **_arg1, &block); end def save_graphics_state(*args, **_arg1, &block); end end # A MultiBox is specified by 2 Boxes and spans the areas between. # # source://prawn//lib/prawn/grid.rb#210 class Prawn::Document::MultiBox < ::Prawn::Document::GridBox # @return [MultiBox] a new instance of MultiBox # # source://prawn//lib/prawn/grid.rb#211 def initialize(pdf, b1, b2); end # source://prawn//lib/prawn/grid.rb#248 def bottom; end # source://prawn//lib/prawn/grid.rb#232 def gutter; end # source://prawn//lib/prawn/grid.rb#228 def height; end # source://prawn//lib/prawn/grid.rb#236 def left; end # source://prawn//lib/prawn/grid.rb#216 def name; end # source://prawn//lib/prawn/grid.rb#240 def right; end # source://prawn//lib/prawn/grid.rb#244 def top; end # source://prawn//lib/prawn/grid.rb#220 def total_height; end # source://prawn//lib/prawn/grid.rb#224 def width; end private # source://prawn//lib/prawn/grid.rb#265 def bottom_box; end # source://prawn//lib/prawn/grid.rb#253 def left_box; end # source://prawn//lib/prawn/grid.rb#257 def right_box; end # source://prawn//lib/prawn/grid.rb#261 def top_box; end end # Implements PDF encryption (password protection and permissions) as # specified in the PDF Reference, version 1.3, section 3.5 "Encryption". # # source://prawn//lib/prawn/security.rb#20 module Prawn::Document::Security # Encrypts the document, to protect confidential data or control # modifications to the document. The encryption algorithm used is # detailed in the PDF Reference 1.3, section 3.5 "Encryption", and it is # implemented by all major PDF readers. # # +options+ can contain the following: # # :user_password:: Password required to open the document. If # this is omitted or empty, no password will be # required. The document will still be # encrypted, but anyone can read it. # # :owner_password:: Password required to make modifications to # the document or change or override its # permissions. If this is set to # :random, a random password will be # used; this can be useful if you never want # users to be able to override the document # permissions. # # :permissions:: A hash mapping permission symbols (see below) to # true or false. True means # "permitted", and false means "not permitted". # All permissions default to true. # # The following permissions can be specified: # # :print_document:: Print document. # # :modify_contents:: Modify contents of document (other than text # annotations and interactive form fields). # # :copy_contents:: Copy text and graphics from document. # # :modify_annotations:: Add or modify text annotations and # interactive form fields. # # == Examples # # Deny printing to everyone, but allow anyone to open without a password: # # encrypt_document :permissions => { :print_document => false }, # :owner_password => :random # # Set a user and owner password on the document, with full permissions for # both the user and the owner: # # encrypt_document :user_password => 'foo', :owner_password => 'bar' # # Set no passwords, grant all permissions (This is useful because the # default in some readers, if no permissions are specified, is "deny"): # # encrypt_document # # == Caveats # # * The encryption used is weak; the key is password-derived and is # limited to 40 bits, due to US export controls in effect at the time # the PDF standard was written. # # * There is nothing technologically requiring PDF readers to respect the # permissions embedded in a document. Many PDF readers do not. # # * In short, you have no security at all against a moderately # motivated person. Don't use this for anything super-serious. This is # not a limitation of Prawn, but is rather a built-in limitation of the # PDF format. # # source://prawn//lib/prawn/security.rb#92 def encrypt_document(options = T.unsafe(nil)); end private # Provides the values for the trailer encryption dictionary. # # source://prawn//lib/prawn/security.rb#128 def encryption_dictionary; end # The O (owner) value in the encryption dictionary. Algorithm 3.3. # # source://prawn//lib/prawn/security.rb#189 def owner_password_hash; end # Pads or truncates a password to 32 bytes as per Alg 3.2. # # source://prawn//lib/prawn/security.rb#173 def pad_password(password); end # source://prawn//lib/prawn/security.rb#145 def permissions=(perms = T.unsafe(nil)); end # source://prawn//lib/prawn/security.rb#164 def permissions_value; end # source://prawn//lib/prawn/security.rb#178 def user_encryption_key; end # The U (user) value in the encryption dictionary. Algorithm 3.4. # # source://prawn//lib/prawn/security.rb#197 def user_password_hash; end class << self # Encrypts the given string under the given key, also requiring the # object ID and generation number of the reference. # See Algorithm 3.1. # # source://prawn//lib/prawn/security.rb#114 def encrypt_string(str, key, id, gen); end end end # source://prawn//lib/prawn/security.rb#143 Prawn::Document::Security::FullPermissions = T.let(T.unsafe(nil), Integer) # source://prawn//lib/prawn/security.rb#168 Prawn::Document::Security::PasswordPadding = T.let(T.unsafe(nil), String) # Flags in the permissions word, numbered as LSB = 1 # # source://prawn//lib/prawn/security.rb#138 Prawn::Document::Security::PermissionsBits = T.let(T.unsafe(nil), Hash) # NOTE: We probably need to rethink the options validation system, but this # constant temporarily allows for extensions to modify the list. # # source://prawn//lib/prawn/document.rb#67 Prawn::Document::VALID_OPTIONS = T.let(T.unsafe(nil), Array) # @private # # source://prawn//lib/prawn/encoding.rb#8 module Prawn::Encoding; end # Map between unicode and WinAnsiEnoding # # source://prawn//lib/prawn/encoding.rb#11 class Prawn::Encoding::WinAnsi # @return [WinAnsi] a new instance of WinAnsi # # source://prawn//lib/prawn/encoding.rb#86 def initialize; end # Converts a Unicode codepoint into a valid WinAnsi single byte character. # # If there is no WinAnsi equivlant for a character, a _ will be substituted. # # source://prawn//lib/prawn/encoding.rb#95 def [](codepoint); end private # source://prawn//lib/prawn/encoding.rb#110 def load_mapping; end class << self # source://prawn//lib/prawn/encoding.rb#104 def mapping; end end end # source://prawn//lib/prawn/encoding.rb#12 Prawn::Encoding::WinAnsi::CHARACTERS = T.let(T.unsafe(nil), Array) # source://prawn//lib/prawn/errors.rb#10 module Prawn::Errors; end # This error is raised when a block is required, but not provided # # source://prawn//lib/prawn/errors.rb#70 class Prawn::Errors::BlockRequired < ::StandardError; end # Raised when Prawn is asked to draw something into a too-small box # # source://prawn//lib/prawn/errors.rb#26 class Prawn::Errors::CannotFit < ::StandardError; end # Raised if group() is called with a block that is too big to be # rendered in the current context. # # source://prawn//lib/prawn/errors.rb#31 class Prawn::Errors::CannotGroup < ::StandardError; end # This error is raised when Prawn is being used on a M17N aware VM, # and the user attempts to add text that isn't compatible with UTF-8 # to their document # # source://prawn//lib/prawn/errors.rb#37 class Prawn::Errors::IncompatibleStringEncoding < ::StandardError; end # This error is rased when a graphics method is called with improper arguments # # source://prawn//lib/prawn/errors.rb#73 class Prawn::Errors::InvalidGraphicsPath < ::StandardError; end # This error is raised when a name is not a valid format # # source://prawn//lib/prawn/errors.rb#57 class Prawn::Errors::InvalidName < ::StandardError; end # Raised when a table is spanned in an impossible way. # # source://prawn//lib/prawn/errors.rb#13 class Prawn::Errors::InvalidTableSpan < ::StandardError; end # This error is raised when a named element has alredy been # created. For example, in the stamp module, stamps must have # unique names within a document # # source://prawn//lib/prawn/errors.rb#54 class Prawn::Errors::NameTaken < ::StandardError; end # This error is raised when a method requiring a current page is called # without being on a page. # # source://prawn//lib/prawn/errors.rb#18 class Prawn::Errors::NotOnPage < ::StandardError; end # This error is raised when a required option has not been set # # source://prawn//lib/prawn/errors.rb#64 class Prawn::Errors::RequiredOption < ::StandardError; end # This error is raised when an object is attempted to be # referenced by name, but no such name is associated with an object # # source://prawn//lib/prawn/errors.rb#61 class Prawn::Errors::UndefinedObjectName < ::StandardError; end # This error is raised when Prawn cannot find a specified font # # source://prawn//lib/prawn/errors.rb#22 class Prawn::Errors::UnknownFont < ::StandardError; end # This error is raised when Prawn encounters an unknown key in functions # that accept an options hash. This usually means there is a typo in your # code or that the option you are trying to use has a different name than # what you have specified. # # source://prawn//lib/prawn/errors.rb#44 class Prawn::Errors::UnknownOption < ::StandardError; end # This error is raised when a requested outline item with a given title does not exist # # source://prawn//lib/prawn/errors.rb#67 class Prawn::Errors::UnknownOutlineTitle < ::StandardError; end # Raised when unrecognized content is provided for a table cell. # # source://prawn//lib/prawn/errors.rb#77 class Prawn::Errors::UnrecognizedTableContent < ::StandardError; end # this error is raised when a user attempts to embed an image of an unsupported # type. This can either a completely unsupported format, or a dialect of a # supported format (ie. some types of PNG) # # source://prawn//lib/prawn/errors.rb#49 class Prawn::Errors::UnsupportedImageType < ::StandardError; end # source://prawn//lib/prawn.rb#24 Prawn::FLOAT_PRECISION = T.let(T.unsafe(nil), Float) # Provides font information and helper functions. # # source://prawn//lib/prawn/font/afm.rb#12 class Prawn::Font # @return [Font] a new instance of Font # # source://prawn//lib/prawn/font.rb#308 def initialize(document, name, options = T.unsafe(nil)); end # Registers the given subset of the current font with the current PDF # page. This is safe to call multiple times for a given font and subset, # as it will only add the font the first time it is called. # # source://prawn//lib/prawn/font.rb#370 def add_to_current_page(subset); end # The size of the font ascender in PDF points # # source://prawn//lib/prawn/font.rb#322 def ascender; end # The size of the font descender in PDF points # # source://prawn//lib/prawn/font.rb#328 def descender; end # Compliments the #hash implementation above # # @return [Boolean] # # source://prawn//lib/prawn/font.rb#394 def eql?(other); end # The current font family # # source://prawn//lib/prawn/font.rb#282 def family; end # Return a hash (as in Object#hash) for the font based on the output of # #inspect. This is required since font objects are used as keys in hashes # that cache certain values (See # Prawn::Table::Text#styled_with_of_single_character) # # source://prawn//lib/prawn/font.rb#388 def hash; end # Gets height of current font in PDF points at current font size # # source://prawn//lib/prawn/font.rb#362 def height; end # Gets height of current font in PDF points at the given font size # # source://prawn//lib/prawn/font.rb#355 def height_at(size); end # source://prawn//lib/prawn/font.rb#375 def identifier_for(subset); end # source://prawn//lib/prawn/font.rb#379 def inspect; end # The size of the recommended gap between lines of text in PDF points # # source://prawn//lib/prawn/font.rb#334 def line_gap; end # The current font name # # source://prawn//lib/prawn/font.rb#279 def name; end # Normalizes the encoding of the string to an encoding supported by the # font. The string is expected to be UTF-8 going in. It will be re-encoded # and the new string will be returned. For an in-place (destructive) # version, see normalize_encoding!. # # @raise [NotImplementedError] # # source://prawn//lib/prawn/font.rb#342 def normalize_encoding(string); end # Destructive version of normalize_encoding; normalizes the encoding of a # string in place. # # source://prawn//lib/prawn/font.rb#349 def normalize_encoding!(str); end # The options hash used to initialize the font # # source://prawn//lib/prawn/font.rb#285 def options; end private # generate a font identifier that hasn't been used on the current page yet # # source://prawn//lib/prawn/font.rb#403 def generate_unique_id; end # source://prawn//lib/prawn/font.rb#407 def size; end class << self # source://prawn//lib/prawn/font.rb#298 def font_format(src, options); end # Shortcut interface for constructing a font object. Filenames of the form # *.ttf will call Font::TTF.new, *.dfont Font::DFont.new, and anything else # will be passed through to Font::AFM.new() # # source://prawn//lib/prawn/font.rb#290 def load(document, src, options = T.unsafe(nil)); end end end # @private # # source://prawn//lib/prawn/font/afm.rb#16 class Prawn::Font::AFM < ::Prawn::Font # @return [AFM] a new instance of AFM # # source://prawn//lib/prawn/font/afm.rb#40 def initialize(document, name, options = T.unsafe(nil)); end # source://prawn//lib/prawn/font/afm.rb#38 def attributes; end # The font bbox, as an array of integers # # source://prawn//lib/prawn/font/afm.rb#69 def bbox; end # Returns the number of characters in +str+ (a WinAnsi-encoded string). # # source://prawn//lib/prawn/font/afm.rb#106 def character_count(str); end # NOTE: String *must* be encoded as WinAnsi # # source://prawn//lib/prawn/font/afm.rb#74 def compute_width_of(string, options = T.unsafe(nil)); end # Perform any changes to the string that need to happen # before it is rendered to the canvas. Returns an array of # subset "chunks", where each chunk is an array of two elements. # The first element is the font subset number, and the second # is either a string or an array (for kerned text). # # For Adobe fonts, there is only ever a single subset, so # the first element of the array is "0", and the second is # the string itself (or an array, if kerning is performed). # # The +text+ parameter must be in WinAnsi encoding (cp1252). # # source://prawn//lib/prawn/font/afm.rb#122 def encode_text(text, options = T.unsafe(nil)); end # @return [Boolean] # # source://prawn//lib/prawn/font/afm.rb#126 def glyph_present?(char); end # Returns true if the font has kerning data, false otherwise # # @return [Boolean] # # source://prawn//lib/prawn/font/afm.rb#88 def has_kerning_data?; end # built-in fonts only work with winansi encoding, so translate the # string. Changes the encoding in-place, so the argument itself # is replaced with a string in WinAnsi encoding. # # source://prawn//lib/prawn/font/afm.rb#96 def normalize_encoding(text); end # @return [Boolean] # # source://prawn//lib/prawn/font/afm.rb#22 def unicode?; end private # source://prawn//lib/prawn/font/afm.rb#151 def find_font(file); end # converts a string into an array with spacing offsets # bewteen characters that need to be kerned # # String *must* be encoded as WinAnsi # # source://prawn//lib/prawn/font/afm.rb#219 def kern(string); end # source://prawn//lib/prawn/font/afm.rb#159 def parse_afm(file_name); end # source://prawn//lib/prawn/font/afm.rb#207 def parse_generic_afm_attribute(line, hash); end # source://prawn//lib/prawn/font/afm.rb#136 def register(subset); end # @return [Boolean] # # source://prawn//lib/prawn/font/afm.rb#147 def symbolic?; end # source://prawn//lib/prawn/font/afm.rb#240 def unscaled_width_of(string); end class << self # source://prawn//lib/prawn/font/afm.rb#26 def metrics_path; end end end # source://prawn//lib/prawn/font/afm.rb#17 Prawn::Font::AFM::BUILT_INS = T.let(T.unsafe(nil), Array) # @private # # source://prawn//lib/prawn/font/dfont.rb#14 class Prawn::Font::DFont < ::Prawn::Font::TTF private # source://prawn//lib/prawn/font/dfont.rb#38 def read_ttf_file; end class << self # Returns the number of fonts contained in the dfont file. # # source://prawn//lib/prawn/font/dfont.rb#30 def font_count(file); end # Returns a list of the names of all named fonts in the given dfont file. # Note that fonts are not required to be named in a dfont file, so the # list may be empty even if the file does contain fonts. Also, note that # the list is returned in no particular order, so the first font in the # list is not necessarily the font at index 0 in the file. # # source://prawn//lib/prawn/font/dfont.rb#22 def named_fonts(file); end end end # @private # # source://prawn//lib/prawn/font/ttf.rb#17 class Prawn::Font::TTF < ::Prawn::Font # @return [TTF] a new instance of TTF # # source://prawn//lib/prawn/font/ttf.rb#24 def initialize(document, name, options = T.unsafe(nil)); end # source://prawn//lib/prawn/font/ttf.rb#108 def basename; end # The font bbox, as an array of integers # # source://prawn//lib/prawn/font/ttf.rb#60 def bbox; end # source://prawn//lib/prawn/font/ttf.rb#128 def cap_height; end # Returns the number of characters in +str+ (a UTF-8-encoded string). # # source://prawn//lib/prawn/font/ttf.rb#183 def character_count(str); end # NOTE: +string+ must be UTF8-encoded. # # source://prawn//lib/prawn/font/ttf.rb#41 def compute_width_of(string, options = T.unsafe(nil)); end # Perform any changes to the string that need to happen # before it is rendered to the canvas. Returns an array of # subset "chunks", where the even-numbered indices are the # font subset number, and the following entry element is # either a string or an array (for kerned text). # # The +text+ parameter must be UTF8-encoded. # # source://prawn//lib/prawn/font/ttf.rb#77 def encode_text(text, options = T.unsafe(nil)); end # source://prawn//lib/prawn/font/ttf.rb#141 def family_class; end # @return [Boolean] # # source://prawn//lib/prawn/font/ttf.rb#176 def glyph_present?(char); end # Returns true if the font has kerning data, false otherwise # # @return [Boolean] # # source://prawn//lib/prawn/font/ttf.rb#65 def has_kerning_data?; end # source://prawn//lib/prawn/font/ttf.rb#117 def italic_angle; end # source://prawn//lib/prawn/font/ttf.rb#164 def normalize_encoding(text); end # source://prawn//lib/prawn/font/ttf.rb#153 def pdf_flags; end # @return [Boolean] # # source://prawn//lib/prawn/font/ttf.rb#149 def script?; end # @return [Boolean] # # source://prawn//lib/prawn/font/ttf.rb#145 def serif?; end # not sure how to compute this for true-type fonts... # # source://prawn//lib/prawn/font/ttf.rb#113 def stemV; end # Returns the value of attribute subsets. # # source://prawn//lib/prawn/font/ttf.rb#18 def subsets; end # Returns the value of attribute ttf. # # source://prawn//lib/prawn/font/ttf.rb#18 def ttf; end # @return [Boolean] # # source://prawn//lib/prawn/font/ttf.rb#20 def unicode?; end # source://prawn//lib/prawn/font/ttf.rb#135 def x_height; end private # source://prawn//lib/prawn/font/ttf.rb#228 def character_width_by_code(code); end # source://prawn//lib/prawn/font/ttf.rb#219 def cid_to_gid_map; end # source://prawn//lib/prawn/font/ttf.rb#189 def cmap; end # source://prawn//lib/prawn/font/ttf.rb#253 def embed(reference, subset); end # source://prawn//lib/prawn/font/ttf.rb#224 def hmtx; end # +string+ must be UTF8-encoded. # # Returns an array. If an element is a numeric, it represents the # kern amount to inject at that position. Otherwise, the element # is an array of UTF-16 characters. # # source://prawn//lib/prawn/font/ttf.rb#198 def kern(string); end # source://prawn//lib/prawn/font/ttf.rb#215 def kern_pairs_table; end # source://prawn//lib/prawn/font/ttf.rb#346 def read_ttf_file; end # source://prawn//lib/prawn/font/ttf.rb#242 def register(subset); end # source://prawn//lib/prawn/font/ttf.rb#238 def scale_factor; end end # source://prawn//lib/prawn/font/ttf.rb#325 Prawn::Font::TTF::UNICODE_CMAP_TEMPLATE = T.let(T.unsafe(nil), String) # Cache used internally by Prawn::Document instances to calculate the width # of various strings for layout purposes. # # @private # # source://prawn//lib/prawn/font_metric_cache.rb#16 class Prawn::FontMetricCache # @return [FontMetricCache] a new instance of FontMetricCache # # source://prawn//lib/prawn/font_metric_cache.rb#20 def initialize(document); end # source://prawn//lib/prawn/font_metric_cache.rb#26 def width_of(string, options); end end # source://prawn//lib/prawn/font_metric_cache.rb#18 class Prawn::FontMetricCache::CacheEntry < ::Struct # Returns the value of attribute font # # @return [Object] the current value of font def font; end # Sets the attribute font # # @param value [Object] the value to set the attribute font to. # @return [Object] the newly set value def font=(_); end # Returns the value of attribute options # # @return [Object] the current value of options def options; end # Sets the attribute options # # @param value [Object] the value to set the attribute options to. # @return [Object] the newly set value def options=(_); end # Returns the value of attribute string # # @return [Object] the current value of string def string; end # Sets the attribute string # # @param value [Object] the value to set the attribute string to. # @return [Object] the newly set value def string=(_); end class << self def [](*_arg0); end def inspect; end def keyword_init?; end def members; end def new(*_arg0); end end end # Implements the drawing facilities for Prawn::Document. # Use this to draw the most beautiful imaginable things. # # This file lifts and modifies several of PDF::Writer's graphics functions # ruby-pdf.rubyforge.org # # source://prawn//lib/prawn/graphics/color.rb#10 module Prawn::Graphics include ::Prawn::Graphics::Color include ::Prawn::Graphics::Dash include ::Prawn::Graphics::CapStyle include ::Prawn::Graphics::JoinStyle include ::Prawn::Graphics::Transparency include ::Prawn::Graphics::Transformation include ::Prawn::Graphics::Patterns # Draws a circle of radius radius with the centre-point at point # as a complete subpath. The drawing point will be moved to the # centre-point upon completion of the drawing the circle. # # pdf.circle [100,100], 25 # # source://prawn//lib/prawn/graphics.rb#193 def circle(center, radius); end # Closes and strokes the current path. If a block is provided, yields to # the block before closing the path. See Graphics::Color for color details. # # source://prawn//lib/prawn/graphics.rb#285 def close_and_stroke; end # Closes the current path. # # source://prawn//lib/prawn/graphics.rb#386 def close_path; end # Draws a Bezier curve between two points, bounded by two additional # points # # pdf.curve [50,100], [100,100], :bounds => [[90,90],[75,75]] # # source://prawn//lib/prawn/graphics.rb#177 def curve(origin, dest, options = T.unsafe(nil)); end # Draws a Bezier curve from the current drawing position to the # specified point, bounded by two additional points. # # pdf.curve_to [100,100], :bounds => [[90,90],[75,75]] # # source://prawn//lib/prawn/graphics.rb#69 def curve_to(dest, options = T.unsafe(nil)); end # Draws an ellipse of +x+ radius r1 and +y+ radius r2 # with the centre-point at point as a complete subpath. The # drawing point will be moved to the centre-point upon completion of the # drawing the ellipse. # # # draws an ellipse with x-radius 25 and y-radius 50 # pdf.ellipse [100,100], 25, 50 # # source://prawn//lib/prawn/graphics.rb#205 def ellipse(point, r1, r2 = T.unsafe(nil)); end # Closes and fills the current path. See Graphics::Color for color details. # # If the option :fill_rule => :even_odd is specified, Prawn will use the # even-odd rule to fill the path. Otherwise, the nonzero winding number rule # will be used. See the PDF reference, "Graphics -> Path Construction and # Painting -> Clipping Path Operators" for details on the difference. # # source://prawn//lib/prawn/graphics.rb#365 def fill(options = T.unsafe(nil)); end # Closes, fills, and strokes the current path. If a block is provided, # yields to the block before closing the path. See Graphics::Color for # color details. # # If the option :fill_rule => :even_odd is specified, Prawn will use the # even-odd rule to fill the path. Otherwise, the nonzero winding number rule # will be used. See the PDF reference, "Graphics -> Path Construction and # Painting -> Clipping Path Operators" for details on the difference. # # source://prawn//lib/prawn/graphics.rb#379 def fill_and_stroke(options = T.unsafe(nil)); end def fill_and_stroke_circle(*args); end def fill_and_stroke_circle_at(*args); end def fill_and_stroke_curve(*args); end def fill_and_stroke_curve_to(*args); end def fill_and_stroke_ellipse(*args); end def fill_and_stroke_ellipse_at(*args); end def fill_and_stroke_horizontal_line(*args); end def fill_and_stroke_horizontal_rule(*args); end def fill_and_stroke_line(*args); end def fill_and_stroke_line_to(*args); end def fill_and_stroke_polygon(*args); end def fill_and_stroke_rectangle(*args); end def fill_and_stroke_rounded_polygon(*args); end def fill_and_stroke_rounded_rectangle(*args); end def fill_and_stroke_rounded_vertex(*args); end def fill_and_stroke_vertical_line(*args); end def fill_circle(*args); end def fill_circle_at(*args); end def fill_curve(*args); end def fill_curve_to(*args); end def fill_ellipse(*args); end def fill_ellipse_at(*args); end def fill_horizontal_line(*args); end def fill_horizontal_rule(*args); end def fill_line(*args); end def fill_line_to(*args); end def fill_polygon(*args); end def fill_rectangle(*args); end def fill_rounded_polygon(*args); end def fill_rounded_rectangle(*args); end def fill_rounded_vertex(*args); end def fill_vertical_line(*args); end # Draws a horizontal line from x1 to x2 at the # current y position, or the position specified by the :at option. # # # draw a line from [25, 75] to [100, 75] # horizontal_line 25, 100, :at => 75 # # source://prawn//lib/prawn/graphics.rb#146 def horizontal_line(x1, x2, options = T.unsafe(nil)); end # Draws a horizontal line from the left border to the right border of the # bounding box at the current y position. # # source://prawn//lib/prawn/graphics.rb#159 def horizontal_rule; end # Draws a line from one point to another. Points may be specified as # tuples or flattened argument list: # # pdf.line [100,100], [200,250] # pdf.line(100,100,200,250) # # source://prawn//lib/prawn/graphics.rb#134 def line(*points); end # Draws a line from the current drawing position to the specified point. # The destination may be described as a tuple or a flattened list: # # pdf.line_to [50,50] # pdf.line_to(50,50) # # source://prawn//lib/prawn/graphics.rb#59 def line_to(*point); end # When called without an argument, returns the current line thickness. # When called with an argument, sets the line thickness to the specified # value (in PDF points) # # pdf.line_width #=> 1 # pdf.line_width(5) # pdf.line_width #=> 5 # # source://prawn//lib/prawn/graphics.rb#120 def line_width(width = T.unsafe(nil)); end # Sets line thickness to the width specified. # # source://prawn//lib/prawn/graphics.rb#107 def line_width=(width); end # Moves the drawing position to a given point. The point can be # specified as a tuple or a flattened argument list # # pdf.move_to [100,50] # pdf.move_to(100,50) # # source://prawn//lib/prawn/graphics.rb#48 def move_to(*point); end # Draws a polygon from the specified points. # # # draws a snazzy triangle # pdf.polygon [100,100], [100,200], [200,200] # # source://prawn//lib/prawn/graphics.rb#236 def polygon(*points); end # Draws a rectangle given point, width and # height. The rectangle is bounded by its upper-left corner. # # pdf.rectangle [300,300], 100, 200 # # source://prawn//lib/prawn/graphics.rb#84 def rectangle(point, width, height); end # Draws a rounded polygon from specified points using the radius to define bezier curves # # # draws a rounded filled in polygon # pdf.fill_and_stroke_rounded_polygon(10, [100, 250], [200, 300], [300, 250], # [300, 150], [200, 100], [100, 150]) # # source://prawn//lib/prawn/graphics.rb#250 def rounded_polygon(radius, *points); end # Draws a rounded rectangle given point, width and # height and radius for the rounded corner. The rectangle # is bounded by its upper-left corner. # # pdf.rounded_rectangle [300,300], 100, 200, 10 # # source://prawn//lib/prawn/graphics.rb#95 def rounded_rectangle(point, width, height, radius); end # Creates a rounded vertex for a line segment used for building a rounded polygon # requires a radius to define bezier curve and three points. The first two points define # the line segment and the third point helps define the curve for the vertex. # # source://prawn//lib/prawn/graphics.rb#265 def rounded_vertex(radius, *points); end # Strokes the current path. If a block is provided, yields to the block # before closing the path. See Graphics::Color for color details. # # source://prawn//lib/prawn/graphics.rb#277 def stroke; end # Draws and strokes X and Y axes rulers beginning at the current bounding # box origin (or at a custom location). # # == Options # # +:at+:: # Origin of the X and Y axes (default: [0, 0] = origin of the bounding # box) # # +:width+:: # Length of the X axis (default: width of the bounding box) # # +:height+:: # Length of the Y axis (default: height of the bounding box) # # +:step_length+:: # Length of the step between markers (default: 100) # # +:negative_axes_length+:: # Length of the negative parts of the axes (default: 20) # # +:color+: # The color of the axes and the text. # # source://prawn//lib/prawn/graphics.rb#320 def stroke_axis(options = T.unsafe(nil)); end # Draws and strokes a rectangle represented by the current bounding box # # source://prawn//lib/prawn/graphics.rb#292 def stroke_bounds; end def stroke_circle(*args); end def stroke_circle_at(*args); end def stroke_curve(*args); end def stroke_curve_to(*args); end def stroke_ellipse(*args); end def stroke_ellipse_at(*args); end def stroke_horizontal_line(*args); end def stroke_horizontal_rule(*args); end def stroke_line(*args); end def stroke_line_to(*args); end def stroke_polygon(*args); end def stroke_rectangle(*args); end def stroke_rounded_polygon(*args); end def stroke_rounded_rectangle(*args); end def stroke_rounded_vertex(*args); end def stroke_vertical_line(*args); end # Draws a vertical line at the x cooordinate given by :at from y1 to y2. # # # draw a line from [25, 100] to [25, 300] # vertical_line 100, 300, :at => 25 # # source://prawn//lib/prawn/graphics.rb#168 def vertical_line(y1, y2, params); end private # source://prawn//lib/prawn/graphics.rb#606 def current_line_width; end # source://prawn//lib/prawn/graphics.rb#610 def current_line_width=(width); end # source://prawn//lib/prawn/graphics.rb#627 def degree_to_rad(angle); end # source://prawn//lib/prawn/graphics.rb#618 def map_to_absolute(*point); end # source://prawn//lib/prawn/graphics.rb#623 def map_to_absolute!(point); end # Returns the coordinates for a point on a line that is a given distance away from the second # point defining the line segement # # source://prawn//lib/prawn/graphics.rb#633 def point_on_line(distance_from_end, *points); end # source://prawn//lib/prawn/graphics.rb#614 def write_line_width; end end # source://prawn//lib/prawn/graphics/cap_style.rb#11 module Prawn::Graphics::CapStyle # Sets the cap style for stroked lines and curves # # style is one of :butt, :round, or :projecting_square # # NOTE: If this method is never called, :butt will be used by default. # # source://prawn//lib/prawn/graphics/cap_style.rb#22 def cap_style(style = T.unsafe(nil)); end # Sets the cap style for stroked lines and curves # # style is one of :butt, :round, or :projecting_square # # NOTE: If this method is never called, :butt will be used by default. # # source://prawn//lib/prawn/graphics/cap_style.rb#22 def cap_style=(style = T.unsafe(nil)); end private # source://prawn//lib/prawn/graphics/cap_style.rb#34 def current_cap_style; end # source://prawn//lib/prawn/graphics/cap_style.rb#38 def current_cap_style=(style); end # source://prawn//lib/prawn/graphics/cap_style.rb#42 def write_stroke_cap_style; end end # source://prawn//lib/prawn/graphics/cap_style.rb#14 Prawn::Graphics::CapStyle::CAP_STYLES = T.let(T.unsafe(nil), Hash) # source://prawn//lib/prawn/graphics/color.rb#11 module Prawn::Graphics::Color # Sets or returns the fill color. # # When called with no argument, it returns the current fill color. # # If a single argument is provided, it should be a 6 digit HTML color # code. # # pdf.fill_color "f0ffc1" # # If 4 arguments are provided, the color is assumed to be a CMYK value # Values range from 0 - 100. # # pdf.fill_color 0, 99, 95, 0 # # source://prawn//lib/prawn/graphics/color.rb#28 def fill_color(*color); end # Sets or returns the fill color. # # When called with no argument, it returns the current fill color. # # If a single argument is provided, it should be a 6 digit HTML color # code. # # pdf.fill_color "f0ffc1" # # If 4 arguments are provided, the color is assumed to be a CMYK value # Values range from 0 - 100. # # pdf.fill_color 0, 99, 95, 0 # # source://prawn//lib/prawn/graphics/color.rb#28 def fill_color=(*color); end # Sets or returns the line stroking color. # # When called with no argument, it returns the current stroking color. # # If a single argument is provided, it should be a 6 digit HTML color # code. # # pdf.stroke_color "f0ffc1" # # If 4 arguments are provided, the color is assumed to be a CMYK value # Values range from 0 - 100. # # pdf.stroke_color 0, 99, 95, 0 # # source://prawn//lib/prawn/graphics/color.rb#50 def stroke_color(*color); end # Sets or returns the line stroking color. # # When called with no argument, it returns the current stroking color. # # If a single argument is provided, it should be a 6 digit HTML color # code. # # pdf.stroke_color "f0ffc1" # # If 4 arguments are provided, the color is assumed to be a CMYK value # Values range from 0 - 100. # # pdf.stroke_color 0, 99, 95, 0 # # source://prawn//lib/prawn/graphics/color.rb#50 def stroke_color=(*color); end private # source://prawn//lib/prawn/graphics/color.rb#125 def color_space(color); end # source://prawn//lib/prawn/graphics/color.rb#121 def color_to_s(color); end # source://prawn//lib/prawn/graphics/color.rb#94 def color_type(color); end # source://prawn//lib/prawn/graphics/color.rb#192 def current_color_space(type); end # source://prawn//lib/prawn/graphics/color.rb#201 def current_fill_color; end # source://prawn//lib/prawn/graphics/color.rb#205 def current_fill_color=(color); end # source://prawn//lib/prawn/graphics/color.rb#209 def current_stroke_color; end # source://prawn//lib/prawn/graphics/color.rb#213 def current_stroke_color=(color); end # Converts hex string into RGB value array: # # >> Prawn::Graphics::Color.hex2rgb("ff7808") # => [255, 120, 8] # # source://prawn//lib/prawn/graphics/color.rb#76 def hex2rgb(hex); end # source://prawn//lib/prawn/graphics/color.rb#110 def normalize_color(color); end # source://prawn//lib/prawn/graphics/color.rb#83 def process_color(*color); end # Converts RGB value array to hex string suitable for use with fill_color # and stroke_color # # >> Prawn::Graphics::Color.rgb2hex([255,120,8]) # => "ff7808" # # source://prawn//lib/prawn/graphics/color.rb#67 def rgb2hex(rgb); end # source://prawn//lib/prawn/graphics/color.rb#157 def set_color(type, color, options = T.unsafe(nil)); end # source://prawn//lib/prawn/graphics/color.rb#136 def set_color_space(type, color_space); end # source://prawn//lib/prawn/graphics/color.rb#196 def set_current_color_space(color_space, type); end # source://prawn//lib/prawn/graphics/color.rb#177 def set_fill_color(color = T.unsafe(nil)); end # source://prawn//lib/prawn/graphics/color.rb#181 def set_stroke_color(color = T.unsafe(nil)); end # source://prawn//lib/prawn/graphics/color.rb#185 def update_colors; end # source://prawn//lib/prawn/graphics/color.rb#225 def write_color(color, operator); end # source://prawn//lib/prawn/graphics/color.rb#217 def write_fill_color; end # source://prawn//lib/prawn/graphics/color.rb#221 def write_stroke_color; end class << self # Converts hex string into RGB value array: # # >> Prawn::Graphics::Color.hex2rgb("ff7808") # => [255, 120, 8] # # source://prawn//lib/prawn/graphics/color.rb#76 def hex2rgb(hex); end # Converts RGB value array to hex string suitable for use with fill_color # and stroke_color # # >> Prawn::Graphics::Color.rgb2hex([255,120,8]) # => "ff7808" # # source://prawn//lib/prawn/graphics/color.rb#67 def rgb2hex(rgb); end end end # source://prawn//lib/prawn/graphics/color.rb#134 Prawn::Graphics::Color::COLOR_SPACES = T.let(T.unsafe(nil), Array) # source://prawn//lib/prawn/graphics/dash.rb#11 module Prawn::Graphics::Dash # Sets the dash pattern for stroked lines and curves or return the # current dash pattern setting if +length+ is nil. # # There are two ways to set the dash pattern: # # * If the parameter +length+ is an Integer/Float, it specifies # the length of the dash and of the gap. The length of the gap # can be customized by setting the :space option. # # Examples: # # length = 3 # 3 on, 3 off, 3 on, 3 off, ... # length = 3, :space =2 # 3 on, 2 off, 3 on, 2 off, ... # # * If the parameter +length+ is an array, it specifies the # lengths of alternating dashes and gaps. The :space option is # ignored in this case. # # Examples: # # length = [2, 1] # 2 on, 1 off, 2 on, 1 off, ... # length = [3, 1, 2, 3] # 3 on, 1 off, 2 on, 3 off, 3 on, 1 off, ... # # Options may contain the keys :space and :phase # # :space:: The space between the dashes (only used when +length+ # is not an array) # # :phase:: The distance into the dash pattern at which to start # the dash. For example, a phase of 0 starts at the # beginning of the dash; whereas, if the phase is equal # to the length of the dash, then stroking will begin at # the beginning of the space. Default is 0. # # Integers or Floats may be used for length and the option values. # Dash units are in PDF points (1/72 inch). # # source://prawn//lib/prawn/graphics/dash.rb#55 def dash(length = T.unsafe(nil), options = T.unsafe(nil)); end # Sets the dash pattern for stroked lines and curves or return the # current dash pattern setting if +length+ is nil. # # There are two ways to set the dash pattern: # # * If the parameter +length+ is an Integer/Float, it specifies # the length of the dash and of the gap. The length of the gap # can be customized by setting the :space option. # # Examples: # # length = 3 # 3 on, 3 off, 3 on, 3 off, ... # length = 3, :space =2 # 3 on, 2 off, 3 on, 2 off, ... # # * If the parameter +length+ is an array, it specifies the # lengths of alternating dashes and gaps. The :space option is # ignored in this case. # # Examples: # # length = [2, 1] # 2 on, 1 off, 2 on, 1 off, ... # length = [3, 1, 2, 3] # 3 on, 1 off, 2 on, 3 off, 3 on, 1 off, ... # # Options may contain the keys :space and :phase # # :space:: The space between the dashes (only used when +length+ # is not an array) # # :phase:: The distance into the dash pattern at which to start # the dash. For example, a phase of 0 starts at the # beginning of the dash; whereas, if the phase is equal # to the length of the dash, then stroking will begin at # the beginning of the space. Default is 0. # # Integers or Floats may be used for length and the option values. # Dash units are in PDF points (1/72 inch). # # source://prawn//lib/prawn/graphics/dash.rb#55 def dash=(length = T.unsafe(nil), options = T.unsafe(nil)); end # Returns when stroke is dashed, false otherwise # # @return [Boolean] # # source://prawn//lib/prawn/graphics/dash.rb#76 def dashed?; end # Stops dashing, restoring solid stroked lines and curves # # source://prawn//lib/prawn/graphics/dash.rb#69 def undash; end private # source://prawn//lib/prawn/graphics/dash.rb#94 def current_dash_state; end # source://prawn//lib/prawn/graphics/dash.rb#90 def current_dash_state=(dash_options); end # source://prawn//lib/prawn/graphics/dash.rb#98 def dash_setting; end # source://prawn//lib/prawn/graphics/dash.rb#86 def undashed_setting; end # source://prawn//lib/prawn/graphics/dash.rb#82 def write_stroke_dash; end end # source://prawn//lib/prawn/graphics/join_style.rb#11 module Prawn::Graphics::JoinStyle # Sets the join style for stroked lines and curves # # style is one of :miter, :round, or :bevel # # NOTE: if this method is never called, :miter will be used for join style # throughout the document # # source://prawn//lib/prawn/graphics/join_style.rb#23 def join_style(style = T.unsafe(nil)); end # Sets the join style for stroked lines and curves # # style is one of :miter, :round, or :bevel # # NOTE: if this method is never called, :miter will be used for join style # throughout the document # # source://prawn//lib/prawn/graphics/join_style.rb#23 def join_style=(style = T.unsafe(nil)); end private # source://prawn//lib/prawn/graphics/join_style.rb#35 def current_join_style; end # source://prawn//lib/prawn/graphics/join_style.rb#39 def current_join_style=(style); end # source://prawn//lib/prawn/graphics/join_style.rb#44 def write_stroke_join_style; end end # source://prawn//lib/prawn/graphics/join_style.rb#12 Prawn::Graphics::JoinStyle::JOIN_STYLES = T.let(T.unsafe(nil), Hash) # This constant is used to approximate a symmetrical arc using a cubic # Bezier curve. # # source://prawn//lib/prawn/graphics.rb#185 Prawn::Graphics::KAPPA = T.let(T.unsafe(nil), Float) # source://prawn//lib/prawn/graphics/patterns.rb#12 module Prawn::Graphics::Patterns # Sets the fill gradient from color1 to color2. # old arguments: point, width, height, color1, color2, options = {} # new arguments: from, to, color1, color1 # or from, r1, to, r2, color1, color2 # # source://prawn//lib/prawn/graphics/patterns.rb#19 def fill_gradient(*args); end # Sets the stroke gradient from color1 to color2. # old arguments: point, width, height, color1, color2, options = {} # new arguments: from, to, color1, color2 # or from, r1, to, r2, color1, color2 # # source://prawn//lib/prawn/graphics/patterns.rb#27 def stroke_gradient(*args); end private # source://prawn//lib/prawn/graphics/patterns.rb#84 def gradient(*args); end # source://prawn//lib/prawn/graphics/patterns.rb#80 def gradient_registry; end # source://prawn//lib/prawn/graphics/patterns.rb#62 def gradient_registry_key(gradient); end # source://prawn//lib/prawn/graphics/patterns.rb#33 def set_gradient(type, *grad); end end # source://prawn//lib/prawn/graphics/transformation.rb#12 module Prawn::Graphics::Transformation # Rotate the user space. If a block is not provided, then you must save # and restore the graphics state yourself. # # == Options # :origin:: [number, number]. The point around which to # rotate. A block must be provided if using the :origin # # raises Prawn::Errors::BlockRequired if an :origin option is # provided, but no block is given # # Example without a block: # # save_graphics_state # rotate 30 # text "rotated text" # restore_graphics_state # # Example with a block: rotating a rectangle around its upper-left corner # # x = 300 # y = 300 # width = 150 # height = 200 # angle = 30 # pdf.rotate(angle, :origin => [x, y]) do # pdf.stroke_rectangle([x, y], width, height) # end # # source://prawn//lib/prawn/graphics/transformation.rb#43 def rotate(angle, options = T.unsafe(nil), &block); end # Scale the user space. If a block is not provided, then you must save # and restore the graphics state yourself. # # == Options # :origin:: [number, number]. The point from which to # scale. A block must be provided if using the :origin # # raises Prawn::Errors::BlockRequired if an :origin option is # provided, but no block is given # # Example without a block: # # save_graphics_state # scale 1.5 # text "scaled text" # restore_graphics_state # # Example with a block: scale a rectangle from its upper-left corner # # x = 300 # y = 300 # width = 150 # height = 200 # factor = 1.5 # pdf.scale(angle, :origin => [x, y]) do # pdf.stroke_rectangle([x, y], width, height) # end # # source://prawn//lib/prawn/graphics/transformation.rb#115 def scale(factor, options = T.unsafe(nil), &block); end # Transform the user space (see notes for rotate regarding graphics state) # Generally, one would use the rotate, scale, translate, and skew # convenience methods instead of calling transformation_matrix directly # # source://prawn//lib/prawn/graphics/transformation.rb#145 def transformation_matrix(a, b, c, d, e, f); end # Translate the user space. If a block is not provided, then you must save # and restore the graphics state yourself. # # Example without a block: move the text up and over 10 # # save_graphics_state # translate(10, 10) # text "scaled text" # restore_graphics_state # # Example with a block: draw a rectangle with its upper-left corner at # x + 10, y + 10 # # x = 300 # y = 300 # width = 150 # height = 200 # pdf.translate(10, 10) do # pdf.stroke_rectangle([x, y], width, height) # end # # source://prawn//lib/prawn/graphics/transformation.rb#83 def translate(x, y, &block); end end # The Prawn::Transparency module is used to place transparent # content on the page. It has the capacity for separate # transparency values for stroked content and all other content. # # Example: # # both the fill and stroke will be at 50% opacity # pdf.transparent(0.5) do # pdf.text("hello world") # pdf.fill_and_stroke_circle([x, y], 25) # end # # # the fill will be at 50% opacity, but the stroke will # # be at 75% opacity # pdf.transparent(0.5, 0.75) do # pdf.text("hello world") # pdf.fill_and_stroke_circle([x, y], 25) # end # # source://prawn//lib/prawn/graphics/transparency.rb#31 module Prawn::Graphics::Transparency # Sets the opacity and stroke_opacity for all # the content within the block # If stroke_opacity is not provided, then it takes on # the same value as opacity # # Valid ranges for both paramters are 0.0 to 1.0 # # Example: # # both the fill and stroke will be at 50% opacity # pdf.transparent(0.5) do # pdf.text("hello world") # pdf.fill_and_stroke_circle([x, y], 25) # end # # # the fill will be at 50% opacity, but the stroke will # # be at 75% opacity # pdf.transparent(0.5, 0.75) do # pdf.text("hello world") # pdf.fill_and_stroke_circle([x, y], 25) # end # # source://prawn//lib/prawn/graphics/transparency.rb#56 def transparent(opacity, stroke_opacity = T.unsafe(nil), &block); end private # source://prawn//lib/prawn/graphics/transparency.rb#74 def next_opacity_dictionary_id; end # source://prawn//lib/prawn/graphics/transparency.rb#78 def opacity_dictionary_name(opacity, stroke_opacity); end # source://prawn//lib/prawn/graphics/transparency.rb#70 def opacity_dictionary_registry; end end # source://prawn//lib/prawn/image_handler.rb#16 class Prawn::ImageHandler # @return [ImageHandler] a new instance of ImageHandler # # source://prawn//lib/prawn/image_handler.rb#17 def initialize; end # @raise [Prawn::Errors::UnsupportedImageType] # # source://prawn//lib/prawn/image_handler.rb#35 def find(image_blob); end # source://prawn//lib/prawn/image_handler.rb#21 def register(handler); end # source://prawn//lib/prawn/image_handler.rb#26 def register!(handler); end # source://prawn//lib/prawn/image_handler.rb#31 def unregister(handler); end end # source://prawn//lib/prawn/images.rb#13 module Prawn::Images # Builds an info object (Prawn::Images::*) and a PDF reference representing # the given image. Return a pair: [pdf_obj, info]. # # @private # # source://prawn//lib/prawn/images.rb#78 def build_image_object(file); end # Given a PDF image resource pdf_obj that has been added to the # page's resources and an info object (the pair returned from # build_image_object), embed the image according to the options # given. # # @private # # source://prawn//lib/prawn/images.rb#108 def embed_image(pdf_obj, info, options); end # Add the image at filename to the current page. Currently only # JPG and PNG files are supported. (Note that processing PNG # images with alpha channels can be processor and memory intensive.) # # Arguments: # file:: path to file or an object that responds to #read and #rewind # # Options: # :at:: an array [x,y] with the location of the top left corner of the image. # :position:: One of (:left, :center, :right) or an x-offset # :vposition:: One of (:top, :center, :center) or an y-offset # :height:: the height of the image [actual height of the image] # :width:: the width of the image [actual width of the image] # :scale:: scale the dimensions of the image proportionally # :fit:: scale the dimensions of the image proportionally to fit inside [width,height] # # Prawn::Document.generate("image2.pdf", :page_layout => :landscape) do # pigs = "#{Prawn::DATADIR}/images/pigs.jpg" # image pigs, :at => [50,450], :width => 450 # # dice = "#{Prawn::DATADIR}/images/dice.png" # image dice, :at => [50, 450], :scale => 0.75 # end # # If only one of :width / :height are provided, the image will be scaled # proportionally. When both are provided, the image will be stretched to # fit the dimensions without maintaining the aspect ratio. # # # If :at is provided, the image will be place in the current page but # the text position will not be changed. # # # If instead of an explicit filename, an object with a read method is # passed as +file+, you can embed images from IO objects and things # that act like them (including Tempfiles and open-uri objects). # # require "open-uri" # # Prawn::Document.generate("remote_images.pdf") do # image open("http://prawn.majesticseacreature.com/media/prawn_logo.png") # end # # This method returns an image info object which can be used to check the # dimensions of an image object if needed. # (See also: Prawn::Images::PNG , Prawn::Images::JPG) # # source://prawn//lib/prawn/images.rb#63 def image(file, options = T.unsafe(nil)); end private # source://prawn//lib/prawn/images.rb#180 def determine_y_with_page_flow(h); end # source://prawn//lib/prawn/images.rb#150 def image_position(w, h, options); end # source://prawn//lib/prawn/images.rb#191 def image_registry; end # source://prawn//lib/prawn/images.rb#195 def next_image_id; end # @return [Boolean] # # source://prawn//lib/prawn/images.rb#187 def overruns_page?(h); end # @raise [ArgumentError] # # source://prawn//lib/prawn/images.rb#131 def verify_and_open_image(io_or_path); end end # source://prawn//lib/prawn/images/image.rb#12 class Prawn::Images::Image # source://prawn//lib/prawn/images/image.rb#15 def calc_image_dimensions(options); end end # A convenience class that wraps the logic for extracting the parts # of a JPG image that we need to embed them in a PDF # # source://prawn//lib/prawn/images/jpg.rb#18 class Prawn::Images::JPG < ::Prawn::Images::Image # Process a new JPG image # # :data:: A binary string of JPEG data # # @return [JPG] a new instance of JPG # # source://prawn//lib/prawn/images/jpg.rb#33 def initialize(data); end # Returns the value of attribute bits. # # source://prawn//lib/prawn/images/jpg.rb#20 def bits; end # Build a PDF object representing this image in +document+, and return # a Reference to it. # # source://prawn//lib/prawn/images/jpg.rb#56 def build_pdf_object(document); end # Returns the value of attribute channels. # # source://prawn//lib/prawn/images/jpg.rb#20 def channels; end # Returns the value of attribute height. # # source://prawn//lib/prawn/images/jpg.rb#20 def height; end # Returns the value of attribute scaled_height. # # source://prawn//lib/prawn/images/jpg.rb#21 def scaled_height; end # Sets the attribute scaled_height # # @param value the value to set the attribute scaled_height to. # # source://prawn//lib/prawn/images/jpg.rb#21 def scaled_height=(_arg0); end # Returns the value of attribute scaled_width. # # source://prawn//lib/prawn/images/jpg.rb#21 def scaled_width; end # Sets the attribute scaled_width # # @param value the value to set the attribute scaled_width to. # # source://prawn//lib/prawn/images/jpg.rb#21 def scaled_width=(_arg0); end # Returns the value of attribute width. # # source://prawn//lib/prawn/images/jpg.rb#20 def width; end class << self # @return [Boolean] # # source://prawn//lib/prawn/images/jpg.rb#25 def can_render?(image_blob); end end end # source://prawn//lib/prawn/images/jpg.rb#23 Prawn::Images::JPG::JPEG_SOF_BLOCKS = T.let(T.unsafe(nil), Array) # A convenience class that wraps the logic for extracting the parts # of a PNG image that we need to embed them in a PDF # # source://prawn//lib/prawn/images/png.rb#20 class Prawn::Images::PNG < ::Prawn::Images::Image # Process a new PNG image # # data:: A binary string of PNG data # # @return [PNG] a new instance of PNG # # source://prawn//lib/prawn/images/png.rb#36 def initialize(data); end # Returns the value of attribute alpha_channel. # # source://prawn//lib/prawn/images/png.rb#25 def alpha_channel; end # @return [Boolean] # # source://prawn//lib/prawn/images/png.rb#119 def alpha_channel?; end # Returns the value of attribute bits. # # source://prawn//lib/prawn/images/png.rb#23 def bits; end # Build a PDF object representing this image in +document+, and return # a Reference to it. # # source://prawn//lib/prawn/images/png.rb#126 def build_pdf_object(document); end # Returns the value of attribute color_type. # # source://prawn//lib/prawn/images/png.rb#24 def color_type; end # number of color components to each pixel # # source://prawn//lib/prawn/images/png.rb#103 def colors; end # Returns the value of attribute compression_method. # # source://prawn//lib/prawn/images/png.rb#24 def compression_method; end # Returns the value of attribute filter_method. # # source://prawn//lib/prawn/images/png.rb#24 def filter_method; end # Returns the value of attribute height. # # source://prawn//lib/prawn/images/png.rb#23 def height; end # Returns the value of attribute img_data. # # source://prawn//lib/prawn/images/png.rb#22 def img_data; end # Returns the value of attribute interlace_method. # # source://prawn//lib/prawn/images/png.rb#25 def interlace_method; end # Returns the minimum PDF version required to support this image. # # source://prawn//lib/prawn/images/png.rb#248 def min_pdf_version; end # Returns the value of attribute palette. # # source://prawn//lib/prawn/images/png.rb#22 def palette; end # Returns the value of attribute scaled_height. # # source://prawn//lib/prawn/images/png.rb#26 def scaled_height; end # Sets the attribute scaled_height # # @param value the value to set the attribute scaled_height to. # # source://prawn//lib/prawn/images/png.rb#26 def scaled_height=(_arg0); end # Returns the value of attribute scaled_width. # # source://prawn//lib/prawn/images/png.rb#26 def scaled_width; end # Sets the attribute scaled_width # # @param value the value to set the attribute scaled_width to. # # source://prawn//lib/prawn/images/png.rb#26 def scaled_width=(_arg0); end # split the alpha channel data from the raw image data in images # where it's required. # # source://prawn//lib/prawn/images/png.rb#115 def split_alpha_channel!; end # Returns the value of attribute transparency. # # source://prawn//lib/prawn/images/png.rb#22 def transparency; end # Returns the value of attribute width. # # source://prawn//lib/prawn/images/png.rb#23 def width; end private # source://prawn//lib/prawn/images/png.rb#262 def split_image_data; end class << self # @return [Boolean] # # source://prawn//lib/prawn/images/png.rb#28 def can_render?(image_blob); end end end # source://prawn//lib/prawn/measurements.rb#9 module Prawn::Measurements # ============================================================================ # metric conversions # # source://prawn//lib/prawn/measurements.rb#13 def cm2mm(cm); end # source://prawn//lib/prawn/measurements.rb#61 def cm2pt(cm); end # source://prawn//lib/prawn/measurements.rb#17 def dm2mm(dm); end # source://prawn//lib/prawn/measurements.rb#65 def dm2pt(dm); end # ============================================================================ # imperial conversions # from http://en.wikipedia.org/wiki/Imperial_units # # source://prawn//lib/prawn/measurements.rb#29 def ft2in(ft); end # source://prawn//lib/prawn/measurements.rb#49 def ft2pt(ft); end # source://prawn//lib/prawn/measurements.rb#45 def in2pt(inch); end # source://prawn//lib/prawn/measurements.rb#21 def m2mm(m); end # source://prawn//lib/prawn/measurements.rb#69 def m2pt(m); end # source://prawn//lib/prawn/measurements.rb#57 def mm2pt(mm); end # source://prawn//lib/prawn/measurements.rb#73 def pt2mm(pt); end # ============================================================================ # PostscriptPoint-converisons # # source://prawn//lib/prawn/measurements.rb#41 def pt2pt(pt); end # source://prawn//lib/prawn/measurements.rb#33 def yd2in(yd); end # source://prawn//lib/prawn/measurements.rb#53 def yd2pt(yd); end end # The Outline class organizes the outline tree items for the document. # Note that the prev and parent instance variables are adjusted while navigating # through the nested blocks. These variables along with the presence or absense # of blocks are the primary means by which the relations for the various # OutlineItems and the OutlineRoot are set. Unfortunately, the best way to # understand how this works is to follow the method calls through a real example. # # Some ideas for the organization of this class were gleaned from name_tree. In # particular the way in which the OutlineItems are finally rendered into document # objects in PdfObject through a hash. # # source://prawn//lib/prawn/outline.rb#25 class Prawn::Outline # @return [Outline] a new instance of Outline # # source://prawn//lib/prawn/outline.rb#29 def initialize(document); end # Inserts an outline section to the outline tree (see outline#define). # Although you will probably choose to exclusively use outline#define so # that your outline tree is contained and easy to manage, this method # gives you the option to insert sections to the outline tree at any point # during document generation. This method allows you to add a child subsection # to any other item at any level in the outline tree. # Currently the only way to locate the place of entry is with the title for the # item. If your title names are not unique consider using define_outline. # The method takes the following arguments: # title: a string that must match an outline title to add the subsection to # position: either :first or :last(the default) where the subsection will be placed relative # to other child elements. If you need to position your subsection in between # other elements then consider using #insert_section_after # block: uses the same DSL syntax as outline#define, for example: # # Consider using this method inside of outline.update if you want to have the outline object # to be scoped as self (see #insert_section_after example). # # go_to_page 2 # start_new_page # text "Inserted Page" # outline.add_subsection_to :title => 'Page 2', :first do # outline.page :destination => page_number, :title => "Inserted Page" # end # # @raise [Prawn::Errors::UnknownOutlineTitle] # # source://prawn//lib/prawn/outline.rb#102 def add_subsection_to(title, position = T.unsafe(nil), &block); end # Defines/Updates an outline for the document. # The outline is an optional nested index that appears on the side of a PDF # document usually with direct links to pages. The outline DSL is defined by nested # blocks involving two methods: section and page; see the documentation on those methods # for their arguments and options. Note that one can also use outline#update # to add more sections to the end of the outline tree using the same syntax and scope. # # The syntax is best illustrated with an example: # # Prawn::Document.generate(outlined_document.pdf) do # text "Page 1. This is the first Chapter. " # start_new_page # text "Page 2. More in the first Chapter. " # start_new_page # outline.define do # section 'Chapter 1', :destination => 1, :closed => true do # page :destination => 1, :title => 'Page 1' # page :destination => 2, :title => 'Page 2' # end # end # start_new_page do # outline.update do # section 'Chapter 2', :destination => 2, do # page :destination => 3, :title => 'Page 3' # end # end # end # # source://prawn//lib/prawn/outline.rb#71 def define(&block); end # @private # # source://prawn//lib/prawn/outline.rb#27 def document; end # @private # # source://prawn//lib/prawn/outline.rb#27 def document=(_arg0); end # Inserts an outline section to the outline tree (see outline#define). # Although you will probably choose to exclusively use outline#define so # that your outline tree is contained and easy to manage, this method # gives you the option to insert sections to the outline tree at any point # during document generation. Unlike outline.add_section, this method allows # you to enter a section after any other item at any level in the outline tree. # Currently the only way to locate the place of entry is with the title for the # item. If your title names are not unique consider using define_outline. # The method takes the following arguments: # title: the title of other section or page to insert new section after # block: uses the same DSL syntax as outline#define, for example: # # go_to_page 2 # start_new_page # text "Inserted Page" # update_outline do # insert_section_after :title => 'Page 2' do # page :destination => page_number, :title => "Inserted Page" # end # end # # @raise [Prawn::Errors::UnknownOutlineTitle] # # source://prawn//lib/prawn/outline.rb#132 def insert_section_after(title, &block); end # @private # # source://prawn//lib/prawn/outline.rb#27 def items; end # @private # # source://prawn//lib/prawn/outline.rb#27 def items=(_arg0); end # See Outline#define above for more documentation on how it is used in that context # # Adds a page to the outline. # Although you will probably choose to exclusively use outline#define so # that your outline tree is contained and easy to manage, this method also # gives you the option to add pages to the root of outline tree at any point # during document generation. Note that the page will be added at the # top level after the other root outline elements. For more flexible placement try # using outline#insert_section_after and/or outline#add_subsection_to. # # Takes the following arguments: # options: # title - REQUIRED. The outline text that appears for the page. # destination - optional integer defining the page number for a destination link # to the top of the page (using a :FIT destination). # - or an array with a custom destination (see the #dest_* methods of the # PDF::Destination module) # closed - whether the section should show its nested outline elements. # - defaults to false. # example usage: # # outline.page :title => "Very Last Page" # Note: this method is almost identical to section except that it does not accept a block # thereby defining the outline item as a leaf on the outline tree structure. # # source://prawn//lib/prawn/outline.rb#194 def page(options = T.unsafe(nil)); end # Returns the current page number of the document # # source://prawn//lib/prawn/outline.rb#39 def page_number; end # @private # # source://prawn//lib/prawn/outline.rb#27 def parent; end # @private # # source://prawn//lib/prawn/outline.rb#27 def parent=(_arg0); end # @private # # source://prawn//lib/prawn/outline.rb#27 def prev; end # @private # # source://prawn//lib/prawn/outline.rb#27 def prev=(_arg0); end # See outline#define above for documentation on how this is used in that context # # Adds an outine section to the outline tree. # Although you will probably choose to exclusively use outline#define so # that your outline tree is contained and easy to manage, this method # gives you the option to add sections to the outline tree at any point # during document generation. When not being called from within another #section block # the section will be added at the top level after the other root elements of the outline. # For more flexible placement try using outline#insert_section_after and/or # outline#add_subsection_to # Takes the following arguments: # title: the outline text that appears for the section. # options: destination - optional integer defining the page number for a destination link # to the top of the page (using a :FIT destination). # - or an array with a custom destination (see the #dest_* methods of the # PDF::Destination module) # closed - whether the section should show its nested outline elements. # - defaults to false. # block: more nested subsections and/or page blocks # # example usage: # # outline.section 'Added Section', :destination => 3 do # outline.page :destionation => 3, :title => 'Page 3' # end # # source://prawn//lib/prawn/outline.rb#166 def section(title, options = T.unsafe(nil), &block); end # Defines/Updates an outline for the document. # The outline is an optional nested index that appears on the side of a PDF # document usually with direct links to pages. The outline DSL is defined by nested # blocks involving two methods: section and page; see the documentation on those methods # for their arguments and options. Note that one can also use outline#update # to add more sections to the end of the outline tree using the same syntax and scope. # # The syntax is best illustrated with an example: # # Prawn::Document.generate(outlined_document.pdf) do # text "Page 1. This is the first Chapter. " # start_new_page # text "Page 2. More in the first Chapter. " # start_new_page # outline.define do # section 'Chapter 1', :destination => 1, :closed => true do # page :destination => 1, :title => 'Page 1' # page :destination => 2, :title => 'Page 2' # end # end # start_new_page do # outline.update do # section 'Chapter 2', :destination => 2, do # page :destination => 3, :title => 'Page 3' # end # end # end # # source://prawn//lib/prawn/outline.rb#71 def update(&block); end private # source://prawn//lib/prawn/outline.rb#213 def add_outline_item(title, options, &block); end # source://prawn//lib/prawn/outline.rb#276 def adjust_relations(nxt, last); end # source://prawn//lib/prawn/outline.rb#222 def create_outline_item(title, options); end # source://prawn//lib/prawn/outline.rb#243 def increase_count; end # source://prawn//lib/prawn/outline.rb#267 def insert_section(nxt, &block); end # source://prawn//lib/prawn/outline.rb#260 def reset_parent(outline_item); end # source://prawn//lib/prawn/outline.rb#284 def reset_root_positioning; end # The Outline dictionary (12.3.3) for this document. It is # lazily initialized, so that documents that do not have an outline # do not incur the additional overhead. # # source://prawn//lib/prawn/outline.rb#209 def root; end # source://prawn//lib/prawn/outline.rb#237 def set_relations(outline_item); end # source://prawn//lib/prawn/outline.rb#255 def set_variables_for_block(outline_item, block); end end # source://prawn//lib/prawn/repeater.rb#83 class Prawn::Repeater # @return [Repeater] a new instance of Repeater # # source://prawn//lib/prawn/repeater.rb#94 def initialize(document, page_filter, dynamic = T.unsafe(nil), &block); end # @return [Boolean] # # source://prawn//lib/prawn/repeater.rb#106 def match?(page_number); end # Returns the value of attribute name. # # source://prawn//lib/prawn/repeater.rb#92 def name; end # source://prawn//lib/prawn/repeater.rb#110 def run(page_number); end class << self # source://prawn//lib/prawn/repeater.rb#87 def count; end # Sets the attribute count # # @param value the value to set the attribute count to. # # source://prawn//lib/prawn/repeater.rb#85 def count=(_arg0); end end end # The Prawn::SoftMask module is used to create arbitrary transparency in # document. Using a soft mask allows creating more visually rich documents. # # You must group soft mask and graphics it's applied to under # save_graphics_state because soft mask is a part of graphic state in PDF. # # Example: # pdf.save_graphics_state do # pdf.soft_mask do # pdf.fill_color "444444" # pdf.fill_polygon [0, 40], [60, 10], [120, 40], [60, 68] # end # pdf.fill_color '000000' # pdf.fill_rectangle [0, 50], 120, 68 # end # # source://prawn//lib/prawn/soft_mask.rb#28 module Prawn::SoftMask # source://prawn//lib/prawn/soft_mask.rb#31 def soft_mask(&block); end private # source://prawn//lib/prawn/soft_mask.rb#90 def soft_mask_registry; end end # The Prawn::Stamp module is used to create content that will be # included multiple times in a document. Using a stamp has three # advantages over creating content anew each time it is placed on # the page: # i. faster document creation # ii. smaller final document # iii. faster display on subsequent displays of the repeated # element because the viewer application can cache the rendered # results # # Example: # pdf.create_stamp("my_stamp") { # pdf.fill_circle([10, 15], 5) # pdf.draw_text("hello world", :at => [20, 10]) # } # pdf.stamp("my_stamp") # # source://prawn//lib/prawn/stamp.rb#29 module Prawn::Stamp # Creates a re-usable stamp named name # # raises Prawn::Errors::NameTaken if a stamp already # exists in this document with this name # raises Prawn::Errors::InvalidName if name.empty? # # Example: # pdf.create_stamp("my_stamp") { # pdf.fill_circle([10, 15], 5) # pdf.draw_text("hello world", :at => [20, 10]) # } # # source://prawn//lib/prawn/stamp.rb#80 def create_stamp(name, &block); end # Renders the stamp named name to the page # raises Prawn::Errors::InvalidName if name.empty? # raises Prawn::Errors::UndefinedObjectName if no stamp # has been created with this name # # Example: # pdf.create_stamp("my_stamp") { # pdf.fill_circle([10, 15], 5) # pdf.text("hello world", :at => [20, 10]) # } # pdf.stamp("my_stamp") # # source://prawn//lib/prawn/stamp.rb#45 def stamp(name); end # Renders the stamp named name at a position offset from # the initial coords at which the elements of the stamp was # created # # Example: # pdf.create_stamp("circle") do # pdf.fill_circle([0, 0], 25) # end # # draws a circle at 100, 100 # pdf.stamp_at("circle", [100, 100]) # # See stamp() for exceptions that might be raised # # source://prawn//lib/prawn/stamp.rb#64 def stamp_at(name, point); end private # @raise [Prawn::Errors::InvalidName] # # source://prawn//lib/prawn/stamp.rb#109 def create_stamp_dictionary(name); end # source://prawn//lib/prawn/stamp.rb#127 def freeze_stamp_graphics; end # source://prawn//lib/prawn/stamp.rb#92 def next_stamp_dictionary_id; end # @raise [Prawn::Errors::InvalidName] # # source://prawn//lib/prawn/stamp.rb#96 def stamp_dictionary(name); end # source://prawn//lib/prawn/stamp.rb#88 def stamp_dictionary_registry; end end # @private # # source://prawn//lib/prawn/utilities.rb#20 class Prawn::SynchronizedCache # As an optimization, this could access the hash directly on VMs with a global interpreter lock (like MRI) # # @return [SynchronizedCache] a new instance of SynchronizedCache # # source://prawn//lib/prawn/utilities.rb#22 def initialize; end # source://prawn//lib/prawn/utilities.rb#26 def [](key); end # source://prawn//lib/prawn/utilities.rb#29 def []=(key, value); end end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#12 module Prawn::Text include ::PDF::Core::Text include ::Prawn::Text::Formatted # Draws text on the page, beginning at the point specified by the :at option # the string is assumed to be pre-formatted to properly fit the page. # # pdf.draw_text "Hello World", :at => [100,100] # pdf.draw_text "Goodbye World", :at => [50,50], :size => 16 # # If your font contains kerning pair data that Prawn can parse, the # text will be kerned by default. You can disable kerning by including # a false :kerning option. If you want to disable kerning on an # entire document, set default_kerning = false for that document # # === Text Positioning Details: # # Prawn will position your text by the left-most edge of its baseline, and # flow along a single line. (This means that :align will not work) # # == Rotation # # Text can be rotated before it is placed on the canvas by specifying the # :rotate option with a given angle. Rotation occurs counter-clockwise. # # == Encoding # # Note that strings passed to this function should be encoded as UTF-8. # If you get unexpected characters appearing in your rendered document, # check this. # # If the current font is a built-in one, although the string must be # encoded as UTF-8, only characters that are available in WinAnsi # are allowed. # # If an empty box is rendered to your PDF instead of the character you # wanted it usually means the current font doesn't include that character. # # == Options (default values marked in []) # # :at:: [x, y](required). The position at which to start the text # :kerning:: boolean. Whether or not to use kerning (if it # is available with the current font) # [value of default_kerning?] # :size:: number. The font size to use. [current font # size] # :style:: The style to use. The requested style must be part of # the current font familly. [current style] # # :rotate:: number. The angle to which to rotate text # # == Exceptions # # Raises ArgumentError if :at option omitted # # Raises ArgumentError if :align option included # # source://prawn//lib/prawn/text.rb#279 def draw_text(text, options); end # Low level text placement method. All font and size alterations # should already be set # # source://prawn//lib/prawn/text.rb#294 def draw_text!(text, options); end # Draws formatted text to the page. # Formatted text is comprised of an array of hashes, where each hash defines # text and format information. See Text::Formatted#formatted_text_box for # more information on the structure of this array # # == Example # # text([{ :text => "hello" }, # { :text => "world", # :size => 24, # :styles => [:bold, :italic] }]) # # == Options # # Accepts the same options as #text # # == Exceptions # # Same as for #text # # source://prawn//lib/prawn/text.rb#191 def formatted_text(array, options = T.unsafe(nil)); end # Gets height of text in PDF points. # Same options as #text, except as noted. # Not compatible with :indent_paragraphs option # # ==Example # # height_of("hello\nworld") # # == Exceptions # # Raises NotImplementedError if :indent_paragraphs # option included # # Raises Prawn::Errrors::CannotFit if not wide enough to print # any text # # source://prawn//lib/prawn/text.rb#315 def height_of(string, options = T.unsafe(nil)); end # Gets height of formatted text in PDF points. # See documentation for #height_of. # # ==Example # # height_of_formatted([{ :text => "hello" }, # { :text => "world", # :size => 24, # :styles => [:bold, :italic] }]) # # source://prawn//lib/prawn/text.rb#329 def height_of_formatted(array, options = T.unsafe(nil)); end # If you want text to flow onto a new page or between columns, this is the # method to use. If, instead, if you want to place bounded text outside of # the flow of a document (for captions, labels, charts, etc.), use Text::Box # or its convenience method text_box. # # Draws text on the page. Prawn attempts to wrap the text to fit within your # current bounding box (or margin_box if no bounding box is being used). # Text will flow onto the next page when it reaches the bottom of the # bounding box. Text wrap in Prawn does not re-flow linebreaks, so if you # want fully automated text wrapping, be sure to remove newlines before # attempting to draw your string. # # == Examples # # pdf.text "Will be wrapped when it hits the edge of your bounding box" # pdf.text "This will be centered", :align => :center # pdf.text "This will be right aligned", :align => :right # pdf.text "This includes inline " + # "formatting", :inline_format => true # # If your font contains kerning pair data that Prawn can parse, the # text will be kerned by default. You can disable kerning by including # a false :kerning option. If you want to disable kerning on an # entire document, set default_kerning = false for that document # # === Text Positioning Details # # The text is positioned at font.ascender below the baseline, # making it easy to use this method within bounding boxes and spans. # # == Encoding # # Note that strings passed to this function should be encoded as UTF-8. # If you get unexpected characters appearing in your rendered document, # check this. # # If the current font is a built-in one, although the string must be # encoded as UTF-8, only characters that are available in WinAnsi # are allowed. # # If an empty box is rendered to your PDF instead of the character you # wanted it usually means the current font doesn't include that character. # # == Options (default values marked in []) # # :inline_format:: # boolean. If true, then the string parameter is interpreted # as a HTML-esque string that recognizes the following tags # (assuming the default text formatter is used): # \:: bold # \:: italic # \:: underline # \:: strikethrough # \:: subscript # \:: superscript # \:: # with the following attributes (using double or single quotes) # size="24":: # attribute for setting size # character_spacing="2.5":: # attribute for setting character spacing # name="Helvetica":: # attribute for setting the font. The font name must be an # AFM font with the desired faces or must be a font that is # already registered using Prawn::Document#font_families # \:: # with the following attributes # rgb="ffffff" or rgb="#ffffff":: # c="100" m="100" y="100" k="100":: # \:: # with the following attributes # href="http://example.com":: an external link # Note that you must explicitly underline and color using the # appropriate tags if you which to draw attention to the link # # :kerning:: boolean. Whether or not to use kerning (if it # is available with the current font) # [value of document.default_kerning?] # :size:: number. The font size to use. [current font # size] # :color:: an RGB color ("ff0000") or CMYK array [10, 20, 30, 40]. # :character_spacing:: number. The amount of space to add # to or remove from the default character # spacing. [0] # :style:: The style to use. The requested style must be part of # the current font familly. [current style] # :indent_paragraphs:: number. The amount to indent the # first line of each paragraph. Omit this # option if you do not want indenting # :direction:: # :ltr, :rtl, Direction of the text (left-to-right # or right-to-left) [value of document.text_direction] # :fallback_fonts:: # An array of font names. Each name must be the name of an AFM font or # the name that was used to register a family of TTF fonts (see # Prawn::Document#font_families). If present, then each glyph will be # rendered using the first font that includes the glyph, starting with # the current font and then moving through :fallback_fonts from # left to right. # :align:: # :left, :center, :right, or # :justify Alignment within the bounding box # [:left if direction is :ltr, :right if direction is :rtl] # :valign:: :top, :center, or :bottom. # Vertical alignment within the bounding box [:top] # :leading:: # number. Additional space between lines [value of # document.default_leading] # :final_gap:: boolean. If true, then the space between # each line is included below the last line; # otherwise, document.y is placed just below the # descender of the last line printed [true] # :mode:: The text rendering mode to use. Use this to specify if the # text should render with the fill color, stroke color or # both. See the comments to text_rendering_mode() to see # a list of valid options. [0] # # == Exceptions # # Raises ArgumentError if :at option included # # Raises Prawn::Errrors::CannotFit if not wide enough to print # any text # # source://prawn//lib/prawn/text.rb#155 def text(string, options = T.unsafe(nil)); end # Draws the requested text into a box. When the text overflows # the rectangle, you shrink to fit, or truncate the text. Text # boxes are independent of the document y position. # # == Encoding # # Note that strings passed to this function should be encoded as UTF-8. # If you get unexpected characters appearing in your rendered document, # check this. # # If the current font is a built-in one, although the string must be # encoded as UTF-8, only characters that are available in WinAnsi # are allowed. # # If an empty box is rendered to your PDF instead of the character you # wanted it usually means the current font doesn't include that character. # # == Options (default values marked in []) # # :kerning:: boolean. Whether or not to use kerning (if it # is available with the current font) # [value of document.default_kerning?] # :size:: number. The font size to use. [current font # size] # :character_spacing:: number. The amount of space to add # to or remove from the default character # spacing. [0] # :disable_wrap_by_char:: boolean Whether # or not to prevent mid-word breaks when text does not fit in box. [false] # :mode:: symbol. The text rendering mode. See # documentation for Prawn::Document#text_rendering_mode # for a list of valid options. [:fill] # :style:: The style to use. The requested style must be part of # the current font familly. [current style] # # :at:: # [x, y]. The upper left corner of the box # [@document.bounds.left, @document.bounds.top] # :width:: # number. The width of the box [@document.bounds.right - @at[0]] # :height:: # number. The height of the box [default_height()] # :direction:: # :ltr, :rtl, Direction of the text (left-to-right # or right-to-left) [value of document.text_direction] # :fallback_fonts:: # An array of font names. Each name must be the name of an AFM font or # the name that was used to register a family of TTF fonts (see # Prawn::Document#font_families). If present, then each glyph will be # rendered using the first font that includes the glyph, starting with # the current font and then moving through :fallback_fonts from # left to right. # :align:: # :left, :center, :right, or # :justify Alignment within the bounding box # [:left if direction is :ltr, :right if direction is :rtl] # :valign:: # :top, :center, or :bottom. Vertical # alignment within the bounding box [:top] # # :rotate:: # number. The angle to rotate the text # :rotate_around:: # :center, :upper_left, :upper_right, # :lower_right, or :lower_left. The point around which # to rotate the text [:upper_left] # :leading:: # number. Additional space between lines [value of # document.default_leading] # :single_line:: # boolean. If true, then only the first line will be drawn [false] # :skip_encoding:: # boolean [false] # :overflow:: # :truncate, :shrink_to_fit, or :expand # This controls the behavior when the amount of text # exceeds the available space. [:truncate] # :min_font_size:: # number. The minimum font size to use when :overflow is set to # :shrink_to_fit (that is the font size will not be reduced to less than # this value, even if it means that some text will be cut off). [5] # # == Returns # # Returns any text that did not print under the current settings. # # NOTE: if an AFM font is used, then the returned text is encoded in # WinAnsi. Subsequent calls to text_box that pass this returned text back # into text box must include a :skip_encoding => true option. This is # unnecessary when using TTF fonts because those operate on UTF-8 encoding. # # == Exceptions # # Raises Prawn::Errrors::CannotFit if not wide enough to print # any text # # source://prawn//lib/prawn/text/box.rb#112 def text_box(string, options = T.unsafe(nil)); end private # source://prawn//lib/prawn/text.rb#356 def draw_indented_formatted_line(string, options); end # source://prawn//lib/prawn/text.rb#347 def draw_remaining_formatted_text_on_new_pages(remaining_text, options); end # source://prawn//lib/prawn/text.rb#362 def fill_formatted_text_box(text, options); end # source://prawn//lib/prawn/text.rb#385 def inspect_options_for_draw_text(options); end # source://prawn//lib/prawn/text.rb#399 def inspect_options_for_text(options); end # source://prawn//lib/prawn/text.rb#375 def merge_text_box_positioning_options(options); end # source://prawn//lib/prawn/text.rb#420 def move_text_position(dy); end # source://prawn//lib/prawn/text.rb#410 def process_final_gap_option(options); end # source://prawn//lib/prawn/text.rb#415 def process_indent_paragraphs_option(options); end end # Generally, one would use the Prawn::Text#text_box convenience # method. However, using Text::Box.new in conjunction with # #render(:dry_run=> true) enables one to do look-ahead calculations prior # to placing text on the page, or to determine how much vertical space was # consumed by the printed text # # source://prawn//lib/prawn/text/box.rb#135 class Prawn::Text::Box < ::Prawn::Text::Formatted::Box # @return [Box] a new instance of Box # # source://prawn//lib/prawn/text/box.rb#137 def initialize(string, options = T.unsafe(nil)); end # source://prawn//lib/prawn/text/box.rb#141 def render(flags = T.unsafe(nil)); end end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#13 module Prawn::Text::Formatted # Draws the requested formatted text into a box. When the text overflows # the rectangle shrink to fit or truncate the text. Text boxes are # independent of the document y position. # # == Formatted Text Array # # Formatted text is comprised of an array of hashes, where each hash # defines text and format information. As of the time of writing, the # following hash options are supported: # # :text:: # the text to format according to the other hash options # :styles:: # an array of styles to apply to this text. Available styles include # :bold, :italic, :underline, :strikethrough, :subscript, and # :superscript # :size:: # a number denoting the font size to apply to this text # :character_spacing:: # a number denoting how much to increase or decrease the default # spacing between characters # :font:: # the name of a font. The name must be an AFM font with the desired # faces or must be a font that is already registered using # Prawn::Document#font_families # :color:: # anything compatible with Prawn::Graphics::Color#fill_color and # Prawn::Graphics::Color#stroke_color # :link:: # a URL to which to create a link. A clickable link will be created # to that URL. Note that you must explicitly underline and color using # the appropriate tags if you which to draw attention to the link # :anchor:: # a destination that has already been or will be registered using # PDF::Core::Destinations#add_dest. A clickable link will be # created to that destination. Note that you must explicitly underline # and color using the appropriate tags if you which to draw attention # to the link # :local:: # a file or application to be opened locally. A clickable link will be # created to the provided local file or application. If the file is # another PDF, it will be opened in a new window. Note that you must # explicitly underline and color using the appropriate tags if you which # to draw attention to the link # :draw_text_callback: # if provided, this Proc will be called instead of #draw_text! once # per fragment for every low-level addition of text to the page. # :callback:: # an object (or array of such objects) with two methods: # #render_behind and #render_in_front, which are called immediately # prior to and immediately after rendring the text fragment and which # are passed the fragment as an argument # # == Example # # formatted_text_box([{ :text => "hello" }, # { :text => "world", # :size => 24, # :styles => [:bold, :italic] }]) # # == Options # # Accepts the same options as Text::Box with the below exceptions # # == Returns # # Returns a formatted text array representing any text that did not print # under the current settings. # # == Exceptions # # Raises "Bad font family" if no font family is defined for the current font # # Raises Prawn::Errrors::CannotFit if not wide enough to print # any text # # source://prawn//lib/prawn/text/formatted/box.rb#91 def formatted_text_box(array, options = T.unsafe(nil)); end end # @private # # source://prawn//lib/prawn/text/formatted/arranger.rb#16 class Prawn::Text::Formatted::Arranger # @return [Arranger] a new instance of Arranger # # source://prawn//lib/prawn/text/formatted/arranger.rb#27 def initialize(document, options = T.unsafe(nil)); end # source://prawn//lib/prawn/text/formatted/arranger.rb#124 def apply_color_and_font_settings(fragment, &block); end # source://prawn//lib/prawn/text/formatted/arranger.rb#138 def apply_font_settings(fragment = T.unsafe(nil), &block); end # Returns the value of attribute consumed. # # source://prawn//lib/prawn/text/formatted/arranger.rb#20 def consumed; end # Sets the attribute consumed # # @param value the value to set the attribute consumed to. # # source://prawn//lib/prawn/text/formatted/arranger.rb#20 def consumed=(_arg0); end # Returns the value of attribute current_format_state. # # source://prawn//lib/prawn/text/formatted/arranger.rb#25 def current_format_state; end # source://prawn//lib/prawn/text/formatted/arranger.rb#61 def finalize_line; end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/arranger.rb#98 def finished?; end # source://prawn//lib/prawn/text/formatted/arranger.rb#200 def font_style(styles); end # source://prawn//lib/prawn/text/formatted/arranger.rb#78 def format_array=(array); end # Returns the value of attribute fragments. # # source://prawn//lib/prawn/text/formatted/arranger.rb#24 def fragments; end # source://prawn//lib/prawn/text/formatted/arranger.rb#88 def initialize_line; end # source://prawn//lib/prawn/text/formatted/arranger.rb#52 def line; end # source://prawn//lib/prawn/text/formatted/arranger.rb#43 def line_width; end # Returns the value of attribute max_ascender. # # source://prawn//lib/prawn/text/formatted/arranger.rb#19 def max_ascender; end # Returns the value of attribute max_descender. # # source://prawn//lib/prawn/text/formatted/arranger.rb#18 def max_descender; end # source://prawn//lib/prawn/text/formatted/arranger.rb#17 def max_line_height; end # source://prawn//lib/prawn/text/formatted/arranger.rb#102 def next_string; end # source://prawn//lib/prawn/text/formatted/arranger.rb#117 def preview_next_string; end # source://prawn//lib/prawn/text/formatted/arranger.rb#191 def repack_unretrieved; end # source://prawn//lib/prawn/text/formatted/arranger.rb#184 def retrieve_fragment; end # source://prawn//lib/prawn/text/formatted/arranger.rb#34 def space_count; end # The following present only for testing purposes # # source://prawn//lib/prawn/text/formatted/arranger.rb#23 def unconsumed; end # source://prawn//lib/prawn/text/formatted/arranger.rb#166 def update_last_string(printed, unprinted, normalized_soft_hyphen = T.unsafe(nil)); end private # source://prawn//lib/prawn/text/formatted/arranger.rb#226 def apply_font_size(size, styles); end # source://prawn//lib/prawn/text/formatted/arranger.rb#216 def load_previous_format_state; end # source://prawn//lib/prawn/text/formatted/arranger.rb#254 def omit_trailing_whitespace_from_line_width; end # source://prawn//lib/prawn/text/formatted/arranger.rb#270 def set_fragment_measurements(fragment); end # source://prawn//lib/prawn/text/formatted/arranger.rb#280 def set_line_measurement_maximums(fragment); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/arranger.rb#242 def subscript?(styles); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/arranger.rb#248 def superscript?(styles); end end # Generally, one would use the Prawn::Text::Formatted#formatted_text_box # convenience method. However, using Text::Formatted::Box.new in # conjunction with #render(:dry_run => true) enables one to do look-ahead # calculations prior to placing text on the page, or to determine how much # vertical space was consumed by the printed text # # source://prawn//lib/prawn/text/formatted/box.rb#101 class Prawn::Text::Formatted::Box include ::Prawn::Text::Formatted::Wrap # See Prawn::Text#text_box for valid options # # @return [Box] a new instance of Box # # source://prawn//lib/prawn/text/formatted/box.rb#139 def initialize(formatted_text, options = T.unsafe(nil)); end # The height of the ascender of the last line printed # # source://prawn//lib/prawn/text/formatted/box.rb#127 def ascender; end # The upper left corner of the text box # # source://prawn//lib/prawn/text/formatted/box.rb#123 def at; end # The width available at this point in the box # # source://prawn//lib/prawn/text/formatted/box.rb#237 def available_width; end # The height of the descender of the last line printed # # source://prawn//lib/prawn/text/formatted/box.rb#129 def descender; end # fragment is a Prawn::Text::Formatted::Fragment object # # source://prawn//lib/prawn/text/formatted/box.rb#250 def draw_fragment(fragment, accumulated_width = T.unsafe(nil), line_width = T.unsafe(nil), word_spacing = T.unsafe(nil)); end # True if everything printed (or, if dry_run was # used, everything would have been successfully printed) # # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/box.rb#118 def everything_printed?; end # The height actually used during the previous render # # source://prawn//lib/prawn/text/formatted/box.rb#243 def height; end # The leading used during printing # # source://prawn//lib/prawn/text/formatted/box.rb#131 def leading; end # source://prawn//lib/prawn/text/formatted/box.rb#133 def line_gap; end # The line height of the last line printed # # source://prawn//lib/prawn/text/formatted/box.rb#125 def line_height; end # True if nothing printed (or, if dry_run was # used, nothing would have been successfully printed) # # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/box.rb#112 def nothing_printed?; end # Render text to the document based on the settings defined in initialize. # # In order to facilitate look-ahead calculations, render accepts # a :dry_run => true option. If provided, then everything is # executed as if rendering, with the exception that nothing is drawn on # the page. Useful for look-ahead computations of height, unprinted text, # etc. # # Returns any text that did not print under the current settings # # source://prawn//lib/prawn/text/formatted/box.rb#207 def render(flags = T.unsafe(nil)); end # The text that was successfully printed (or, if dry_run was # used, the text that would have been successfully printed) # # source://prawn//lib/prawn/text/formatted/box.rb#108 def text; end # source://prawn//lib/prawn/text/formatted/box.rb#330 def valid_options; end private # source://prawn//lib/prawn/text/formatted/box.rb#398 def analyze_glyphs_for_fallback_font_support(hash); end # Returns the default height to be used if none is provided or if the # overflow option is set to :expand. If we are in a stretchy bounding # box, assume we can stretch to the bottom of the innermost non-stretchy # box. # # source://prawn//lib/prawn/text/formatted/box.rb#470 def default_height; end # source://prawn//lib/prawn/text/formatted/box.rb#581 def draw_fragment_overlay_anchor(fragment); end # source://prawn//lib/prawn/text/formatted/box.rb#571 def draw_fragment_overlay_link(fragment); end # source://prawn//lib/prawn/text/formatted/box.rb#589 def draw_fragment_overlay_local(fragment); end # source://prawn//lib/prawn/text/formatted/box.rb#600 def draw_fragment_overlay_styles(fragment); end # source://prawn//lib/prawn/text/formatted/box.rb#561 def draw_fragment_overlays(fragment); end # source://prawn//lib/prawn/text/formatted/box.rb#555 def draw_fragment_underlays(fragment); end # source://prawn//lib/prawn/text/formatted/box.rb#428 def find_font_for_this_glyph(char, current_font, fallback_fonts); end # source://prawn//lib/prawn/text/formatted/box.rb#437 def form_fragments_from_like_font_glyph_pairs(font_glyph_pairs, hash); end # source://prawn//lib/prawn/text/formatted/box.rb#457 def move_baseline_down; end # source://prawn//lib/prawn/text/formatted/box.rb#367 def normalize_encoding; end # source://prawn//lib/prawn/text/formatted/box.rb#347 def normalized_text(flags); end # source://prawn//lib/prawn/text/formatted/box.rb#359 def original_text; end # source://prawn//lib/prawn/text/formatted/box.rb#363 def original_text=(formatted_text); end # source://prawn//lib/prawn/text/formatted/box.rb#387 def process_fallback_fonts(formatted_text); end # source://prawn//lib/prawn/text/formatted/box.rb#520 def process_options; end # source://prawn//lib/prawn/text/formatted/box.rb#478 def process_vertical_alignment(text); end # source://prawn//lib/prawn/text/formatted/box.rb#528 def render_rotated(text); end # Decrease the font size until the text fits or the min font # size is reached # # source://prawn//lib/prawn/text/formatted/box.rb#500 def shrink_to_fit(text); end class << self # Example (see Prawn::Text::Core::Formatted::Wrap for what is required # of the wrap method if you want to override the default wrapping # algorithm): # # # module MyWrap # # def wrap(array) # initialize_wrap([{ :text => 'all your base are belong to us' }]) # @line_wrap.wrap_line(:document => @document, # :kerning => @kerning, # :width => 10000, # :arranger => @arranger) # fragment = @arranger.retrieve_fragment # format_and_draw_fragment(fragment, 0, @line_wrap.width, 0) # [] # end # # end # # Prawn::Text::Formatted::Box.extensions << MyWrap # # box = Prawn::Text::Formatted::Box.new('hello world') # box.render('why can't I print anything other than' + # '"all your base are belong to us"?') # # source://prawn//lib/prawn/text/formatted/box.rb#321 def extensions; end # @private # @private # # source://prawn//lib/prawn/text/formatted/box.rb#326 def inherited(base); end end end # Prawn::Text::Formatted::Fragment is a state store for a formatted text # fragment. It does not render anything. # # @private # # source://prawn//lib/prawn/text/formatted/fragment.rb#18 class Prawn::Text::Formatted::Fragment # @return [Fragment] a new instance of Fragment # # source://prawn//lib/prawn/text/formatted/fragment.rb#25 def initialize(text, format_state, document); end # source://prawn//lib/prawn/text/formatted/fragment.rb#188 def absolute_bottom; end # source://prawn//lib/prawn/text/formatted/fragment.rb#200 def absolute_bottom_left; end # source://prawn//lib/prawn/text/formatted/fragment.rb#204 def absolute_bottom_right; end # source://prawn//lib/prawn/text/formatted/fragment.rb#65 def absolute_bounding_box; end # source://prawn//lib/prawn/text/formatted/fragment.rb#176 def absolute_left; end # source://prawn//lib/prawn/text/formatted/fragment.rb#180 def absolute_right; end # source://prawn//lib/prawn/text/formatted/fragment.rb#184 def absolute_top; end # source://prawn//lib/prawn/text/formatted/fragment.rb#192 def absolute_top_left; end # source://prawn//lib/prawn/text/formatted/fragment.rb#196 def absolute_top_right; end # source://prawn//lib/prawn/text/formatted/fragment.rb#92 def anchor; end # Returns the value of attribute ascender. # # source://prawn//lib/prawn/text/formatted/fragment.rb#22 def ascender; end # Sets the attribute ascender # # @param value the value to set the attribute ascender to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#22 def ascender=(_arg0); end # Returns the value of attribute baseline. # # source://prawn//lib/prawn/text/formatted/fragment.rb#23 def baseline; end # Sets the attribute baseline # # @param value the value to set the attribute baseline to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#23 def baseline=(_arg0); end # source://prawn//lib/prawn/text/formatted/fragment.rb#156 def bottom; end # source://prawn//lib/prawn/text/formatted/fragment.rb#172 def bottom_left; end # source://prawn//lib/prawn/text/formatted/fragment.rb#168 def bottom_right; end # source://prawn//lib/prawn/text/formatted/fragment.rb#61 def bounding_box; end # source://prawn//lib/prawn/text/formatted/fragment.rb#137 def callback_objects; end # source://prawn//lib/prawn/text/formatted/fragment.rb#112 def character_spacing; end # source://prawn//lib/prawn/text/formatted/fragment.rb#100 def color; end # source://prawn//lib/prawn/text/formatted/fragment.rb#121 def default_direction=(direction); end # Returns the value of attribute descender. # # source://prawn//lib/prawn/text/formatted/fragment.rb#22 def descender; end # Sets the attribute descender # # @param value the value to set the attribute descender to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#22 def descender=(_arg0); end # source://prawn//lib/prawn/text/formatted/fragment.rb#117 def direction; end # source://prawn//lib/prawn/text/formatted/fragment.rb#104 def font; end # Returns the value of attribute format_state. # # source://prawn//lib/prawn/text/formatted/fragment.rb#20 def format_state; end # source://prawn//lib/prawn/text/formatted/fragment.rb#42 def height; end # source://prawn//lib/prawn/text/formatted/fragment.rb#128 def include_trailing_white_space!; end # Returns the value of attribute left. # # source://prawn//lib/prawn/text/formatted/fragment.rb#23 def left; end # Sets the attribute left # # @param value the value to set the attribute left to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#23 def left=(_arg0); end # Returns the value of attribute line_height. # # source://prawn//lib/prawn/text/formatted/fragment.rb#22 def line_height; end # Sets the attribute line_height # # @param value the value to set the attribute line_height to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#22 def line_height=(_arg0); end # source://prawn//lib/prawn/text/formatted/fragment.rb#88 def link; end # source://prawn//lib/prawn/text/formatted/fragment.rb#96 def local; end # source://prawn//lib/prawn/text/formatted/fragment.rb#148 def right; end # source://prawn//lib/prawn/text/formatted/fragment.rb#108 def size; end # source://prawn//lib/prawn/text/formatted/fragment.rb#133 def space_count; end # source://prawn//lib/prawn/text/formatted/fragment.rb#79 def strikethrough_points; end # source://prawn//lib/prawn/text/formatted/fragment.rb#84 def styles; end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/fragment.rb#46 def subscript?; end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/fragment.rb#50 def superscript?; end # Returns the value of attribute text. # # source://prawn//lib/prawn/text/formatted/fragment.rb#20 def text; end # source://prawn//lib/prawn/text/formatted/fragment.rb#152 def top; end # source://prawn//lib/prawn/text/formatted/fragment.rb#160 def top_left; end # source://prawn//lib/prawn/text/formatted/fragment.rb#164 def top_right; end # source://prawn//lib/prawn/text/formatted/fragment.rb#74 def underline_points; end # source://prawn//lib/prawn/text/formatted/fragment.rb#36 def width; end # Sets the attribute width # # @param value the value to set the attribute width to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#21 def width=(_arg0); end # Returns the value of attribute word_spacing. # # source://prawn//lib/prawn/text/formatted/fragment.rb#23 def word_spacing; end # Sets the attribute word_spacing # # @param value the value to set the attribute word_spacing to. # # source://prawn//lib/prawn/text/formatted/fragment.rb#23 def word_spacing=(_arg0); end # source://prawn//lib/prawn/text/formatted/fragment.rb#54 def y_offset; end private # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/fragment.rb#233 def exclude_trailing_white_space?; end # source://prawn//lib/prawn/text/formatted/fragment.rb#241 def normalized_soft_hyphen; end # source://prawn//lib/prawn/text/formatted/fragment.rb#245 def process_soft_hyphens(string); end # source://prawn//lib/prawn/text/formatted/fragment.rb#210 def process_text(text); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/fragment.rb#237 def soft_hyphens_need_processing?(string); end # source://prawn//lib/prawn/text/formatted/fragment.rb#253 def strip_zero_width_spaces(string); end end # @private # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#16 class Prawn::Text::Formatted::LineWrap # Whether this line is the last line in the paragraph # # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#28 def paragraph_finished?; end # The number of spaces in the last wrapped line # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#25 def space_count; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#32 def tokenize(fragment); end # The width of the last wrapped line # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#20 def width; end # Work in conjunction with the PDF::Formatted::Arranger # defined in the :arranger option to determine what formatted text # will fit within the width defined by the :width option # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#40 def wrap_line(options); end private # returns true if all text was printed without running into the end of # the line # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#89 def add_fragment_to_line(fragment); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#257 def append_char(char, font); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#75 def apply_font_settings_and_add_fragment_to_line(fragment); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#138 def break_chars; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#207 def determine_whether_to_pull_preceding_fragment_to_join_this_one(current_fragment); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#65 def empty_line?(fragment); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#244 def end_of_the_line_reached(segment); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#61 def first_fragment_on_this_line?(fragment); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#232 def fragment_begins_with_breakable?(fragment); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#188 def fragment_finished(fragment); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#146 def hyphen; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#162 def initialize_line(options); end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#71 def is_next_string_newline?; end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#158 def line_empty?; end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#236 def line_finished?; end # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#228 def previous_fragment_ended_with_breakable?; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#219 def remember_this_fragment_for_backward_looking_ops; end # The pattern used to determine chunks of text to place on a given line # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#120 def scan_pattern; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#180 def set_soft_hyphen_and_zero_width_space; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#150 def soft_hyphen; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#240 def update_line_status_based_on_last_output; end # @raise [Prawn::Errors::CannotFit] # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#200 def update_output_based_on_last_fragment(fragment, normalized_soft_hyphen = T.unsafe(nil)); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#142 def whitespace; end # The pattern used to determine whether any word breaks exist on a # current line, which in turn determines whether character level # word breaking is needed # # source://prawn//lib/prawn/text/formatted/line_wrap.rb#134 def word_division_scan_pattern; end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#250 def wrap_by_char(segment); end # source://prawn//lib/prawn/text/formatted/line_wrap.rb#154 def zero_width_space; end end # source://prawn//lib/prawn/text/formatted/parser.rb#15 class Prawn::Text::Formatted::Parser class << self # source://prawn//lib/prawn/text/formatted/parser.rb#123 def array_from_tokens(tokens); end # source://prawn//lib/prawn/text/formatted/parser.rb#100 def array_paragraphs(array); end # source://prawn//lib/prawn/text/formatted/parser.rb#36 def format(string, *args); end # source://prawn//lib/prawn/text/formatted/parser.rb#41 def to_string(array); end end end # source://prawn//lib/prawn/text/formatted/parser.rb#18 Prawn::Text::Formatted::Parser::PARSER_REGEX = T.let(T.unsafe(nil), Regexp) # @private # # source://prawn//lib/prawn/text/formatted/wrap.rb#17 module Prawn::Text::Formatted::Wrap # source://prawn//lib/prawn/text/formatted/wrap.rb#19 def initialize(array, options); end # See the developer documentation for PDF::Core::Text#wrap # # Formatted#wrap should set the following variables: # @line_height:: # the height of the tallest fragment in the last printed line # @descender:: # the descender height of the tallest fragment in the last # printed line # @ascender:: # the ascender heigth of the tallest fragment in the last # printed line # @baseline_y:: # the baseline of the current line # @nothing_printed:: # set to true until something is printed, then false # @everything_printed:: # set to false until everything printed, then true # # Returns any formatted text that was not printed # # source://prawn//lib/prawn/text/formatted/wrap.rb#47 def wrap(array); end private # @return [Boolean] # # source://prawn//lib/prawn/text/formatted/wrap.rb#115 def enough_height_for_this_line?; end # source://prawn//lib/prawn/text/formatted/wrap.rb#149 def format_and_draw_fragment(fragment, accumulated_width, line_width, word_spacing); end # source://prawn//lib/prawn/text/formatted/wrap.rb#134 def initialize_wrap(array); end # source://prawn//lib/prawn/text/formatted/wrap.rb#77 def print_line; end # source://prawn//lib/prawn/text/formatted/wrap.rb#105 def word_spacing_for_this_line; end end # No-Break Space # # source://prawn//lib/prawn/text.rb#23 Prawn::Text::NBSP = T.let(T.unsafe(nil), String) # Soft Hyphen (invisible, except when causing a line break) # # source://prawn//lib/prawn/text.rb#27 Prawn::Text::SHY = T.let(T.unsafe(nil), String) # Zero Width Space (indicate word boundaries without a space) # # source://prawn//lib/prawn/text.rb#25 Prawn::Text::ZWSP = T.let(T.unsafe(nil), String) # @private # # source://prawn//lib/prawn/utilities.rb#35 class Prawn::ThreadLocalCache # @return [ThreadLocalCache] a new instance of ThreadLocalCache # # source://prawn//lib/prawn/utilities.rb#36 def initialize; end # source://prawn//lib/prawn/utilities.rb#39 def [](key); end # source://prawn//lib/prawn/utilities.rb#42 def []=(key, value); end end # source://prawn//lib/prawn/version.rb#4 Prawn::VERSION = T.let(T.unsafe(nil), String) # This mixin allows you to create modular Prawn code without the # need to create subclasses of Prawn::Document. # # class Greeter # include Prawn::View # # def initialize(name) # @name = name # end # # def say_hello # text "Hello, #{@name}!" # end # # def say_goodbye # font("Courier") do # text "Goodbye, #{@name}!" # end # end # end # # greeter = Greeter.new("Gregory") # # greeter.say_hello # greeter.say_goodbye # # greeter.save_as("greetings.pdf") # # The short story about why you should use this mixin rather than # creating subclasses of +Prawn::Document+ is that it helps # prevent accidental conflicts between your code and Prawn's # code. # # Here's the slightly longer story... # # By using composition rather than inheritance under the hood, this # mixin allows you to keep your state separate from +Prawn::Document+'s # state, and also will prevent unexpected method name collisions due # to late binding effects. # # This mixin is mostly meant for extending Prawn's functionality # with your own additions, but you can also use it to replace or # wrap existing Prawn methods. Calling +super+ will still work # as expected, and alternatively you can explictly call # +document.some_method+ to delegate to Prawn where needed. # # source://prawn//lib/prawn/view.rb#53 module Prawn::View # Lazily instantiates a +Prawn::Document+ object. # # You can also redefine this method in your own classes to use # a custom document class. # # source://prawn//lib/prawn/view.rb#60 def document; end # Delegates all unhandled calls to object returned by +document+ method. # (which is an instance of Prawn::Document by default) # # source://prawn//lib/prawn/view.rb#66 def method_missing(m, *a, &b); end # Syntatic sugar that calls +document.render_file+ under the hood. # # greeter.save_as("greetings.pdf") # # source://prawn//lib/prawn/view.rb#87 def save_as(filename); end # Syntactic sugar that uses +instance_eval+ under the hood to provide # a block-based DSL. # # greeter.update do # say_hello # say_goodbye # end # # source://prawn//lib/prawn/view.rb#80 def update(&b); end end