resolver

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ObjectReader

type ObjectReader interface {
	GetObject(objNum int) (core.Object, error)
	ResolveReference(ref core.IndirectRef) (core.Object, error)
}

ObjectReader interface allows the resolver to work with any reader

type ObjectResolver

type ObjectResolver struct {
	// contains filtered or unexported fields
}

ObjectResolver resolves indirect references in PDF objects It can recursively resolve references in dictionaries and arrays

func NewResolver

func NewResolver(reader ObjectReader, opts ...Option) *ObjectResolver

NewResolver creates a new object resolver

func (*ObjectResolver) GetObject

func (r *ObjectResolver) GetObject(objNum int) (core.Object, error)

GetObject loads an object by number (convenience method)

func (*ObjectResolver) GetObjectResolved

func (r *ObjectResolver) GetObjectResolved(objNum int) (core.Object, error)

GetObjectResolved loads and resolves an object by number (shallow)

func (*ObjectResolver) GetObjectResolvedDeep

func (r *ObjectResolver) GetObjectResolvedDeep(objNum int) (core.Object, error)

GetObjectResolvedDeep loads and fully resolves an object by number (deep)

func (*ObjectResolver) Reset

func (r *ObjectResolver) Reset()

Reset clears the visited map and depth counter Call this between independent resolution operations

func (*ObjectResolver) Resolve

func (r *ObjectResolver) Resolve(obj core.Object) (core.Object, error)

Resolve resolves an object, following indirect references If the object contains nested references (in dicts/arrays), they are also resolved

func (*ObjectResolver) ResolveArray

func (r *ObjectResolver) ResolveArray(arr core.Array) (core.Array, error)

ResolveArray is a convenience method for resolving arrays It resolves all elements in the array (deep resolution)

func (*ObjectResolver) ResolveDeep

func (r *ObjectResolver) ResolveDeep(obj core.Object) (core.Object, error)

ResolveDeep recursively resolves all indirect references in dictionaries and arrays This will fully expand the object tree

func (*ObjectResolver) ResolveDict

func (r *ObjectResolver) ResolveDict(dict core.Dict) (core.Dict, error)

ResolveDict is a convenience method for resolving dictionaries It resolves the dictionary and all its values (deep resolution)

func (*ObjectResolver) ResolveReference

func (r *ObjectResolver) ResolveReference(ref core.IndirectRef) (core.Object, error)

ResolveReference resolves a single indirect reference This is a shallow resolution - it returns the referenced object but doesn't recurse

func (*ObjectResolver) ResolveReferenceDeep

func (r *ObjectResolver) ResolveReferenceDeep(ref core.IndirectRef) (core.Object, error)

ResolveReferenceDeep resolves a reference and all nested references

type Option

type Option func(*ObjectResolver)

Option configures the resolver

func WithMaxDepth

func WithMaxDepth(depth int) Option

WithMaxDepth sets the maximum recursion depth (default: 100)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL