writer

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2025 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PDFA1B = pdfa.PDFA1B
	PDFA3B = pdfa.PDFA3B
)

Variables

This section is empty.

Functions

func AddLTV

func AddLTV(ctx context.Context, r io.ReaderAt, size int64, w io.Writer, data security.LTVData) error

AddLTV adds Long Term Validation (LTV) data (DSS dictionary) to an existing PDF. It performs an incremental update.

func SerializeAssociatedFiles

func SerializeAssociatedFiles(files []semantic.EmbeddedFile, ctx SerializationContext) raw.Object

SerializeAssociatedFiles serializes a list of embedded files into an AF array.

func Sign

func Sign(ctx context.Context, r io.ReaderAt, size int64, w io.Writer, signer security.Signer, cfg SignConfig) error

Sign appends a digital signature to an existing PDF. It writes the signed PDF to w.

Types

type ActionSerializer

type ActionSerializer interface {
	Serialize(action semantic.Action, ctx SerializationContext) raw.Object
}

ActionSerializer serializes semantic actions into raw objects.

type AnnotationSerializer

type AnnotationSerializer interface {
	Serialize(annot semantic.Annotation, ctx SerializationContext) (raw.ObjectRef, error)
}

AnnotationSerializer serializes semantic annotations into raw objects.

type ColorSpaceSerializer

type ColorSpaceSerializer interface {
	Serialize(cs semantic.ColorSpace, ctx SerializationContext) raw.Object
}

ColorSpaceSerializer serializes semantic color spaces into raw objects.

type Config

type Config struct {
	Version       PDFVersion
	Compression   int
	ContentFilter ContentFilter
	Linearize     bool
	Incremental   bool
	Deterministic bool
	XRefStreams   bool
	ObjectStreams bool
	SubsetFonts   bool
	PDFALevel     pdfa.Level
}

type ContentFilter

type ContentFilter int
const (
	FilterNone ContentFilter = iota
	FilterFlate
	FilterASCIIHex
	FilterASCII85
	FilterRunLength
	FilterLZW
	FilterJPX
	FilterJBIG2
)

type Context

type Context interface{ Done() <-chan struct{} }

type FunctionSerializer

type FunctionSerializer interface {
	Serialize(f semantic.Function, ctx SerializationContext) raw.ObjectRef
}

FunctionSerializer serializes semantic functions into raw objects.

type Interceptor

type Interceptor interface {
	BeforeWrite(ctx Context, obj raw.Object) error
	AfterWrite(ctx Context, obj raw.Object, bytesWritten int64) error
}

type PDFALevel

type PDFALevel = pdfa.Level

PDF/A level aliases point to the shared pdfa.Level type.

type PDFVersion

type PDFVersion string
const (
	PDF17 PDFVersion = "1.7"
)

type SerializationContext

type SerializationContext interface {
	NextRef() raw.ObjectRef
	AddObject(ref raw.ObjectRef, obj raw.Object)
	PageRef(index int) *raw.ObjectRef
}

SerializationContext provides access to the writer's state for serializers.

type SignConfig

type SignConfig struct {
	Reason    string
	Location  string
	Contact   string
	FieldName string // Name of the signature field (optional)
	PAdES     bool   // Enable PAdES (ETSI.CAdES.detached)
}

SignConfig configures the digital signature.

type Writer

type Writer interface {
	Write(ctx Context, doc *semantic.Document, w WriterAt, cfg Config) error
	SerializeObject(ref raw.ObjectRef, obj raw.Object) ([]byte, error)
}

func NewWriter

func NewWriter() Writer

NewWriter creates a new Writer with default configuration.

type WriterAt

type WriterAt interface {
	Write(p []byte) (n int, err error)
}

type WriterBuilder

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

func (*WriterBuilder) Build

func (b *WriterBuilder) Build() Writer

func (*WriterBuilder) WithActionSerializer

func (b *WriterBuilder) WithActionSerializer(s ActionSerializer) *WriterBuilder

func (*WriterBuilder) WithAnnotationSerializer

func (b *WriterBuilder) WithAnnotationSerializer(s AnnotationSerializer) *WriterBuilder

func (*WriterBuilder) WithColorSpaceSerializer

func (b *WriterBuilder) WithColorSpaceSerializer(s ColorSpaceSerializer) *WriterBuilder

func (*WriterBuilder) WithFunctionSerializer

func (b *WriterBuilder) WithFunctionSerializer(s FunctionSerializer) *WriterBuilder

func (*WriterBuilder) WithInterceptor

func (b *WriterBuilder) WithInterceptor(i Interceptor) *WriterBuilder

Jump to

Keyboard shortcuts

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