filter

package
v0.13.1 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package filter contains PDF filter implementations.

Index

Constants

View Source
const (
	ASCII85   = "ASCII85Decode"
	ASCIIHex  = "ASCIIHexDecode"
	RunLength = "RunLengthDecode"
	LZW       = "LZWDecode"
	Flate     = "FlateDecode"
	CCITTFax  = "CCITTFaxDecode"
	JBIG2     = "JBIG2Decode" // TODO
	DCT       = "DCTDecode"
	JPX       = "JPXDecode" // TODO
)

PDF defines the following filters. See also 7.4 in the PDF spec.

View Source
const (
	PredictorNo      = 1  // No prediction.
	PredictorTIFF    = 2  // Use TIFF prediction for all rows.
	PredictorNone    = 10 // Use PNGNone for all rows.
	PredictorSub     = 11 // Use PNGSub for all rows.
	PredictorUp      = 12 // Use PNGUp for all rows.
	PredictorAverage = 13 // Use PNGAverage for all rows.
	PredictorPaeth   = 14 // Use PNGPaeth for all rows.
	PredictorOptimum = 15 // Use the optimum PNG prediction for each row.
)

PDF allows a prediction step prior to compression applying TIFF or PNG prediction. Predictor algorithm.

View Source
const (
	PNGNone    = 0x00
	PNGSub     = 0x01
	PNGUp      = 0x02
	PNGAverage = 0x03
	PNGPaeth   = 0x04
)

For predictor > 2 PNG filters (see RFC 2083) get applied and the first byte of each pixelrow defines the prediction algorithm used for all pixels of this row.

View Source
const DefaultMaxDecodeBytes int64 = 512 << 20 // 512 MiB

Variables

View Source
var ErrDecodeLimitExceeded = errors.New("pdfcpu: filter decode limit exceeded")

ErrDecodeLimitExceeded signals that decoded filter output exceeds the configured decode limit.

View Source
var ErrUnsupportedFilter = errors.New("pdfcpu: filter not supported")

ErrUnsupportedFilter signals unsupported filter encountered.

Functions

func List

func List() []string

List return the list of all supported PDF filters.

func SupportsDecodeParms added in v0.13.1

func SupportsDecodeParms(f string) bool

SupportsDecodeParms returns true if filterName supports decode parameters.

Types

type Filter

type Filter interface {
	Encode(r io.Reader) (io.Reader, error)
	Decode(r io.Reader) (io.Reader, error)
	// DecodeLength will decode at least maxLen bytes. For filters where decoding
	// parts doesn't make sense (e.g. DCT), the whole stream is decoded.
	// If maxLen < 0 is passed, the whole stream is decoded.
	DecodeLength(r io.Reader, maxLen int64) (io.Reader, error)
}

Filter defines an interface for encoding/decoding PDF object streams.

func NewFilter

func NewFilter(filterName string, parms map[string]int, maxDecodeBytes ...int64) (filter Filter, err error)

NewFilter returns a filter for given filterName and an optional parameter dictionary.

Jump to

Keyboard shortcuts

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