Method: CombinePDF::PDF#initialize

Defined in:
lib/combine_pdf/pdf_public.rb

#initialize(parser = nil) ⇒ PDF

Returns a new instance of PDF.

Raises:

  • (TypeError)


86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/combine_pdf/pdf_public.rb', line 86

def initialize(parser = nil)
  # default before setting
  @objects = []
  @version = 0
  @viewer_preferences = {}
  @info = {}
  parser ||= PDFParser.new('')
  raise TypeError, "initialization error, expecting CombinePDF::PDFParser or nil, but got #{parser.class.name}" unless parser.is_a? PDFParser
  @objects = parser.parse
  # remove any existing id's
  remove_old_ids
  # set data from parser
  @version = parser.version if parser.version.is_a? Float
  @info = parser.info_object || {}
  @names = parser.names_object || {}
  @forms_data = parser.forms_object || {}
  @outlines = parser.outlines_object || {}
  # rebuild the catalog, to fix wkhtmltopdf's use of static page numbers
  rebuild_catalog

  # general globals
  @set_start_id = 1
  @info[:Producer] = "Ruby CombinePDF #{CombinePDF::VERSION} Library"
  @info.delete :CreationDate
  @info.delete :ModDate
end