moonbitlang/pdflite/reader does not have a README file

    PdfClassicXRefEntry

    pub(all) struct PdfClassicXRefEntry {
    object_number : Int
    offset : Int
    generation : Int
    in_use : Bool
    object_stream :
    ObjectStreamReference
    ?
    } derive(Eq,
    Debug
    )

    One classic or xref-stream object-table entry.

    Entries are stored newest first by the document reader. object_stream records compressed-object locations for xref-stream entries.

    PdfClassicXRefEntry::equal

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfClassicXRefEntry::equal(PdfClassicXRefEntry, PdfClassicXRefEntry) -> Bool

    PdfClassicXRefEntry::not_equal

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfClassicXRefEntry::not_equal(x : PdfClassicXRefEntry, y : PdfClassicXRefEntry) -> Bool

    PdfClassicXRefEntry::to_repr

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfClassicXRefEntry::to_repr(PdfClassicXRefEntry) ->
    Repr

    PdfClassicXRefIndex

    pub(all) struct PdfClassicXRefIndex {
    entries :
    HashMap
    [Int, PdfClassicXRefEntry]
    }

    Object-number index over active classic xref entries.

    PdfClassicXRefIndex::lookup

    fn PdfClassicXRefIndex::lookup(self : PdfClassicXRefIndex, object_number : Int) -> PdfClassicXRefEntry?

    Return the active xref entry for object_number, if present.

    PdfReaderReconstructionCallbacks

    Parser and verifier callbacks needed by the scanner-side reconstruction plan.

    PdfReaderReconstructionPlan

    pub(all) struct PdfReaderReconstructionPlan {
    classic_xref_sections : Array[(Int, PdfXRefSection)]
    xref_stream_sections : Array[PdfXRefSection]
    xref_coverage : PdfReconstructedXRefCoverage
    classic_xrefs : Array[PdfClassicXRefEntry]
    object_xrefs : Array[PdfClassicXRefEntry]
    trailers : Array[
    PdfObject
    ]
    }

    Scanned reconstruction inputs needed by the higher-level document loader.

    PdfReaderXRefStreamRefSet

    Lookup set for object-number and offset pairs claimed by xref streams.

    PdfReaderXRefStreamRefSet::contains

    fn PdfReaderXRefStreamRefSet::contains(self : PdfReaderXRefStreamRefSet, object_number : Int, offset : Int) -> Bool

    Return whether the set contains an object-number and offset pair.

    PdfReconstructedXRefCoverage

    pub(all) struct PdfReconstructedXRefCoverage {
    sections : Array[(Int,
    PdfNumberSet
    )]
    }

    Coverage map used to avoid loading objects already owned by reconstructed xref sections.

    PdfReconstructedXRefCoverage::contains

    fn PdfReconstructedXRefCoverage::contains(self : PdfReconstructedXRefCoverage, object_number : Int, object_offset : Int) -> Bool

    Return whether an object offset is covered by a reconstructed xref section.

    PdfVersion

    pub(all) struct PdfVersion {
    major : Int
    minor : Int
    } derive(Eq, ToJson,
    Debug
    )

    Parsed PDF header version.

    The fields correspond to the digits in a %PDF-major.minor header.

    PdfVersion::equal

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfVersion::equal(PdfVersion, PdfVersion) -> Bool

    PdfVersion::not_equal

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfVersion::not_equal(x : PdfVersion, y : PdfVersion) -> Bool

    PdfVersion::to_json

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfVersion::to_json(PdfVersion) -> Json

    PdfVersion::to_repr

    #deprecated("implicit trait-method promotion is being removed; call via the trait")
    fn PdfVersion::to_repr(PdfVersion) ->
    Repr

    PdfXRefSection

    pub(all) struct PdfXRefSection {
    entries : Array[PdfClassicXRefEntry]
    trailer :
    PdfObject

    stream_object_number : Int?
    stream_object_offset : Int?
    }

    Parsed xref section and associated trailer.

    pdf_classic_xref_index

    fn pdf_classic_xref_index(xrefs : ArrayView[PdfClassicXRefEntry]) -> PdfClassicXRefIndex

    Build an object-number lookup index over active xref entries.

    pdf_classic_xref_lookup

    fn pdf_classic_xref_lookup(xrefs : ArrayView[PdfClassicXRefEntry], object_number : Int) -> PdfClassicXRefEntry?

    Find the first active xref entry for object_number.

    pdf_classic_xrefs_add_newer_first_with_seen

    fn pdf_classic_xrefs_add_newer_first_with_seen(target : Array[PdfClassicXRefEntry], seen :
    PdfNumberSet
    , entries : ArrayView[PdfClassicXRefEntry]) -> Unit

    Append entries to target while preserving newest-first uniqueness.

    pdf_cursor_consume_ascii

    Consume an exact ASCII byte sequence at the cursor's current absolute position.

    Raises error and leaves the cursor unchanged when the sequence is absent.

    pdf_cursor_read_classic_xref_entries

    Read classic fixed-width or whitespace-tokenized xref entries.

    The cursor must point at the xref marker. Reading stops before the following trailer marker.

    pdf_cursor_read_trailer_dictionary

    Read a classic trailer << ... >> dictionary from the current cursor.

    pdf_default_version

    let pdf_default_version : PdfVersion

    Fallback version used when a PDF header cannot be found.

    pdf_length_name

    Return the /Length name.

    pdf_object_stream_end_offsets

    fn pdf_object_stream_end_offsets(pairs : ArrayView[(Int, Int)], data_length : Int, first : Int) -> Array[Int]

    Compute per-object content end offsets for object-stream members.

    pdf_object_stream_number_offsets

    fn pdf_object_stream_number_offsets(data : BytesView, first : Int, count : Int) -> Array[(Int, Int)] raise
    PdfError

    Parse object-number and offset pairs from an object-stream header.

    pdf_read_header_from_bytes

    fn pdf_read_header_from_bytes(data : Bytes) -> PdfVersion raise
    PdfError

    Read a PDF header version from owned PDF bytes.

    pdf_read_header_from_cursor

    Read the PDF header from the current cursor buffer.

    The reader probes the first 1024 bytes for %PDF-x.y. When found, the cursor offset is set to the header position and the cursor advances past the header. If no header is found, pdf_default_version is returned.

    pdf_read_header_from_view

    fn pdf_read_header_from_view(data : BytesView) -> PdfVersion raise
    PdfError

    Read a PDF header version from a borrowed byte view.

    pdf_read_startxref_position

    fn pdf_read_startxref_position(data : BytesView) -> Int raise
    PdfError

    Read the numeric byte offset following the final startxref marker.

    pdf_reader_decodeparms_name

    fn pdf_reader_decodeparms_name() ->
    PdfName

    Return the /DecodeParms name.

    pdf_reader_filter_name

    fn pdf_reader_filter_name() ->
    PdfName

    Return the /Filter name.

    pdf_reader_first_name

    fn pdf_reader_first_name() ->
    PdfName

    Return the /First name.

    pdf_reader_index_name

    fn pdf_reader_index_name() ->
    PdfName

    Return the /Index name.

    pdf_reader_linearized_name

    fn pdf_reader_linearized_name() ->
    PdfName

    Return the /Linearized name.

    pdf_reader_n_name

    Return the /N name.

    pdf_reader_name

    fn pdf_reader_name(text : String) ->
    PdfName

    Build a PDF name from an ASCII slash-prefixed spelling.

    pdf_reader_object_is_xref_stream

    fn pdf_reader_object_is_xref_stream(object :
    PdfObject
    ) -> Bool

    Return whether an object is a stream object with xref-stream metadata.

    pdf_reader_object_stream_groups

    Group active compressed xrefs by their containing object stream.

    pdf_reader_objstm_name

    fn pdf_reader_objstm_name() ->
    PdfName

    Return the /ObjStm name.

    pdf_reader_prev_name

    fn pdf_reader_prev_name() ->
    PdfName

    Return the /Prev name.

    pdf_reader_reconstruction_classic_xref_entries

    fn pdf_reader_reconstruction_classic_xref_entries(sections : ArrayView[(Int, PdfXRefSection)]) -> Array[PdfClassicXRefEntry]

    Merge reconstructed classic xref entries, newest section first.

    pdf_reader_reconstruction_classic_xref_sections

    fn pdf_reader_reconstruction_classic_xref_sections(data : BytesView, read_section_at : (
    ByteCursor
    , Int) -> (PdfXRefSection, Int) raise
    PdfError
    ) -> Array[(Int, PdfXRefSection)]

    Scan a byte view for reconstructable classic xref sections.

    The caller supplies read_section_at because parsing a complete section may depend on higher-level reader state outside this package.

    pdf_reader_reconstruction_indirect_header_at

    fn pdf_reader_reconstruction_indirect_header_at(data : BytesView, position : Int) -> Bool

    Return whether position starts a plausible indirect-object header.

    pdf_reader_reconstruction_object_xrefs

    Scan a byte view for physically reconstructable indirect-object xref entries.

    The caller supplies read_xref_at_current because turning a candidate indirect object into an xref entry depends on higher-level object parsing and stream-length recovery outside this package.

    pdf_reader_reconstruction_plan

    fn pdf_reader_reconstruction_plan(data : BytesView, include_xref_stream_trailers : Bool, callbacks : PdfReaderReconstructionCallbacks) -> PdfReaderReconstructionPlan raise
    PdfError

    Build the scanner-side reconstruction plan for a byte view.

    Parser and verifier callbacks stay with the higher-level reader package, while this package owns scan ordering and derived xref metadata.

    pdf_reader_reconstruction_skip_malformed_object

    fn pdf_reader_reconstruction_skip_malformed_object(data : BytesView, position : Int) -> Int?

    Return the next scan position after a malformed indirect object candidate.

    pdf_reader_reconstruction_trailers

    Scan a byte view for reconstructed trailer dictionaries.

    The caller supplies parser callbacks because xref-stream trailer extraction depends on higher-level indirect-object parsing outside this package.

    pdf_reader_reconstruction_xref_coverage

    fn pdf_reader_reconstruction_xref_coverage(data : BytesView, classic_sections : ArrayView[(Int, PdfXRefSection)], xref_stream_sections : ArrayView[PdfXRefSection], classic_entry_is_verified : (BytesView, ArrayView[PdfClassicXRefEntry], PdfClassicXRefIndex, PdfClassicXRefEntry) -> Bool) -> PdfReconstructedXRefCoverage

    Build coverage for reconstructed classic and xref-stream sections.

    The caller supplies classic_entry_is_verified because validating a classic entry requires the higher-level indirect-object parser owned by the root reader package.

    pdf_reader_reconstruction_xref_stream_entries

    fn pdf_reader_reconstruction_xref_stream_entries(sections : ArrayView[PdfXRefSection]) -> Array[PdfClassicXRefEntry]

    Merge reconstructed xref-stream entries, newest section first.

    pdf_reader_reconstruction_xref_stream_refs

    fn pdf_reader_reconstruction_xref_stream_refs(sections : ArrayView[PdfXRefSection]) -> Array[(Int, Int)] raise
    PdfError

    Return object-number and offset refs for reconstructed xref-stream sections.

    Raises @core.PdfError::XRefEntryExpected when a section is missing its stream object number or offset instead of panicking on corrupt input.

    pdf_reader_reconstruction_xref_stream_sections

    fn pdf_reader_reconstruction_xref_stream_sections(data : BytesView, read_section_at : (
    ByteCursor
    , Int) -> (PdfXRefSection, Int) raise
    PdfError
    ) -> Array[PdfXRefSection] raise
    PdfError

    Scan a byte view for reconstructable xref-stream sections.

    Malformed indirect object candidates are skipped using the reconstruction scanner so object-like bytes inside a bad object do not become candidates.

    pdf_reader_root_name

    fn pdf_reader_root_name() ->
    PdfName

    Return the /Root name.

    pdf_reader_sanitize_trailer

    Return the persistent trailer dictionary after transient reader keys are removed.

    pdf_reader_short_decodeparms_name

    fn pdf_reader_short_decodeparms_name() ->
    PdfName

    Return the short /DP decode-parameters name.

    pdf_reader_short_filter_name

    fn pdf_reader_short_filter_name() ->
    PdfName

    Return the short /F filter name.

    pdf_reader_size_name

    fn pdf_reader_size_name() ->
    PdfName

    Return the /Size name.

    pdf_reader_stream_dictionary_without_xref_keys

    Return a stream dictionary with xref-stream-only keys removed.

    pdf_reader_type_name

    fn pdf_reader_type_name() ->
    PdfName

    Return the /Type name.

    pdf_reader_w_name

    Return the /W name.

    pdf_reader_xref_name

    fn pdf_reader_xref_name() ->
    PdfName

    Return the /XRef name.

    pdf_reader_xref_stream_ref_set

    fn pdf_reader_xref_stream_ref_set(refs : ArrayView[(Int, Int)]) -> PdfReaderXRefStreamRefSet

    Build a lookup set for xref-stream object references.

    pdf_reader_xref_stream_type_ok

    fn pdf_reader_xref_stream_type_ok(dictionary :
    PdfObject
    ) -> Bool

    Return whether a dictionary declares an xref stream.

    pdf_reader_xrefstm_name

    fn pdf_reader_xrefstm_name() ->
    PdfName

    Return the /XRefStm name.

    pdf_trailer_prev_position

    Read a non-negative /Prev trailer offset, if present.

    pdf_trailer_xref_stream_position

    fn pdf_trailer_xref_stream_position(trailer :
    PdfObject
    ) -> Int? raise
    PdfError

    Read a non-negative /XRefStm trailer offset, if present.

    pdf_xref_stream_entries

    fn pdf_xref_stream_entries(data : BytesView, widths : (Int, Int, Int), index_pairs : ArrayView[(Int, Int)]) -> Array[PdfClassicXRefEntry] raise
    PdfError

    Decode xref-stream bytes into classic xref entries.

    pdf_xref_stream_entry_capacity

    fn pdf_xref_stream_entry_capacity(index_pairs : ArrayView[(Int, Int)]) -> Int raise
    PdfError

    Count the number of xref-stream entries declared by /Index pairs.

    pdf_xref_stream_index_pairs

    fn pdf_xref_stream_index_pairs(dictionary :
    PdfObject
    ) -> Array[(Int, Int)] raise
    PdfError

    Read and validate xref-stream /Index object-number ranges.

    pdf_xref_stream_int_array

    Read an optional integer array from a direct dictionary entry.

    pdf_xref_stream_read_entry

    fn pdf_xref_stream_read_entry(data : BytesView, position : Int, w0 : Int, w1 : Int, w2 : Int) -> (Int, Int, Int, Int) raise
    PdfError

    Read one xref-stream entry tuple from the current byte position.

    pdf_xref_stream_read_field

    fn pdf_xref_stream_read_field(data : BytesView, position : Int, width : Int) -> (Int, Int) raise
    PdfError

    Read one big-endian integer field from xref-stream data.

    pdf_xref_stream_widths

    fn pdf_xref_stream_widths(dictionary :
    PdfObject
    ) -> (Int, Int, Int) raise
    PdfError

    Read and validate xref-stream /W field widths.

    pdf_xref_token_in_use

    fn pdf_xref_token_in_use(token : BytesView) -> Bool raise
    PdfError

    Parse the in-use flag token from a classic xref entry.