Module: Pdfrb::Source
- Defined in:
- lib/pdfrb/source.rb,
lib/pdfrb/source/token.rb,
lib/pdfrb/source/parser.rb,
lib/pdfrb/source/helpers.rb,
lib/pdfrb/source/recovery.rb,
lib/pdfrb/source/tokenizer.rb,
lib/pdfrb/source/header_reader.rb,
lib/pdfrb/source/object_reader.rb,
lib/pdfrb/source/trailer_reader.rb,
lib/pdfrb/source/xref_table_reader.rb,
lib/pdfrb/source/xref_stream_reader.rb,
lib/pdfrb/source/object_stream_reader.rb,
lib/pdfrb/source/linearization_detection.rb
Overview
Reading layer: PDF bytes -> Tokenizer -> Parser -> COS object graph -> ObjectReader resolves References via xref -> Document.
Same layering concept as postscript/source/: a byte-level
state-machine Tokenizer feeds a recursive-descent Parser that
emits Model values. References are stored as Model::Reference
values and resolved lazily via the owning Document's ObjectReader.
Defined Under Namespace
Modules: HeaderReader, LinearizationDetection, ObjectStreamReader, Recovery, TrailerReader, XrefStreamReader, XrefTableReader Classes: ObjectReader, Parser, Token, Tokenizer
Class Method Summary collapse
Class Method Details
.parse_string(source, document: nil) ⇒ Object
10 11 12 13 |
# File 'lib/pdfrb/source/helpers.rb', line 10 def parse_string(source, document: nil) io = source.is_a?(::String) ? StringIO.new(source.b) : source Parser.new(Tokenizer.new(io), document: document).parse_value end |