Documentation ¶
Overview ¶
Package pdfcpu is a PDF processing library written in Go supporting encryption. It provides an API and a command line interface. Supported are all versions up to PDF 1.7 (ISO-32000).
The commands are:
annotations list, remove page annotations attachments list, add, remove, extract embedded file attachments booklet arrange pages onto larger sheets of paper to make a booklet or zine boxes list, add, remove page boundaries for selected pages changeopw change owner password changeupw change user password collect create custom sequence of selected pages config print configuration create create PDF content via JSON crop set cropbox for selected pages decrypt remove password protection encrypt set password protection extract extract images, fonts, content, pages or metadata fonts install, list supported fonts, create cheat sheets grid rearrange pages or images for enhanced browsing experience images list images for selected pages import import/convert images to PDF info print file info keywords list, add, remove keywords merge concatenate PDFs nup rearrange pages or images for reduced number of pages optimize optimize PDF by getting rid of redundant page resources pages insert, remove selected pages paper print list of supported paper sizes permissions list, set user access permissions portfolio list, add, remove, extract portfolio entries with optional description properties list, add, remove document properties rotate rotate pages selectedpages print definition of the -pages flag split split up a PDF by span or bookmark stamp add, remove, update Unicode text, image or PDF stamps for selected pages trim create trimmed version of selected pages validate validate PDF against PDF 32000-1:2008 (PDF 1.7) version print version watermark add, remove, update Unicode text, image or PDF watermarks for selected pages
Index ¶
- Constants
- Variables
- func AddPages(ctx, ctxDest *Context, pages []int, usePgCache bool) error
- func AnchorPosition(a Anchor, r *Rectangle, w, h float64) (x float64, y float64)
- func AppendPageTree(d1 *IndirectRef, countd1 int, d2 Dict) error
- func AppendStatsFile(ctx *Context) error
- func BestFitRectIntoRect(rSrc, rDest *Rectangle, enforceOrient bool) (w, h, dx, dy, rot float64)
- func BookletFromImages(ctx *Context, fileNames []string, nup *NUp, pagesDict Dict, ...) error
- func CP1252ToUTF8(s string) string
- func CreatePage(xRefTable *XRefTable, parentPageIndRef IndirectRef, p Page, ...) (*IndirectRef, Dict, error)
- func CreateTestPageContent(p Page)
- func DateString(t time.Time) string
- func DateTime(s string, relaxed bool) (time.Time, bool)
- func DecodeUTF16String(s string) (string, error)
- func DecodeUTF8ToByte(s string) string
- func DrawGrid(w io.Writer, x, y int, r *Rectangle, strokeCol SimpleColor, ...)
- func DrawHairCross(w io.Writer, x, y float64, r *Rectangle)
- func DrawLine(w io.Writer, xp, yp, xq, yq float64, lineWidth float64, ...)
- func DrawLineSimple(w io.Writer, xp, yp, xq, yq float64)
- func DrawRect(w io.Writer, r *Rectangle, lineWidth float64, strokeColor *SimpleColor, ...)
- func DrawRectSimple(w io.Writer, r *Rectangle)
- func EncodeUTF16String(s string) string
- func EnsureDefaultConfigAt(path string) error
- func EqualObjects(o1, o2 Object, xRefTable *XRefTable) (ok bool, err error)
- func Escape(s string) (*string, error)
- func FillRect(w io.Writer, r *Rectangle, lineWidth float64, strokeCol *SimpleColor, ...)
- func FillRectNoBorder(w io.Writer, r *Rectangle, fillCol SimpleColor)
- func HexLiteralToString(hl HexLiteral) (string, error)
- func ImageFileName(fileName string) bool
- func ImageFileNames(dir string) ([]string, error)
- func IndRefsForUserfontUpdate(xRefTable *XRefTable, d Dict, font *FontResource) error
- func IntMemberOf(i int, list []int) bool
- func IsStringUTF16BE(s string) bool
- func IsUTF16BE(b []byte) bool
- func KeywordsAdd(xRefTable *XRefTable, keywords []string) error
- func KeywordsList(xRefTable *XRefTable) ([]string, error)
- func KeywordsRemove(xRefTable *XRefTable, keywords []string) (bool, error)
- func MemberOf(s string, list []string) bool
- func MergeXRefTables(ctxSource, ctxDest *Context) (err error)
- func ModifyPageContent(xRefTable *XRefTable, dIndRef IndirectRef, d, res Dict, p Page, ...) error
- func NUpFromMultipleImages(ctx *Context, fileNames []string, nup *NUp, pagesDict Dict, ...) error
- func NUpFromOneImage(ctx *Context, fileName string, nup *NUp, pagesDict Dict, ...) error
- func NormalizeCoord(x, y float64, r *Rectangle, origin Corner, absolute bool) (float64, float64)
- func NormalizeOffset(x, y float64, origin Corner) (float64, float64)
- func OptimizeXRefTable(ctx *Context) error
- func ParseNUpDetails(s string, nup *NUp) error
- func ParseNUpGridDefinition(rows, cols int, nUp *NUp) error
- func ParseNUpValue(n int, nUp *NUp) error
- func Permissions(ctx *Context) (list []string)
- func PrepBytes(s, fontName string, rtl bool) string
- func PropertiesAdd(xRefTable *XRefTable, properties map[string]string) error
- func PropertiesList(xRefTable *XRefTable) ([]string, error)
- func PropertiesRemove(xRefTable *XRefTable, properties []string) (bool, error)
- func RenderImage(xRefTable *XRefTable, sd *StreamDict, thumb bool, resourceName string, ...) (io.Reader, string, error)
- func ResolveWMTextString(text, timeStampFormat string, pageNr, pageCount int) (string, bool)
- func RotatePages(ctx *Context, selectedPages IntSet, rotation int) error
- func SetFillColor(w io.Writer, c SimpleColor)
- func SetLineJoinStyle(w io.Writer, s LineJoinStyle)
- func SetLineWidth(w io.Writer, width float64)
- func SetStrokeColor(w io.Writer, c SimpleColor)
- func SplitMultilineStr(s string) []string
- func StringLiteralToString(sl StringLiteral) (string, error)
- func Text(o Object) (string, error)
- func TimingStats(op string, durRead, durVal, durOpt, durWrite, durTotal float64)
- func UTF8ToCP1252(s string) string
- func Unescape(s string) ([]byte, error)
- func ValidationTimingStats(dur1, dur2, dur float64)
- func Write(ctx *Context) (err error)
- func WriteImage(xRefTable *XRefTable, fileName string, sd *StreamDict, thumb bool, objNr int) (string, error)
- func WriteImageToDisk(outDir, fileName string) func(Image, bool, int) error
- func WriteIncrement(ctx *Context) error
- func WriteReader(path string, r io.Reader) error
- type Anchor
- type AnnotMap
- type Annotation
- type AnnotationFlags
- type AnnotationRenderer
- type AnnotationType
- type Array
- type Attachment
- type Bookmark
- type Boolean
- type Box
- type ByteSize
- type CommandMode
- type Configuration
- type Context
- func CollectPages(ctx *Context, collectedPages []int) (*Context, error)
- func CreateContext(xRefTable *XRefTable, conf *Configuration) *Context
- func CreateContextWithXRefTable(conf *Configuration, pageDim *Dim) (*Context, error)
- func NewContext(rs io.ReadSeeker, conf *Configuration) (*Context, error)
- func Read(rs io.ReadSeeker, conf *Configuration) (*Context, error)
- func ReadFile(inFile string, conf *Configuration) (*Context, error)
- func (ctx *Context) AddAnnotation(pageDictIndRef *IndirectRef, pageDict Dict, pageNr int, ar AnnotationRenderer, ...) (bool, error)
- func (ctx *Context) AddAnnotations(selectedPages IntSet, ar AnnotationRenderer, incr bool) (bool, error)
- func (ctx *Context) AddAnnotationsMap(m map[int][]AnnotationRenderer, incr bool) (bool, error)
- func (ctx *Context) AddAttachment(a Attachment, useCollection bool) error
- func (ctx *Context) AddBookmarks(bms []Bookmark) error
- func (ctx *Context) AddPageBoundaries(selectedPages IntSet, pb *PageBoundaries) error
- func (ctx *Context) AddWatermarks(selectedPages IntSet, wm *Watermark) error
- func (ctx *Context) AddWatermarksMap(m map[int]*Watermark) error
- func (ctx *Context) AddWatermarksSliceMap(m map[int][]*Watermark) error
- func (ctx *Context) AnnotationObjNrs() ([]int, error)
- func (ctx *Context) BookletFromPDF(selectedPages IntSet, nup *NUp) error
- func (ctx *Context) BookmarksForOutline() ([]Bookmark, error)
- func (ctx *Context) BookmarksForOutlineItem(item *IndirectRef, parent *Bookmark) ([]Bookmark, error)
- func (ctx *Context) ColorSpaceString(sd *StreamDict) (string, error)
- func (ctx *Context) Crop(selectedPages IntSet, b *Box) error
- func (ctx *Context) DetectPageTreeWatermarks() error
- func (ctx *Context) DetectWatermarks() error
- func (ctx *Context) ExtractAttachment(a Attachment) (*Attachment, error)
- func (ctx *Context) ExtractAttachments(ids []string) ([]Attachment, error)
- func (ctx *Context) ExtractFont(objNr int) (*Font, error)
- func (ctx *Context) ExtractImage(sd *StreamDict, thumb bool, resourceId string, objNr int, stub bool) (*Image, error)
- func (ctx *Context) ExtractMetadata() ([]Metadata, error)
- func (ctx *Context) ExtractPage(pageNr int) (*Context, error)
- func (ctx *Context) ExtractPageContent(pageNr int) (io.Reader, error)
- func (ctx *Context) ExtractPageFonts(pageNr int) ([]Font, error)
- func (ctx *Context) ExtractPageImages(pageNr int, stub bool) ([]Image, error)
- func (ctx *Context) ExtractPages(pageNrs []int, usePgCache bool) (*Context, error)
- func (ctx *Context) FontObjNrs(pageNr int) []int
- func (ctx *Context) ImageObjNrs(pageNr int) []int
- func (ctx *Context) InfoDigest(selectedPages IntSet) ([]string, error)
- func (ctx *Context) ListAttachments() ([]Attachment, error)
- func (ctx *Context) ListImages(selectedPages IntSet) ([]string, error)
- func (ctx *Context) ListPageBoundaries(selectedPages IntSet, wantPB *PageBoundaries) ([]string, error)
- func (ctx *Context) NUpFromPDF(selectedPages IntSet, nup *NUp) error
- func (ctx *Context) PageObjFromDestinationArray(dest Object) (*IndirectRef, error)
- func (ctx *Context) RemoveAnnotations(selectedPages IntSet, ids []string, objNrs []int, incr bool) (bool, error)
- func (ctx *Context) RemoveAnnotationsFromPageDict(ids []string, objNrSet IntSet, pageDict Dict, pageDictObjNr, pageNr int, ...) (bool, error)
- func (ctx *Context) RemoveAttachment(a Attachment) (bool, error)
- func (ctx *Context) RemoveAttachments(ids []string) (bool, error)
- func (ctx *Context) RemovePageBoundaries(selectedPages IntSet, pb *PageBoundaries) error
- func (ctx *Context) RemoveWatermarks(selectedPages IntSet) error
- func (ctx *Context) ResetWriteContext()
- func (ctx *Context) SearchEmbeddedFilesNameTreeNodeByContent(s string) (*string, Object, error)
- func (ctx *Context) StreamLength(sd *StreamDict) (int64, error)
- func (ctx *Context) String() string
- type Corner
- type Dict
- func (d Dict) ArrayEntry(key string) Array
- func (d Dict) BooleanEntry(key string) *bool
- func (d Dict) Clone() Object
- func (d Dict) Delete(key string) (value Object)
- func (d Dict) DictEntry(key string) Dict
- func (d Dict) Entry(dictName, key string, required bool) (Object, error)
- func (d Dict) Find(key string) (value Object, found bool)
- func (d Dict) First() *int
- func (d Dict) HexLiteralEntry(key string) *HexLiteral
- func (d *Dict) Increment(key string) error
- func (d *Dict) IncrementBy(key string, i int) error
- func (d Dict) Index() Array
- func (d Dict) IndirectRefEntry(key string) *IndirectRef
- func (d Dict) Insert(key string, value Object) (ok bool)
- func (d Dict) InsertFloat(key string, value float32)
- func (d Dict) InsertInt(key string, value int)
- func (d Dict) InsertName(key, value string)
- func (d Dict) InsertString(key, value string)
- func (d Dict) Int64Entry(key string) *int64
- func (d Dict) IntEntry(key string) *int
- func (d Dict) IsLinearizationParmDict() bool
- func (d Dict) IsObjStm() bool
- func (d Dict) Len() int
- func (d Dict) Length() (*int64, *int)
- func (d Dict) N() *int
- func (d Dict) NameEntry(key string) *string
- func (d Dict) NewIDForPrefix(prefix string, i int) string
- func (d Dict) PDFString() string
- func (d Dict) Prev() *int64
- func (d Dict) Size() *int
- func (d Dict) StreamDictEntry(key string) *StreamDict
- func (d Dict) String() string
- func (d Dict) StringEntry(key string) *string
- func (d Dict) StringEntryBytes(key string) ([]byte, error)
- func (d Dict) StringLiteralEntry(key string) *StringLiteral
- func (d Dict) Subtype() *string
- func (d Dict) Type() *string
- func (d Dict) Update(key string, value Object)
- func (d Dict) W() Array
- type Dim
- type DisplayUnit
- type Enc
- type Float
- type Font
- type FontMap
- type FontObject
- type FontResource
- type HAlignment
- type HexLiteral
- type Image
- type ImageMap
- type ImageObject
- type ImageResource
- type Import
- type IndirectRef
- func CIDFontDescriptor(xRefTable *XRefTable, ttf font.TTFLight, fontName, baseFontName string, ...) (*IndirectRef, error)
- func CIDFontDict(xRefTable *XRefTable, ttf font.TTFLight, fontName, baseFontName string, ...) (*IndirectRef, error)
- func CIDSet(xRefTable *XRefTable, ttf font.TTFLight, indRef *IndirectRef) (*IndirectRef, error)
- func CIDWidths(xRefTable *XRefTable, ttf font.TTFLight, subFont bool, indRef *IndirectRef) (*IndirectRef, error)
- func CreateImageResource(xRefTable *XRefTable, r io.Reader, gray, sepia bool) (*IndirectRef, int, int, error)
- func EnsureFontDict(xRefTable *XRefTable, fontName string, subDict bool, indRef *IndirectRef) (*IndirectRef, error)
- func NewIndirectRef(objectNumber, generationNumber int) *IndirectRef
- func NewNUpPageForImage(xRefTable *XRefTable, fileName string, parentIndRef *IndirectRef, nup *NUp) (*IndirectRef, error)
- func NewPageForImage(xRefTable *XRefTable, r io.Reader, parentIndRef *IndirectRef, imp *Import) (*IndirectRef, error)
- type InheritedPageAttrs
- type IntSet
- type Integer
- type LineJoinStyle
- type LinkAnnotation
- type MarkupAnnotation
- type Matrix
- type Metadata
- type NUp
- func DefaultBookletConfig() *NUp
- func DefaultNUpConfig() *NUp
- func ImageBookletConfig(val int, desc string) (*NUp, error)
- func ImageGridConfig(rows, cols int, desc string) (*NUp, error)
- func ImageNUpConfig(val int, desc string) (*NUp, error)
- func PDFBookletConfig(val int, desc string) (*NUp, error)
- func PDFGridConfig(rows, cols int, desc string) (*NUp, error)
- func PDFNUpConfig(val int, desc string) (*NUp, error)
- type Name
- type Node
- func (n *Node) Add(xRefTable *XRefTable, k string, v Object) error
- func (n *Node) AddToLeaf(k string, v Object)
- func (n *Node) HandleLeaf(xRefTable *XRefTable, k string, v Object) error
- func (n Node) KeyList() ([]string, error)
- func (n Node) Process(xRefTable *XRefTable, handler func(*XRefTable, string, Object) error) error
- func (n *Node) Remove(xRefTable *XRefTable, k string) (empty, ok bool, err error)
- func (n Node) String() string
- func (n Node) Value(k string) (Object, bool)
- type Object
- type ObjectStreamDict
- type OptimizationContext
- func (oc *OptimizationContext) DuplicateFontObjectsString() (int, string)
- func (oc *OptimizationContext) DuplicateImageObjectsString() (int, string)
- func (oc *OptimizationContext) DuplicateInfoObjectsString() (int, string)
- func (oc *OptimizationContext) IsDuplicateFontObject(i int) bool
- func (oc *OptimizationContext) IsDuplicateImageObject(i int) bool
- func (oc *OptimizationContext) IsDuplicateInfoObject(i int) bool
- func (oc *OptimizationContext) NonReferencedObjsString() (int, string)
- type Orientation
- type PDFFilter
- type PDFImage
- type PDFStats
- type Page
- type PageBoundaries
- func (pb PageBoundaries) ArtBox() *Rectangle
- func (pb PageBoundaries) BleedBox() *Rectangle
- func (pb PageBoundaries) CropBox() *Rectangle
- func (pb PageBoundaries) MediaBox() *Rectangle
- func (pb *PageBoundaries) ResolveBox(s string) error
- func (pb *PageBoundaries) SelectAll()
- func (pb PageBoundaries) String() string
- func (pb PageBoundaries) TrimBox() *Rectangle
- type PageResourceNames
- type PgAnnots
- type Point
- type PopupAnnotation
- type QuadLiteral
- type QuadPoints
- type ReadContext
- func (rc *ReadContext) IsObjectStreamObject(i int) bool
- func (rc *ReadContext) IsXRefStreamObject(i int) bool
- func (rc *ReadContext) LogStats(optimized bool)
- func (rc *ReadContext) ObjectStreamsString() (int, string)
- func (rc *ReadContext) ReadFileSize() int
- func (rc *ReadContext) XRefStreamsString() (int, string)
- type Rectangle
- func ApplyBox(boxName string, b *Box, d Dict, parent *Rectangle) *Rectangle
- func CalcBoundingBox(s string, x, y float64, fontName string, fontSize int) *Rectangle
- func Rect(llx, lly, urx, ury float64) *Rectangle
- func RectForArray(a Array) (*Rectangle, error)
- func RectForDim(width, height float64) *Rectangle
- func RectForFormat(f string) *Rectangle
- func RectForWidthAndHeight(llx, lly, width, height float64) *Rectangle
- func WriteColumn(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor, width float64) *Rectangle
- func WriteColumnAnchored(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor, a Anchor, ...) *Rectangle
- func WriteMultiLine(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor) *Rectangle
- func WriteMultiLineAnchored(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor, a Anchor) *Rectangle
- func (r Rectangle) Array() Array
- func (r *Rectangle) Center() Point
- func (r Rectangle) CroppedCopy(margin float64) *Rectangle
- func (r Rectangle) Dimensions() Dim
- func (r Rectangle) Equals(r2 Rectangle) bool
- func (r Rectangle) FitsWithin(r2 *Rectangle) bool
- func (r Rectangle) Format(unit DisplayUnit) string
- func (r Rectangle) ScaledHeight(w float64) float64
- func (r Rectangle) ScaledWidth(h float64) float64
- func (r *Rectangle) Translate(dx, dy float64)
- type RelPosition
- type RenderMode
- type Resource
- type SimpleColor
- type StreamDict
- type StringLiteral
- type StringSet
- type TextAnnotation
- type TextDescriptor
- type VAlignment
- type Version
- type Watermark
- func DefaultWatermarkConfig() *Watermark
- func ParseImageWatermarkDetails(fileName, desc string, onTop bool, u DisplayUnit) (*Watermark, error)
- func ParsePDFWatermarkDetails(fileName, desc string, onTop bool, u DisplayUnit) (*Watermark, error)
- func ParseTextWatermarkDetails(text, desc string, onTop bool, u DisplayUnit) (*Watermark, error)
- type WriteContext
- type XRefStreamDict
- type XRefTable
- func (xRefTable *XRefTable) Annotation(d Dict) (AnnotationRenderer, error)
- func (xRefTable *XRefTable) AppendContent(pageDict Dict, bb []byte) error
- func (xRefTable *XRefTable) BindNameTrees() error
- func (xRefTable *XRefTable) Catalog() (Dict, error)
- func (xRefTable *XRefTable) CatalogHasPieceInfo() (bool, error)
- func (xRefTable *XRefTable) ColorSpaceComponents(sd *StreamDict) (int, error)
- func (xRefTable *XRefTable) DeleteObjectGraph(o Object) error
- func (xRefTable *XRefTable) Dereference(o Object) (Object, error)
- func (xRefTable *XRefTable) DereferenceArray(o Object) (Array, error)
- func (xRefTable *XRefTable) DereferenceBoolean(o Object, sinceVersion Version) (*Boolean, error)
- func (xRefTable *XRefTable) DereferenceCSVSafeText(o Object) (string, error)
- func (xRefTable *XRefTable) DereferenceDict(o Object) (Dict, error)
- func (xRefTable *XRefTable) DereferenceDictEntry(d Dict, key string) (Object, error)
- func (xRefTable *XRefTable) DereferenceInteger(o Object) (*Integer, error)
- func (xRefTable *XRefTable) DereferenceName(o Object, sinceVersion Version, validate func(string) bool) (n Name, err error)
- func (xRefTable *XRefTable) DereferenceNumber(o Object) (float64, error)
- func (xRefTable *XRefTable) DereferenceStreamDict(o Object) (*StreamDict, bool, error)
- func (xRefTable *XRefTable) DereferenceStringEntryBytes(d Dict, key string) ([]byte, error)
- func (xRefTable *XRefTable) DereferenceStringLiteral(o Object, sinceVersion Version, validate func(string) bool) (s StringLiteral, err error)
- func (xRefTable *XRefTable) DereferenceStringOrHexLiteral(obj Object, sinceVersion Version, validate func(string) bool) (s string, err error)
- func (xRefTable *XRefTable) DereferenceText(o Object) (string, error)
- func (xRefTable *XRefTable) EncryptDict() (Dict, error)
- func (xRefTable *XRefTable) EnsureCollection() error
- func (xRefTable *XRefTable) EnsurePageCount() error
- func (xRefTable *XRefTable) EnsureValidFreeList() error
- func (xRefTable *XRefTable) EnsureVersionForWriting()
- func (xRefTable *XRefTable) Exists(objNr int) bool
- func (xRefTable *XRefTable) Find(objNr int) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) FindObject(objNr int) (Object, error)
- func (xRefTable *XRefTable) FindTableEntry(objNr int, genNr int) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) FindTableEntryForIndRef(ir *IndirectRef) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) FindTableEntryLight(objNr int) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) Free(objNr int) (*XRefTableEntry, error)
- func (xRefTable *XRefTable) IDFirstElement() (id []byte, err error)
- func (xRefTable *XRefTable) IndRefForNewObject(obj Object) (*IndirectRef, error)
- func (xRefTable *XRefTable) InsertAndUseRecycled(xRefTableEntry XRefTableEntry) (objNr int, err error)
- func (xRefTable *XRefTable) InsertBlankPages(pages IntSet, before bool) error
- func (xRefTable *XRefTable) InsertNew(xRefTableEntry XRefTableEntry) (objNr int)
- func (xRefTable *XRefTable) InsertObject(obj Object) (objNr int, err error)
- func (xRefTable *XRefTable) IsLinearizationObject(i int) bool
- func (xRefTable *XRefTable) IsValid(ir IndirectRef) (bool, error)
- func (xRefTable *XRefTable) LinearizationObjsString() (int, string)
- func (xRefTable *XRefTable) ListAnnotations(selectedPages IntSet) (int, []string, error)
- func (xRefTable *XRefTable) LocateNameTree(nameTreeName string, ensure bool) error
- func (xRefTable *XRefTable) MissingObjects() (int, *string)
- func (xRefTable *XRefTable) NamesDict() (Dict, error)
- func (xRefTable *XRefTable) NewEmbeddedFileStreamDict(filename string) (*IndirectRef, error)
- func (xRefTable *XRefTable) NewEmbeddedStreamDict(r io.Reader, modDate time.Time) (*IndirectRef, error)
- func (xRefTable *XRefTable) NewFileSpecDict(f, uf, desc string, indRefStreamDict IndirectRef) (Dict, error)
- func (xRefTable *XRefTable) NewFileSpectDictForAttachment(a Attachment) (*IndirectRef, error)
- func (xRefTable *XRefTable) NewSoundStreamDict(filename string, samplingRate int, fileSpecDict Dict) (*IndirectRef, error)
- func (xRefTable *XRefTable) NewStreamDictForBuf(buf []byte) (*StreamDict, error)
- func (xRefTable *XRefTable) NewStreamDictForFile(filename string) (*StreamDict, error)
- func (xRefTable *XRefTable) NextForFree(objNr int) (int, error)
- func (xRefTable *XRefTable) Outlines() (*IndirectRef, error)
- func (xRefTable *XRefTable) PageBoundaries() ([]PageBoundaries, error)
- func (xRefTable *XRefTable) PageContent(d Dict) ([]byte, error)
- func (xRefTable *XRefTable) PageDict(pageNr int, consolidateRes bool) (Dict, *IndirectRef, *InheritedPageAttrs, error)
- func (xRefTable *XRefTable) PageDictIndRef(page int) (*IndirectRef, error)
- func (xRefTable *XRefTable) PageDims() ([]Dim, error)
- func (xRefTable *XRefTable) PageNumber(pageObjNr int) (int, error)
- func (xRefTable *XRefTable) Pages() (*IndirectRef, error)
- func (xRefTable *XRefTable) ParseRootVersion() (v *string, err error)
- func (xRefTable *XRefTable) RemoveCollection() error
- func (xRefTable *XRefTable) RemoveEmbeddedFilesNameTree() error
- func (xRefTable *XRefTable) RemoveNameTree(nameTreeName string) error
- func (xRefTable *XRefTable) SetValid(ir IndirectRef) error
- func (xRefTable *XRefTable) UndeleteObject(objectNumber int) error
- func (xRefTable *XRefTable) ValidateVersion(element string, sinceVersion Version) error
- func (xRefTable *XRefTable) Version() Version
- func (xRefTable *XRefTable) VersionString() string
- type XRefTableEntry
Constants ¶
const ( DeviceGrayCS = "DeviceGray" DeviceRGBCS = "DeviceRGB" DeviceCMYKCS = "DeviceCMYK" CalGrayCS = "CalGray" CalRGBCS = "CalRGB" LabCS = "Lab" ICCBasedCS = "ICCBased" IndexedCS = "Indexed" PatternCS = "Pattern" SeparationCS = "Separation" DeviceNCS = "DeviceN" )
PDF defines the following Color Spaces:
const ( // ValidationStrict ensures 100% compliance with the spec (PDF 32000-1:2008). ValidationStrict int = iota // ValidationRelaxed ensures PDF compliance based on frequently encountered validation errors. ValidationRelaxed // ValidationNone bypasses validation. ValidationNone )
const ( // StatsFileNameDefault is the standard stats filename. StatsFileNameDefault = "stats.csv" // PermissionsAll enables all user access permission bits. PermissionsAll int16 = -1 // 0xFFFF // PermissionsPrint disables all user access permissions bits except for printing. PermissionsPrint int16 = -1849 // 0xF8C7 // PermissionsNone disables all user access permissions bits. PermissionsNone int16 = -3901 // 0xF0C3 )
const ( RightDown orientation = iota DownRight LeftDown DownLeft )
These are the defined anchors for relative positioning.
const ( DegToRad = math.Pi / 180 RadToDeg = 180 / math.Pi )
const ( WMText = iota WMImage WMPDF )
Watermark mode
const ( NoDiagonal = iota DiagonalLLToUR DiagonalULToLR )
Rotation along one of 2 diagonals
const ( RootVersion = iota RootExtensions RootPageLabels RootNames RootDests RootViewerPrefs RootPageLayout RootPageMode RootOutlines RootThreads RootOpenAction RootAA RootURI RootAcroForm RootMetadata RootStructTreeRoot RootMarkInfo RootLang RootSpiderInfo RootOutputIntents RootPieceInfo RootOCProperties RootPerms RootLegal RootRequirements RootCollection RootNeedsRendering )
The PDF root object fields.
const ( PageLastModified = iota PageResources PageMediaBox PageCropBox PageBleedBox PageTrimBox PageArtBox PageBoxColorInfo PageContents PageRotate PageGroup PageThumb PageB PageDur PageTrans PageAnnots PageAA PageMetadata PagePieceInfo PageStructParents PageID PagePZ PageSeparationInfo PageTabs PageTemplateInstantiated PagePresSteps PageUserUnit PageVP )
The PDF page object fields.
const ( EolLF = "\x0A" EolCR = "\x0D" EolCRLF = "\x0D\x0A" )
Supported line delimiters
const FreeHeadGeneration = 65535
FreeHeadGeneration is the predefined generation number for the head of the free list.
const (
// ObjectStreamMaxObjects limits the number of objects within an object stream written.
ObjectStreamMaxObjects = 100
)
Variables ¶
var ( Black = SimpleColor{} White = SimpleColor{R: 1, G: 1, B: 1} LightGray = SimpleColor{.9, .9, .9} Gray = SimpleColor{.5, .5, .5} DarkGray = SimpleColor{.3, .3, .3} Red = SimpleColor{1, 0, 0} Green = SimpleColor{0, 1, 0} Blue = SimpleColor{0, 0, 1} )
Some popular colors.
var AnnotTypeStrings = map[AnnotationType]string{ AnnText: "Text", AnnLink: "Link", AnnFreeText: "FreeText", AnnLine: "Line", AnnSquare: "Square", AnnCircle: "Circle", AnnPolygon: "Polygon", AnnPolyLine: "PolyLine", AnnHighLight: "HighLight", AnnUnderline: "Underline", AnnSquiggly: "Squiggly", AnnStrikeOut: "StrikeOut", AnnStamp: "Stamp", AnnCaret: "Caret", AnnInk: "Ink", AnnPopup: "Popup", AnnFileAttachment: "FileAttachment", AnnSound: "Sound", AnnMovie: "Movie", AnnWidget: "Widget", AnnScreen: "Screen", AnnPrinterMark: "PrinterMark", AnnTrapNet: "TrapNet", AnnWatermark: "Watermark", Ann3D: "3D", AnnRedact: "Redact", }
AnnotTypeStrings manages string representations for annotation types.
var ConfigPath string = "default"
ConfigPath defines the location of pdfcpu's configuration directory. If set to a file path, pdfcpu will ensure the config dir at this location. Other possible values:
default: Ensure config dir at default location disable: Disable config dir usage
var (
ErrInvalidColor = errors.New("pdfcpu: invalid color constant")
)
var ErrInvalidUTF16BE = errors.New("pdfcpu: invalid UTF-16BE detected")
ErrInvalidUTF16BE represents an error that gets raised for invalid UTF-16BE byte sequences.
var (
ErrUnknownEncryption = errors.New("pdfcpu: PDF 2.0 encryption not supported")
)
var (
ErrUnsupported16BPC = errors.New("unsupported 16 bits per component")
)
Errors to be identified.
var (
ErrWrongPassword = errors.New("pdfcpu: please provide the correct password")
)
var PaperSize = map[string]*Dim{}/* 150 elements not displayed */
PaperSize is a map of known paper sizes in user units (=72 dpi pixels).
var VersionStr = "v0.3.13 dev"
VersionStr is the current pdfcpu version.
Functions ¶
func AddPages ¶ added in v0.13.4
AddPages adds pages and corresponding resources from otherXRefTable to xRefTable.
func AnchorPosition ¶ added in v0.13.4
func AppendPageTree ¶ added in v0.1.20
func AppendPageTree(d1 *IndirectRef, countd1 int, d2 Dict) error
AppendPageTree appends a pagetree d1 to page tree d2.
func AppendStatsFile ¶
AppendStatsFile appends a stats line for this xRefTable to the configured csv file name.
func BestFitRectIntoRect ¶ added in v0.13.4
func BookletFromImages ¶ added in v0.13.4
func BookletFromImages(ctx *Context, fileNames []string, nup *NUp, pagesDict Dict, pagesIndRef *IndirectRef) error
BookletFromImages creates a booklet version of the image sequence represented by fileNames.
func CP1252ToUTF8 ¶ added in v0.13.4
CP1252ToUTF8 converts CP1252 to UTF-8.
func CreatePage ¶ added in v0.13.4
func CreatePage( xRefTable *XRefTable, parentPageIndRef IndirectRef, p Page, fonts map[string]IndirectRef, fields *Array, formFontIDs map[string]string) (*IndirectRef, Dict, error)
func CreateTestPageContent ¶ added in v0.13.4
func CreateTestPageContent(p Page)
CreateTestPageContent draws a test grid.
func DateString ¶ added in v0.1.16
DateString returns a string representation of t.
func DecodeUTF16String ¶
DecodeUTF16String decodes a UTF16BE string from a hex string.
func DecodeUTF8ToByte ¶ added in v0.13.4
func DrawGrid ¶ added in v0.13.4
func DrawGrid(w io.Writer, x, y int, r *Rectangle, strokeCol SimpleColor, fillCol *SimpleColor)
DrawGrid draws an x * y grid on r using strokeCol and fillCol.
func DrawHairCross ¶ added in v0.13.4
DrawHairCross draw a haircross with origin x/y.
func DrawLine ¶ added in v0.13.4
func DrawLine(w io.Writer, xp, yp, xq, yq float64, lineWidth float64, strokeColor *SimpleColor, style *LineJoinStyle)
DrawLine draws the path from P to Q using lineWidth, strokeColor and style.
func DrawLineSimple ¶ added in v0.13.4
DrawLineSimple draws the path from P to Q.
func DrawRect ¶ added in v0.13.4
func DrawRect(w io.Writer, r *Rectangle, lineWidth float64, strokeColor *SimpleColor, style *LineJoinStyle)
DrawRect strokes a rectangular path for r using lineWidth, strokeColor and style.
func DrawRectSimple ¶ added in v0.13.4
DrawRectSimple strokes a rectangular path for r.
func EncodeUTF16String ¶ added in v0.13.4
func EnsureDefaultConfigAt ¶ added in v0.13.4
EnsureDefaultConfigAt tries to load the default configuration from path. If path/pdfcpu/config.yaml is not found, it will be created.
func EqualObjects ¶ added in v0.13.4
func FillRect ¶ added in v0.13.4
func FillRect(w io.Writer, r *Rectangle, lineWidth float64, strokeCol *SimpleColor, fillCol SimpleColor, style *LineJoinStyle)
FillRect fills a rectangular path for r using lineWidth, strokeCol, fillCol and style.
func FillRectNoBorder ¶ added in v0.13.4
func FillRectNoBorder(w io.Writer, r *Rectangle, fillCol SimpleColor)
FillRectNoBorder fills a rectangular path for r using fillCol.
func HexLiteralToString ¶
func HexLiteralToString(hl HexLiteral) (string, error)
HexLiteralToString returns a possibly UTF16 encoded string for a hex string.
func ImageFileName ¶ added in v0.13.4
ImageFileName returns true for supported image file types.
func ImageFileNames ¶ added in v0.13.4
ImageFileNames returns a slice of image file names contained in dir.
func IndRefsForUserfontUpdate ¶ added in v0.13.4
func IndRefsForUserfontUpdate(xRefTable *XRefTable, d Dict, font *FontResource) error
func IntMemberOf ¶ added in v0.1.16
IntMemberOf returns true if list contains i.
func IsStringUTF16BE ¶
IsStringUTF16BE checks a string for Big Endian byte order BOM.
func KeywordsAdd ¶ added in v0.13.4
KeywordsAdd adds keywords to the document info dict. Returns true if at least one keyword was added.
func KeywordsList ¶ added in v0.13.4
KeywordsList returns a list of keywords as recorded in the document info dict.
func KeywordsRemove ¶ added in v0.13.4
KeywordsRemove deletes keywords from the document info dict. Returns true if at least one keyword was removed.
func MergeXRefTables ¶
MergeXRefTables merges Context ctxSource into ctxDest by appending its page tree.
func ModifyPageContent ¶ added in v0.13.4
func ModifyPageContent( xRefTable *XRefTable, dIndRef IndirectRef, d, res Dict, p Page, fonts map[string]IndirectRef, fields *Array, formFontIDs map[string]string) error
func NUpFromMultipleImages ¶ added in v0.13.4
func NUpFromMultipleImages(ctx *Context, fileNames []string, nup *NUp, pagesDict Dict, pagesIndRef *IndirectRef) error
NUpFromMultipleImages creates pages in NUp-style rendering each image once.
func NUpFromOneImage ¶ added in v0.13.4
func NUpFromOneImage(ctx *Context, fileName string, nup *NUp, pagesDict Dict, pagesIndRef *IndirectRef) error
NUpFromOneImage creates one page with instances of one image.
func NormalizeCoord ¶ added in v0.13.4
NormalizeCoord transfers P(x,y) from pdfcpu user space into PDF user space, which uses a coordinate system with origin in the lower left corner of r.
pdfcpu user space coordinate systems have the origin in one of four corners of r:
LowerLeft corner (default = PDF user space)
x extends to the right, y extends upward
LowerRight corner:
x extends to the left, y extends upward
UpperLeft corner:
x extends to the right, y extends downward
UpperRight corner:
x extends to the left, y extends downward
func NormalizeOffset ¶ added in v0.13.4
Normalize offset transfers x and y into offsets in the PDF user space.
func OptimizeXRefTable ¶
OptimizeXRefTable optimizes an xRefTable by locating and getting rid of redundant embedded fonts and images.
func ParseNUpDetails ¶ added in v0.1.21
ParseNUpDetails parses a NUp command string into an internal structure.
func ParseNUpGridDefinition ¶ added in v0.1.21
ParseNUpGridDefinition parses NUp grid dimensions into an internal structure.
func ParseNUpValue ¶ added in v0.1.21
ParseNUpValue parses the NUp value into an internal structure.
func Permissions ¶
Permissions returns a list of set permissions.
func PropertiesAdd ¶ added in v0.13.4
PropertiesAdd adds properties into the document info dict. Returns true if at least one property was added.
func PropertiesList ¶ added in v0.13.4
PropertiesList returns a list of document properties as recorded in the document info dict.
func PropertiesRemove ¶ added in v0.13.4
PropertiesRemove deletes specified properties. Returns true if at least one property was removed.
func RenderImage ¶ added in v0.13.4
func RenderImage(xRefTable *XRefTable, sd *StreamDict, thumb bool, resourceName string, objNr int) (io.Reader, string, error)
RenderImage returns a reader for a decoded image stream.
func ResolveWMTextString ¶ added in v0.13.4
func RotatePages ¶ added in v0.1.20
RotatePages rotates all selected pages by a multiple of 90 degrees.
func SetFillColor ¶ added in v0.13.4
func SetFillColor(w io.Writer, c SimpleColor)
SetFillColor sets the fill color.
func SetLineJoinStyle ¶ added in v0.13.4
func SetLineJoinStyle(w io.Writer, s LineJoinStyle)
SetLineJoinStyle sets the line join style for stroking operations.
func SetLineWidth ¶ added in v0.13.4
SetLineWidth sets line width for stroking operations.
func SetStrokeColor ¶ added in v0.13.4
func SetStrokeColor(w io.Writer, c SimpleColor)
SetStrokeColor sets the stroke color.
func SplitMultilineStr ¶ added in v0.13.4
func StringLiteralToString ¶
func StringLiteralToString(sl StringLiteral) (string, error)
StringLiteralToString returns the best possible string rep for a string literal.
func TimingStats ¶ added in v0.1.18
TimingStats prints processing time stats for an operation.
func UTF8ToCP1252 ¶ added in v0.13.4
UTF8ToCP1252 converts UTF-8 to CP1252.
func ValidationTimingStats ¶ added in v0.1.18
func ValidationTimingStats(dur1, dur2, dur float64)
ValidationTimingStats prints processing time stats for validation.
func Write ¶ added in v0.1.18
Write generates a PDF file for the cross reference table contained in Context.
func WriteImage ¶ added in v0.1.16
func WriteImage(xRefTable *XRefTable, fileName string, sd *StreamDict, thumb bool, objNr int) (string, error)
WriteImage writes a PDF image object to disk.
func WriteImageToDisk ¶ added in v0.13.4
WriteImageToDisk returns a closure for writing img to disk.
func WriteIncrement ¶ added in v0.13.4
WriteIncrement writes a PDF increment..
Types ¶
type Anchor ¶ added in v0.13.4
type Anchor int
const ( TopLeft Anchor = iota TopCenter TopRight Left Center // default Right BottomLeft BottomCenter BottomRight Full // special case, no anchor needed, imageSize = pageSize )
These are the defined anchors for relative positioning.
func ParseAnchor ¶ added in v0.13.4
type AnnotMap ¶ added in v0.13.4
type AnnotMap map[string]AnnotationRenderer
AnnotMap represents annotations by object number of the corresponding annotation dict.
type Annotation ¶ added in v0.13.4
type Annotation struct { SubType AnnotationType // The type of annotation that this dictionary describes. Rect Rectangle // The annotation rectangle, defining the location of the annotation on the page in default user space units. Contents string // Text that shall be displayed for the annotation. P *IndirectRef // An indirect reference to the page object with which this annotation is associated. NM string // (Since V1.4) The annotation name, a text string uniquely identifying it among all the annotations on its page. ModDate string // The date and time when the annotation was most recently modified. F AnnotationFlags // A set of flags specifying various characteristics of the annotation. C *SimpleColor // The background color of the annotation’s icon when closed. }
Annotation represents a PDF annnotation.
func NewAnnotation ¶ added in v0.13.4
func NewAnnotation( typ AnnotationType, rect Rectangle, contents string, pageIndRef *IndirectRef, nm string, f AnnotationFlags, backgrCol *SimpleColor) Annotation
NewAnnotation returns a new annotation.
func NewAnnotationForRawType ¶ added in v0.13.4
func NewAnnotationForRawType( typ string, rect Rectangle, contents string, pageIndRef *IndirectRef, nm string, f AnnotationFlags, backgrCol *SimpleColor) Annotation
NewAnnotationForRawType returns a new annotation of a specific type.
func (Annotation) ContentString ¶ added in v0.13.4
func (ann Annotation) ContentString() string
ContentString returns a string representation of ann's contents.
func (Annotation) ID ¶ added in v0.13.4
func (ann Annotation) ID() string
ID returns the annotation id.
func (Annotation) RectString ¶ added in v0.13.4
func (ann Annotation) RectString() string
RectString returns ann's positioning rectangle.
func (Annotation) RenderDict ¶ added in v0.13.4
func (ann Annotation) RenderDict(pageIndRef IndirectRef) Dict
RenderDict is a stub for behavior that renders ann's PDF dict.
func (Annotation) Type ¶ added in v0.13.4
func (ann Annotation) Type() AnnotationType
Type returns ann's type.
func (Annotation) TypeString ¶ added in v0.13.4
func (ann Annotation) TypeString() string
TypeString returns a string representation of ann's type.
type AnnotationFlags ¶ added in v0.13.4
type AnnotationFlags int
AnnotationFlags represents the PDF annotation flags.
const ( AnnInvisible AnnotationFlags = 1 << iota AnnHidden AnnPrint AnnNoZoom AnnNoRotate AnnNoView AnnReadOnly AnnLocked AnnToggleNoView AnnLockedContents )
type AnnotationRenderer ¶ added in v0.13.4
type AnnotationRenderer interface { RenderDict(pageIndRef IndirectRef) Dict Type() AnnotationType RectString() string ID() string ContentString() string }
AnnotationRenderer is the interface for PDF annotations.
type AnnotationType ¶ added in v0.13.4
type AnnotationType int
AnnotationType represents the various PDF annotation types.
const ( AnnText AnnotationType = iota AnnLink AnnFreeText AnnLine AnnSquare AnnCircle AnnPolygon AnnPolyLine AnnHighLight AnnUnderline AnnSquiggly AnnStrikeOut AnnStamp AnnCaret AnnInk AnnPopup AnnFileAttachment AnnSound AnnMovie AnnWidget AnnScreen AnnPrinterMark AnnTrapNet AnnWatermark Ann3D AnnRedact )
type Array ¶ added in v0.1.16
type Array []Object
Array represents a PDF array object.
func NewIntegerArray ¶
NewIntegerArray returns a PDFArray with Integer entries.
func NewNameArray ¶
NewNameArray returns a PDFArray with Name entries.
func NewNumberArray ¶
NewNumberArray returns a PDFArray with Float entries.
func NewStringArray ¶
NewStringArray returns a PDFArray with StringLiteral entries.
func (Array) FloatNumber ¶ added in v0.13.4
FloatNumber returns the element at index ind of a numbers array and returns a float64.
type Attachment ¶ added in v0.13.4
type Attachment struct { io.Reader // attachment data ID string // id FileName string // filename Desc string // description ModTime *time.Time // time of last modification (optional) }
Attachment is a Reader representing a PDF attachment.
func (Attachment) String ¶ added in v0.13.4
func (a Attachment) String() string
type Bookmark ¶ added in v0.13.4
type Bookmark struct { Title string PageFrom int PageThru int // for extraction only; >= pageFrom and reaches until before pageFrom of the next bookmark. Bold bool Italic bool Color *SimpleColor Children []Bookmark Parent *Bookmark }
Bookmark represents an outline item tree.
type Boolean ¶ added in v0.1.16
type Boolean bool
Boolean represents a PDF boolean object.
type Box ¶ added in v0.13.4
type Box struct { Rect *Rectangle // Rectangle in user space. Inherited bool // Media box and Crop box may be inherited. RefBox string // Use position of another box, // Margins to parent box in points. // Relative to parent box if 0 < x < 0.5 MLeft, MRight float64 MTop, MBot float64 // Relative position within parent box Dim *Dim // dimensions Pos Anchor // position anchor within parent box, one of tl,tc,tr,l,c,r,bl,bc,br. Dx, Dy int // anchor offset }
Box is a rectangular region in user space expressed either explicitly via Rect or implicitly via margins applied to the containing parent box. Media box serves as parent box for crop box. Crop box serves as parent box for trim, bleed and art box.
type CommandMode ¶
type CommandMode int
CommandMode specifies the operation being executed.
const ( VALIDATE CommandMode = iota OPTIMIZE SPLIT MERGECREATE MERGEAPPEND EXTRACTIMAGES EXTRACTFONTS EXTRACTPAGES EXTRACTCONTENT EXTRACTMETADATA TRIM ADDATTACHMENTS ADDATTACHMENTSPORTFOLIO REMOVEATTACHMENTS EXTRACTATTACHMENTS LISTATTACHMENTS SETPERMISSIONS LISTPERMISSIONS ENCRYPT DECRYPT CHANGEUPW CHANGEOPW ADDWATERMARKS REMOVEWATERMARKS IMPORTIMAGES INSERTPAGESBEFORE INSERTPAGESAFTER REMOVEPAGES ROTATE NUP BOOKLET INFO CHEATSHEETSFONTS INSTALLFONTS LISTFONTS LISTKEYWORDS ADDKEYWORDS REMOVEKEYWORDS LISTPROPERTIES ADDPROPERTIES REMOVEPROPERTIES COLLECT CROP LISTBOXES ADDBOXES REMOVEBOXES LISTANNOTATIONS ADDANNOTATIONS REMOVEANNOTATIONS ADDBOOKMARKS LISTIMAGES CREATE )
The available commands.
type Configuration ¶
type Configuration struct { // Location of corresponding config.yml Path string // Check filename extensions. CheckFileNameExt bool // Enables PDF V1.5 compatible processing of object streams, xref streams, hybrid PDF files. Reader15 bool // Enables decoding of all streams (fontfiles, images..) for logging purposes. DecodeAllStreams bool // Validate against ISO-32000: strict or relaxed. ValidationMode int // Check for broken links in LinkedAnnotations/URIActions. ValidateLinks bool // End of line char sequence for writing. Eol string // Turns on object stream generation. // A signal for compressing any new non-stream-object into an object stream. // true enforces WriteXRefStream to true. // false does not prevent xRefStream generation. WriteObjectStream bool // Switches between xRefSection (<=V1.4) and objectStream/xRefStream (>=V1.5) writing. WriteXRefStream bool // Turns on stats collection. // TODO Decision - unused. CollectStats bool // A CSV-filename holding the statistics. StatsFileName string // Supplied user password. UserPW string UserPWNew *string // Supplied owner password. OwnerPW string OwnerPWNew *string // EncryptUsingAES ensures AES encryption. // true: AES encryption // false: RC4 encryption. EncryptUsingAES bool // AES:40,128,256 RC4:40,128 EncryptKeyLength int // Supplied user access permissions, see Table 22. Permissions int16 // Command being executed. Cmd CommandMode // Display unit in effect. Unit DisplayUnit // Timestamp format. TimestampFormat string // Buffersize for locating PDF header <= 100 HeaderBufSize int // Optimize duplicate content streams across pages. OptimizeDuplicateContentStreams bool }
Configuration of a Context.
func NewAESConfiguration ¶ added in v0.13.4
func NewAESConfiguration(userPW, ownerPW string, keyLength int) *Configuration
NewAESConfiguration returns a default configuration for AES encryption.
func NewDefaultConfiguration ¶
func NewDefaultConfiguration() *Configuration
NewDefaultConfiguration returns the default pdfcpu configuration.
func NewRC4Configuration ¶ added in v0.13.4
func NewRC4Configuration(userPW, ownerPW string, keyLength int) *Configuration
NewRC4Configuration returns a default configuration for RC4 encryption.
func (*Configuration) ApplyReducedFeatureSet ¶ added in v0.13.4
func (c *Configuration) ApplyReducedFeatureSet() bool
ApplyReducedFeatureSet returns true if complex entries like annotations shall not be written.
func (*Configuration) EolString ¶ added in v0.13.4
func (c *Configuration) EolString() string
EolString returns a string rep for the eol in effect.
func (Configuration) String ¶ added in v0.13.4
func (c Configuration) String() string
func (*Configuration) UnitString ¶ added in v0.13.4
func (c *Configuration) UnitString() string
UnitString returns a string rep for the display unit in effect.
func (*Configuration) ValidationModeString ¶
func (c *Configuration) ValidationModeString() string
ValidationModeString returns a string rep for the validation mode in effect.
type Context ¶ added in v0.1.16
type Context struct { *Configuration *XRefTable Read *ReadContext Optimize *OptimizationContext Write *WriteContext // contains filtered or unexported fields }
Context represents an environment for processing PDF files.
func CollectPages ¶ added in v0.13.4
CollectPages creates a new PDF Context for a custom PDF page sequence of the PDF represented by ctx.
func CreateContext ¶ added in v0.1.20
func CreateContext(xRefTable *XRefTable, conf *Configuration) *Context
CreateContext creates a Context for given cross reference table and configuration.
func CreateContextWithXRefTable ¶ added in v0.1.20
func CreateContextWithXRefTable(conf *Configuration, pageDim *Dim) (*Context, error)
CreateContextWithXRefTable creates a Context with an xRefTable without pages for given configuration.
func NewContext ¶ added in v0.1.16
func NewContext(rs io.ReadSeeker, conf *Configuration) (*Context, error)
NewContext initializes a new Context.
func Read ¶ added in v0.1.18
func Read(rs io.ReadSeeker, conf *Configuration) (*Context, error)
Read takes a readSeeker and generates a Context, an in-memory representation containing a cross reference table.
func ReadFile ¶ added in v0.1.18
func ReadFile(inFile string, conf *Configuration) (*Context, error)
ReadFile reads in a PDF file and builds an internal structure holding its cross reference table aka the Context.
func (*Context) AddAnnotation ¶ added in v0.13.4
func (ctx *Context) AddAnnotation(pageDictIndRef *IndirectRef, pageDict Dict, pageNr int, ar AnnotationRenderer, incr bool) (bool, error)
AddAnnotation adds ar to pageDict.
func (*Context) AddAnnotations ¶ added in v0.13.4
func (ctx *Context) AddAnnotations(selectedPages IntSet, ar AnnotationRenderer, incr bool) (bool, error)
AddAnnotations adds ar to selected pages.
func (*Context) AddAnnotationsMap ¶ added in v0.13.4
AddAnnotationsMap adds annotations in m to corresponding pages.
func (*Context) AddAttachment ¶ added in v0.13.4
func (ctx *Context) AddAttachment(a Attachment, useCollection bool) error
AddAttachment adds a.
func (*Context) AddBookmarks ¶ added in v0.13.4
AddBookmarks adds bms to ctx.
func (*Context) AddPageBoundaries ¶ added in v0.13.4
func (ctx *Context) AddPageBoundaries(selectedPages IntSet, pb *PageBoundaries) error
AddPageBoundaries adds page boundaries specified by pb for selected pages.
func (*Context) AddWatermarks ¶ added in v0.13.4
AddWatermarks adds watermarks to all pages selected.
func (*Context) AddWatermarksMap ¶ added in v0.13.4
AddWatermarksMap adds watermarks in m to corresponding pages.
func (*Context) AddWatermarksSliceMap ¶ added in v0.13.4
AddWatermarksSliceMap adds watermarks in m to corresponding pages.
func (*Context) AnnotationObjNrs ¶ added in v0.13.4
AnnotationObjNrs returns a list of object numbers representing known annotation dict indirect references.
func (*Context) BookletFromPDF ¶ added in v0.13.4
BookletFromPDF creates a booklet version of the PDF represented by xRefTable.
func (*Context) BookmarksForOutline ¶ added in v0.13.4
BookmarksForOutline returns all ctx bookmark information recursively.
func (*Context) BookmarksForOutlineItem ¶ added in v0.13.4
func (ctx *Context) BookmarksForOutlineItem(item *IndirectRef, parent *Bookmark) ([]Bookmark, error)
BookmarksForOutlineItem returns the bookmarks tree for an outline item.
func (*Context) ColorSpaceString ¶ added in v0.13.4
func (ctx *Context) ColorSpaceString(sd *StreamDict) (string, error)
ColorSpaceString returns a string representation for sd's colorspace.
func (*Context) DetectPageTreeWatermarks ¶ added in v0.13.4
DetectPageTreeWatermarks checks xRefTable's page tree for watermarks and records the result to xRefTable.Watermarked.
func (*Context) DetectWatermarks ¶ added in v0.13.4
DetectWatermarks checks ctx for watermarks and records the result to xRefTable.Watermarked.
func (*Context) ExtractAttachment ¶ added in v0.13.4
func (ctx *Context) ExtractAttachment(a Attachment) (*Attachment, error)
ExtractAttachment extracts a fully populated attachment.
func (*Context) ExtractAttachments ¶ added in v0.13.4
func (ctx *Context) ExtractAttachments(ids []string) ([]Attachment, error)
ExtractAttachments extracts attachments with id.
func (*Context) ExtractFont ¶ added in v0.13.4
ExtractFont extracts a font from font dict by objNr.
func (*Context) ExtractImage ¶ added in v0.13.4
func (ctx *Context) ExtractImage(sd *StreamDict, thumb bool, resourceId string, objNr int, stub bool) (*Image, error)
ExtractImage extracts an image from sd.
func (*Context) ExtractMetadata ¶ added in v0.13.4
ExtractMetadata returns all metadata of ctx.
func (*Context) ExtractPage ¶ added in v0.13.4
ExtractPage extracts pageNr into a new single page context.
func (*Context) ExtractPageContent ¶ added in v0.13.4
ExtractPageContent extracts the consolidated page content stream for pageNr.
func (*Context) ExtractPageFonts ¶ added in v0.13.4
ExtractPageFonts extracts all fonts used by pageNr.
func (*Context) ExtractPageImages ¶ added in v0.13.4
ExtractPageImages extracts all images used by pageNr. Optionally return stubs only.
func (*Context) ExtractPages ¶ added in v0.13.4
ExtractPages extracts pageNrs into a new single page context.
func (*Context) FontObjNrs ¶ added in v0.13.4
FontObjNrs returns all font dict objNrs for pageNr. Requires an optimized context.
func (*Context) ImageObjNrs ¶ added in v0.13.4
ImageObjNrs returns all image dict objNrs for pageNr. Requires an optimized context.
func (*Context) InfoDigest ¶ added in v0.13.4
InfoDigest returns info about ctx.
func (*Context) ListAttachments ¶ added in v0.13.4
func (ctx *Context) ListAttachments() ([]Attachment, error)
ListAttachments returns a slice of attachment stubs (attachment w/o data).
func (*Context) ListImages ¶ added in v0.13.4
ListImages returns a list of embedded images.
func (*Context) ListPageBoundaries ¶ added in v0.13.4
func (ctx *Context) ListPageBoundaries(selectedPages IntSet, wantPB *PageBoundaries) ([]string, error)
ListPageBoundaries lists page boundaries specified in wantPB for selected pages.
func (*Context) NUpFromPDF ¶ added in v0.13.4
NUpFromPDF creates an n-up version of the PDF represented by xRefTable.
func (*Context) PageObjFromDestinationArray ¶ added in v0.13.4
func (ctx *Context) PageObjFromDestinationArray(dest Object) (*IndirectRef, error)
PageObjFromDestinationArray return an IndirectRef for this destinations page object.
func (*Context) RemoveAnnotations ¶ added in v0.13.4
func (ctx *Context) RemoveAnnotations(selectedPages IntSet, ids []string, objNrs []int, incr bool) (bool, error)
RemoveAnnotations removes annotations for selected pages by id and object number. All annotations for selected pages are removed if neither ids nor objNrs are provided.
func (*Context) RemoveAnnotationsFromPageDict ¶ added in v0.13.4
func (ctx *Context) RemoveAnnotationsFromPageDict(ids []string, objNrSet IntSet, pageDict Dict, pageDictObjNr, pageNr int, incr bool) (bool, error)
RemoveAnnotationsFromPageDict removes an annotation by its object number annObjNr from pageDict.
func (*Context) RemoveAttachment ¶ added in v0.13.4
func (ctx *Context) RemoveAttachment(a Attachment) (bool, error)
RemoveAttachment removes a and returns true on success.
func (*Context) RemoveAttachments ¶ added in v0.13.4
RemoveAttachments removes attachments with given id and returns true if anything removed.
func (*Context) RemovePageBoundaries ¶ added in v0.13.4
func (ctx *Context) RemovePageBoundaries(selectedPages IntSet, pb *PageBoundaries) error
RemovePageBoundaries removes page boundaries specified by pb for selected pages. The media box is mandatory (inherited or not) and can't be removed. A removed crop box defaults to the media box. Removed trim/bleed/art boxes default to the crop box.
func (*Context) RemoveWatermarks ¶ added in v0.13.4
RemoveWatermarks removes watermarks for all pages selected.
func (*Context) ResetWriteContext ¶ added in v0.1.16
func (ctx *Context) ResetWriteContext()
ResetWriteContext prepares an existing WriteContext for a new file to be written.
func (*Context) SearchEmbeddedFilesNameTreeNodeByContent ¶ added in v0.13.4
SearchEmbeddedFilesNameTreeNodeByContent tries to identify a name tree by content.
func (*Context) StreamLength ¶ added in v0.13.4
func (ctx *Context) StreamLength(sd *StreamDict) (int64, error)
StreamLength returns sd's stream length.
type Corner ¶ added in v0.13.4
type Corner int
Corner represents one of four rectangle corners.
func ParseOrigin ¶ added in v0.13.4
type Dict ¶ added in v0.1.16
Dict represents a PDF dict object.
func (Dict) ArrayEntry ¶ added in v0.1.16
ArrayEntry expects and returns a Array entry for given key.
func (Dict) BooleanEntry ¶ added in v0.1.16
BooleanEntry expects and returns a BooleanEntry for given key.
func (Dict) DictEntry ¶ added in v0.1.16
DictEntry expects and returns a PDFDict entry for given key.
func (Dict) HexLiteralEntry ¶ added in v0.1.16
func (d Dict) HexLiteralEntry(key string) *HexLiteral
HexLiteralEntry returns a HexLiteral object for given key.
func (*Dict) IncrementBy ¶ added in v0.1.20
IncrementBy increments the integer value for given key by i.
func (Dict) IndirectRefEntry ¶ added in v0.1.16
func (d Dict) IndirectRefEntry(key string) *IndirectRef
IndirectRefEntry returns an indirectRefEntry for given key for this dictionary.
func (Dict) InsertFloat ¶ added in v0.1.16
InsertFloat adds a new float entry to this PDFDict.
func (Dict) InsertName ¶ added in v0.1.16
InsertName adds a new name entry to this PDFDict.
func (Dict) InsertString ¶ added in v0.1.16
InsertString adds a new string entry to this PDFDict.
func (Dict) Int64Entry ¶ added in v0.1.16
Int64Entry expects and returns a Integer entry representing an int64 value for given key.
func (Dict) IsLinearizationParmDict ¶ added in v0.1.16
IsLinearizationParmDict returns true if this dict has an int entry for key "Linearized".
func (Dict) Length ¶ added in v0.1.16
Length returns a *int64 for entry with key "Length". Stream length may be referring to an indirect object.
func (Dict) NewIDForPrefix ¶ added in v0.13.4
func (Dict) PDFString ¶ added in v0.1.16
PDFString returns a string representation as found in and written to a PDF file.
func (Dict) StreamDictEntry ¶ added in v0.1.16
func (d Dict) StreamDictEntry(key string) *StreamDict
StreamDictEntry expects and returns a StreamDict entry for given key. unused.
func (Dict) StringEntry ¶ added in v0.1.16
StringEntry expects and returns a StringLiteral entry for given key.
func (Dict) StringEntryBytes ¶ added in v0.1.16
StringEntryBytes returns the byte slice representing the string value for key.
func (Dict) StringLiteralEntry ¶ added in v0.1.16
func (d Dict) StringLiteralEntry(key string) *StringLiteral
StringLiteralEntry returns a StringLiteral object for given key.
func (Dict) Subtype ¶ added in v0.1.16
Subtype returns the value of the name entry for key "Subtype".
type Dim ¶ added in v0.13.4
type Dim struct {
Width, Height float64
}
Dim represents the dimensions of a rectangular view medium like a PDF page, a sheet of paper or an image grid in user space, inches, centimetres or millimetres.
func (Dim) AspectRatio ¶ added in v0.13.4
AspectRatio returns the relation between width and height.
func (Dim) ToCentimetres ¶ added in v0.13.4
ToCentimetres converts d to centimetres.
func (Dim) ToMillimetres ¶ added in v0.13.4
ToMillimetres converts d to centimetres.
type DisplayUnit ¶ added in v0.13.4
type DisplayUnit int
DisplayUnit is the metric unit used to output paper sizes.
const ( POINTS DisplayUnit = iota INCHES CENTIMETRES MILLIMETRES )
Options for display unit in effect.
type Enc ¶
type Enc struct {
O, U []byte
OE, UE []byte
Perms []byte
L, P, R, V int
Emd bool // encrypt meta data
ID []byte
}
Enc wraps around all defined encryption attributes.
type Float ¶ added in v0.1.16
type Float float64
Float represents a PDF float object.
type FontMap ¶ added in v0.13.4
type FontMap map[string]FontResource
FontMap maps font names to font resources.
type FontObject ¶
type FontObject struct { ResourceNames []string Prefix string FontName string FontDict Dict Data []byte Extension string }
FontObject represents a font used in a PDF file.
func (*FontObject) AddResourceName ¶
func (fo *FontObject) AddResourceName(resourceName string)
AddResourceName adds a resourceName referring to this font.
func (FontObject) Embedded ¶
func (fo FontObject) Embedded() (embedded bool)
Embedded returns true if the font is embedded into this PDF file.
func (FontObject) Encoding ¶
func (fo FontObject) Encoding() string
Encoding returns the Encoding of this font.
func (FontObject) ResourceNamesString ¶
func (fo FontObject) ResourceNamesString() string
ResourceNamesString returns a string representation of all the resource names of this font.
func (FontObject) String ¶
func (fo FontObject) String() string
func (FontObject) SubType ¶
func (fo FontObject) SubType() string
SubType returns the SubType of this font.
type FontResource ¶ added in v0.13.4
type FontResource struct { Res Resource CIDSet *IndirectRef FontFile *IndirectRef ToUnicode *IndirectRef W *IndirectRef }
FontResource represents an existing PDF font resource.
type HAlignment ¶ added in v0.13.4
type HAlignment int
HAlignment represents the horizontal alignment of text.
const ( AlignLeft HAlignment = iota AlignCenter AlignRight AlignJustify )
These are the options for horizontal aligned text.
func ParseHorAlignment ¶ added in v0.13.4
func ParseHorAlignment(s string) (HAlignment, error)
type HexLiteral ¶ added in v0.1.16
type HexLiteral string
HexLiteral represents a PDF hex literal object.
func NewHexLiteral ¶ added in v0.13.4
func NewHexLiteral(b []byte) HexLiteral
NewHexLiteral creates a new HexLiteral for b..
func (HexLiteral) Bytes ¶ added in v0.1.16
func (hexliteral HexLiteral) Bytes() ([]byte, error)
Bytes returns the byte representation.
func (HexLiteral) Clone ¶ added in v0.13.4
func (hexliteral HexLiteral) Clone() Object
Clone returns a clone of hexliteral.
func (HexLiteral) PDFString ¶ added in v0.1.16
func (hexliteral HexLiteral) PDFString() string
PDFString returns the string representation as found in and written to a PDF file.
func (HexLiteral) String ¶ added in v0.1.16
func (hexliteral HexLiteral) String() string
func (HexLiteral) Value ¶ added in v0.1.16
func (hexliteral HexLiteral) Value() string
Value returns a string value for this PDF object.
type Image ¶ added in v0.13.4
type Image struct { io.Reader Name string // Resource name FileType string Width int // "Width" Height int // "Height" Size int64 // "Length" // contains filtered or unexported fields }
Image is a Reader representing an image resource.
type ImageMap ¶ added in v0.13.4
type ImageMap map[string]ImageResource
ImageMap maps image filenames to image resources.
type ImageObject ¶
type ImageObject struct { ResourceNames []string ImageDict *StreamDict }
ImageObject represents an image used in a PDF file.
func (*ImageObject) AddResourceName ¶
func (io *ImageObject) AddResourceName(resourceName string)
AddResourceName adds a resourceName to this imageObject's ResourceNames dict.
func (ImageObject) ResourceNamesString ¶
func (io ImageObject) ResourceNamesString() string
ResourceNamesString returns a string representation of the ResourceNames for this image.
type ImageResource ¶ added in v0.13.4
ImageResource represents an existing PDF image resource.
type Import ¶ added in v0.1.20
type Import struct { PageDim *Dim // page dimensions in display unit. PageSize string // one of A0,A1,A2,A3,A4(=default),A5,A6,A7,A8,Letter,Legal,Ledger,Tabloid,Executive,ANSIC,ANSID,ANSIE. UserDim bool // true if one of dimensions or paperSize provided overriding the default. DPI int // destination resolution to apply in dots per inch. Pos Anchor // position anchor, one of tl,tc,tr,l,c,r,bl,bc,br,full. Dx, Dy int // anchor offset. Scale float64 // relative scale factor. 0 <= x <= 1 ScaleAbs bool // true for absolute scaling. InpUnit DisplayUnit // input display unit. Gray bool // true for rendering in Gray. Sepia bool BgColor *SimpleColor // background color }
Import represents the command details for the command "ImportImage".
func DefaultImportConfig ¶ added in v0.1.20
func DefaultImportConfig() *Import
DefaultImportConfig returns the default configuration.
func ParseImportDetails ¶ added in v0.1.20
func ParseImportDetails(s string, u DisplayUnit) (*Import, error)
ParseImportDetails parses an Import command string into an internal structure.
type IndirectRef ¶ added in v0.1.16
IndirectRef represents a PDF indirect object.
func CIDFontDescriptor ¶ added in v0.13.4
func CIDFontDescriptor(xRefTable *XRefTable, ttf font.TTFLight, fontName, baseFontName string, subFont bool) (*IndirectRef, error)
CIDFontDescriptor returns a font descriptor describing the CIDFont’s default metrics other than its glyph widths.
func CIDFontDict ¶ added in v0.13.4
func CIDFontDict(xRefTable *XRefTable, ttf font.TTFLight, fontName, baseFontName string, subFont bool) (*IndirectRef, error)
CIDFontDict returns the descendant font dict for Type0 fonts.
func CIDSet ¶ added in v0.13.4
func CIDSet(xRefTable *XRefTable, ttf font.TTFLight, indRef *IndirectRef) (*IndirectRef, error)
func CIDWidths ¶ added in v0.13.4
func CIDWidths(xRefTable *XRefTable, ttf font.TTFLight, subFont bool, indRef *IndirectRef) (*IndirectRef, error)
CIDWidths returns the value for W in a CIDFontDict.
func CreateImageResource ¶ added in v0.13.4
func EnsureFontDict ¶ added in v0.13.4
func EnsureFontDict(xRefTable *XRefTable, fontName string, subDict bool, indRef *IndirectRef) (*IndirectRef, error)
func NewIndirectRef ¶ added in v0.1.16
func NewIndirectRef(objectNumber, generationNumber int) *IndirectRef
NewIndirectRef returns a new PDFIndirectRef object.
func NewNUpPageForImage ¶ added in v0.1.21
func NewNUpPageForImage(xRefTable *XRefTable, fileName string, parentIndRef *IndirectRef, nup *NUp) (*IndirectRef, error)
NewNUpPageForImage creates a new page dict in xRefTable for given image filename and n-up conf.
func NewPageForImage ¶ added in v0.1.20
func NewPageForImage(xRefTable *XRefTable, r io.Reader, parentIndRef *IndirectRef, imp *Import) (*IndirectRef, error)
NewPageForImage creates a new page dict in xRefTable for given image reader r.
func (IndirectRef) Clone ¶ added in v0.13.4
func (ir IndirectRef) Clone() Object
Clone returns a clone of ir.
func (IndirectRef) Equals ¶ added in v0.1.16
func (ir IndirectRef) Equals(indRef IndirectRef) bool
Equals returns true if two indirect References refer to the same object.
func (IndirectRef) PDFString ¶ added in v0.1.16
func (ir IndirectRef) PDFString() string
PDFString returns a string representation as found in and written to a PDF file.
func (IndirectRef) String ¶ added in v0.1.16
func (ir IndirectRef) String() string
type InheritedPageAttrs ¶ added in v0.1.16
InheritedPageAttrs represents all inherited page attributes.
type Integer ¶ added in v0.1.16
type Integer int
Integer represents a PDF integer object.
type LineJoinStyle ¶ added in v0.13.4
type LineJoinStyle int
LineJoinStyle represents the shape to be used at the corners of paths that are stroked (see 8.4.3.4)
const ( LJMiter LineJoinStyle = iota LJRound LJBevel )
Render mode
type LinkAnnotation ¶ added in v0.13.4
type LinkAnnotation struct { Annotation URI string Quad QuadPoints // Shall be ignored if any coordinate lies outside the region specified by Rect. }
LinkAnnotation represents a PDF link annotation.
func NewLinkAnnotation ¶ added in v0.13.4
func NewLinkAnnotation( rect Rectangle, quad QuadPoints, uri, id string, f AnnotationFlags, backgrCol *SimpleColor) LinkAnnotation
NewLinkAnnotation returns a new link annotation.
func (LinkAnnotation) ContentString ¶ added in v0.13.4
func (ann LinkAnnotation) ContentString() string
ContentString returns a string representation of ann's content.
func (LinkAnnotation) RenderDict ¶ added in v0.13.4
func (ann LinkAnnotation) RenderDict(pageIndRef IndirectRef) Dict
RenderDict renders ann into a PDF annotation dict.
type MarkupAnnotation ¶ added in v0.13.4
type MarkupAnnotation struct { Annotation T string // The text label that shall be displayed in the title bar of the annotation’s pop-up window when open and active. This entry shall identify the user who added the annotation. PopupIndRef *IndirectRef // An indirect reference to a pop-up annotation for entering or editing the text associated with this annotation. CA *float64 // (Default: 1.0) The constant opacity value that shall be used in painting the annotation. RC string // A rich text string that shall be displayed in the pop-up window when the annotation is opened. CreationDate string // The date and time when the annotation was created. Subj string // Text representing a short description of the subject being addressed by the annotation. }
MarkupAnnotation represents a PDF markup annotation.
func NewMarkupAnnotation ¶ added in v0.13.4
func NewMarkupAnnotation( subType AnnotationType, rect Rectangle, pageIndRef *IndirectRef, contents, id, title string, f AnnotationFlags, backgrCol *SimpleColor, popupIndRef *IndirectRef, ca *float64, rc, subject string) MarkupAnnotation
NewMarkupAnnotation returns a new markup annotation.
type Matrix ¶ added in v0.13.4
type Matrix [3][3]float64
func CalcTransformMatrix ¶ added in v0.13.4
type Metadata ¶ added in v0.13.4
type Metadata struct { io.Reader // metadata ObjNr int // metadata dict objNr ParentObjNr int // container object number ParentType string // container dict type }
Metadata is a Reader representing a metadata dict.
type NUp ¶ added in v0.1.21
type NUp struct { PageDim *Dim // Page dimensions in display unit. PageSize string // Paper size eg. A4L, A4P, A4(=default=A4P), see paperSize.go UserDim bool // true if one of dimensions or paperSize provided overriding the default. Orient orientation // One of rd(=default),dr,ld,dl Grid *Dim // Intra page grid dimensions eg (2,2) PageGrid bool // Create a m x n grid of pages for PDF inputfiles only (think "extra page n-Up"). ImgInputFile bool // Process image or PDF input files. Margin int // Cropbox for n-Up content. Border bool // Draw bounding box. BookletGuides bool // Draw folding and cutting lines. MultiFolio bool // Render booklet as sequence of folios. FolioSize int // Booklet multifolio folio size: default: 8 InpUnit DisplayUnit // input display unit. BgColor *SimpleColor // background color }
NUp represents the command details for the command "NUp".
func DefaultBookletConfig ¶ added in v0.13.4
func DefaultBookletConfig() *NUp
DefaultBookletConfig returns the default configuration for a booklet
func DefaultNUpConfig ¶ added in v0.1.21
func DefaultNUpConfig() *NUp
DefaultNUpConfig returns the default NUp configuration.
func ImageBookletConfig ¶ added in v0.13.4
ImageBookletConfig returns an NUp configuration for booklet-ing image files.
func ImageGridConfig ¶ added in v0.13.4
ImageGridConfig returns a grid configuration for Nup-ing image files.
func ImageNUpConfig ¶ added in v0.13.4
ImageNUpConfig returns an NUp configuration for Nup-ing image files.
func PDFBookletConfig ¶ added in v0.13.4
PDFBookletConfig returns an NUp configuration for booklet-ing PDF files.
func PDFGridConfig ¶ added in v0.13.4
PDFGridConfig returns a grid configuration for Nup-ing PDF files.
func PDFNUpConfig ¶ added in v0.13.4
PDFNUpConfig returns an NUp configuration for Nup-ing PDF files.
type Name ¶ added in v0.1.16
type Name string
Name represents a PDF name object.
type Node ¶
type Node struct { Kids []*Node // Mirror of the name tree's Kids array, an array of indirect references. Names []entry // Mirror of the name tree's Names array. Kmin, Kmax string // Mirror of the name tree's Limit array[Kmin,Kmax]. D Dict // The PDF dict representing this name tree node. }
Node is an opinionated implementation of the PDF name tree. pdfcpu caches all name trees found in the PDF catalog with this data structure. The PDF spec does not impose any rules regarding a strategy for the creation of nodes. A binary tree was chosen where each leaf node has a limited number of entries (maxEntries). Once maxEntries has been reached a leaf node turns into an intermediary node with two kids, which are leaf nodes each of them holding half of the sorted entries of the original leaf node.
func (*Node) HandleLeaf ¶ added in v0.13.4
HandleLeaf processes a leaf node.
func (Node) Process ¶
Process traverses the nametree applying a handler to each entry (key-value pair).
type ObjectStreamDict ¶ added in v0.1.16
type ObjectStreamDict struct { StreamDict Prolog []byte ObjCount int FirstObjOffset int ObjArray Array }
ObjectStreamDict represents a object stream dictionary.
func NewObjectStreamDict ¶ added in v0.1.16
func NewObjectStreamDict() *ObjectStreamDict
NewObjectStreamDict creates a new ObjectStreamDict object.
func (*ObjectStreamDict) AddObject ¶ added in v0.1.16
func (osd *ObjectStreamDict) AddObject(objNumber int, entry *XRefTableEntry) error
AddObject adds another object to this object stream. Relies on decoded content!
func (*ObjectStreamDict) Finalize ¶ added in v0.1.16
func (osd *ObjectStreamDict) Finalize()
Finalize prepares the final content of the objectstream.
func (*ObjectStreamDict) IndexedObject ¶ added in v0.1.16
func (osd *ObjectStreamDict) IndexedObject(index int) (Object, error)
IndexedObject returns the object at given index from a ObjectStreamDict.
type OptimizationContext ¶
type OptimizationContext struct { // Font section PageFonts []IntSet // For each page a registry of font object numbers. FontObjects map[int]*FontObject // FontObject lookup table by font object number. FormFontObjects map[int]*FontObject // FormFontObject lookup table by font object number. Fonts map[string][]int // All font object numbers registered for a font name. DuplicateFonts map[int]Dict // Registry of duplicate font dicts. DuplicateFontObjs IntSet // The set of objects that represents the union of the object graphs of all duplicate font dicts. // Image section PageImages []IntSet // For each page a registry of image object numbers. ImageObjects map[int]*ImageObject // ImageObject lookup table by image object number. DuplicateImages map[int]*StreamDict // Registry of duplicate image dicts. DuplicateImageObjs IntSet // The set of objects that represents the union of the object graphs of all duplicate image dicts. ContentStreamCache map[int]*StreamDict FormStreamCache map[int]*StreamDict DuplicateInfoObjects IntSet // Possible result of manual info dict modification. NonReferencedObjs []int // Objects that are not referenced. Cache map[int]bool // For visited objects during optimization. NullObjNr *int // objNr of a regular null object, to be used for fixing references to free objects. }
OptimizationContext represents the context for the optimiziation of a PDF file.
func (*OptimizationContext) DuplicateFontObjectsString ¶
func (oc *OptimizationContext) DuplicateFontObjectsString() (int, string)
DuplicateFontObjectsString returns a formatted string and the number of objs.
func (*OptimizationContext) DuplicateImageObjectsString ¶
func (oc *OptimizationContext) DuplicateImageObjectsString() (int, string)
DuplicateImageObjectsString returns a formatted string and the number of objs.
func (*OptimizationContext) DuplicateInfoObjectsString ¶
func (oc *OptimizationContext) DuplicateInfoObjectsString() (int, string)
DuplicateInfoObjectsString returns a formatted string and the number of objs.
func (*OptimizationContext) IsDuplicateFontObject ¶
func (oc *OptimizationContext) IsDuplicateFontObject(i int) bool
IsDuplicateFontObject returns true if object #i is a duplicate font object.
func (*OptimizationContext) IsDuplicateImageObject ¶
func (oc *OptimizationContext) IsDuplicateImageObject(i int) bool
IsDuplicateImageObject returns true if object #i is a duplicate image object.
func (*OptimizationContext) IsDuplicateInfoObject ¶
func (oc *OptimizationContext) IsDuplicateInfoObject(i int) bool
IsDuplicateInfoObject returns true if object #i is a duplicate info object.
func (*OptimizationContext) NonReferencedObjsString ¶
func (oc *OptimizationContext) NonReferencedObjsString() (int, string)
NonReferencedObjsString returns a formatted string and the number of objs.
type Orientation ¶ added in v0.13.4
type Orientation int
Refactor because of orientation in nup.go
const ( Horizontal Orientation = iota Vertical )
func ParseRadioButtonOrientation ¶ added in v0.13.4
func ParseRadioButtonOrientation(s string) (Orientation, error)
func ParseRegionOrientation ¶ added in v0.13.4
func ParseRegionOrientation(s string) (Orientation, error)
type PDFImage ¶ added in v0.1.16
type PDFImage struct {
// contains filtered or unexported fields
}
PDFImage represents a XObject of subtype image.
type PDFStats ¶
type PDFStats struct {
// contains filtered or unexported fields
}
PDFStats is a container for stats.
func (PDFStats) AddPageAttr ¶
AddPageAttr adds the occurrence of a field with given name to the pageAttrs set.
func (PDFStats) AddRootAttr ¶
AddRootAttr adds the occurrence of a field with given name to the rootAttrs set.
func (PDFStats) UsesPageAttr ¶
UsesPageAttr returns true if a field with given name is contained in the pageAttrs set.
func (PDFStats) UsesRootAttr ¶
UsesRootAttr returns true if a field with given name is contained in the rootAttrs set.
type Page ¶ added in v0.13.4
type Page struct { MediaBox *Rectangle CropBox *Rectangle Fm FontMap Im ImageMap AnnotIndRefs Array Annots []Dict LinkAnnots []LinkAnnotation Buf *bytes.Buffer }
Page represents rendered page content.
func NewPageWithBg ¶ added in v0.13.4
func NewPageWithBg(mediaBox *Rectangle, c SimpleColor) Page
NewPageWithBg creates a page for a mediaBox.
type PageBoundaries ¶ added in v0.13.4
type PageBoundaries struct { Media *Box Crop *Box Trim *Box Bleed *Box Art *Box Rot int // The effective page rotation. }
PageBoundaries represent the defined PDF page boundaries.
func ParseBoxList ¶ added in v0.13.4
func ParseBoxList(s string) (*PageBoundaries, error)
ParseBoxList parses a list of box types.
func ParsePageBoundaries ¶ added in v0.13.4
func ParsePageBoundaries(s string, unit DisplayUnit) (*PageBoundaries, error)
ParsePageBoundaries parses a list of box definitions and assignments.
func (PageBoundaries) ArtBox ¶ added in v0.13.4
func (pb PageBoundaries) ArtBox() *Rectangle
ArtBox returns the effective artbox for pb.
func (PageBoundaries) BleedBox ¶ added in v0.13.4
func (pb PageBoundaries) BleedBox() *Rectangle
BleedBox returns the effective bleedbox for pb.
func (PageBoundaries) CropBox ¶ added in v0.13.4
func (pb PageBoundaries) CropBox() *Rectangle
CropBox returns the effective cropbox for pb.
func (PageBoundaries) MediaBox ¶ added in v0.13.4
func (pb PageBoundaries) MediaBox() *Rectangle
MediaBox returns the effective mediabox for pb.
func (*PageBoundaries) ResolveBox ¶ added in v0.13.4
func (pb *PageBoundaries) ResolveBox(s string) error
ResolveBox resolves s and tries to assign an empty page boundary.
func (*PageBoundaries) SelectAll ¶ added in v0.13.4
func (pb *PageBoundaries) SelectAll()
SelectAll selects all page boundaries.
func (PageBoundaries) String ¶ added in v0.13.4
func (pb PageBoundaries) String() string
func (PageBoundaries) TrimBox ¶ added in v0.13.4
func (pb PageBoundaries) TrimBox() *Rectangle
TrimBox returns the effective trimbox for pb.
type PageResourceNames ¶ added in v0.13.4
PageResourceNames represents the required resource names for a specific page as extracted from its content streams.
func NewPageResourceNames ¶ added in v0.13.4
func NewPageResourceNames() PageResourceNames
NewPageResourceNames returns initialized pageResourceNames.
func (PageResourceNames) HasContent ¶ added in v0.13.4
func (prn PageResourceNames) HasContent() bool
HasContent returns true in any resource names present.
func (PageResourceNames) HasResources ¶ added in v0.13.4
func (prn PageResourceNames) HasResources(s string) bool
HasResources returns true for any resource names present in resource subDict s.
func (PageResourceNames) Resources ¶ added in v0.13.4
func (prn PageResourceNames) Resources(s string) StringSet
Resources returns a set of all required resource names for subdict s.
func (PageResourceNames) String ¶ added in v0.13.4
func (prn PageResourceNames) String() string
type PgAnnots ¶ added in v0.13.4
type PgAnnots map[AnnotationType]AnnotMap
PgAnnots represents a map of page annotations by type.
type Point ¶ added in v0.1.21
type Point struct {
X, Y float64
}
Point represents a user space location.
type PopupAnnotation ¶ added in v0.13.4
type PopupAnnotation struct { Annotation ParentIndRef *IndirectRef // The parent annotation with which this pop-up annotation shall be associated. Open bool // A flag specifying whether the annotation shall initially be displayed open. }
PopupAnnotation represents PDF Popup annotations.
func NewPopupAnnotation ¶ added in v0.13.4
func NewPopupAnnotation( rect Rectangle, pageIndRef *IndirectRef, contents, id string, f AnnotationFlags, backgrCol *SimpleColor, parentIndRef *IndirectRef) PopupAnnotation
NewPopupAnnotation returns a new popup annotation.
func (PopupAnnotation) ContentString ¶ added in v0.13.4
func (ann PopupAnnotation) ContentString() string
ContentString returns a string representation of ann's content.
type QuadLiteral ¶ added in v0.13.4
type QuadLiteral struct {
P1, P2, P3, P4 Point
}
QuadLiteral is a polygon with four edges and four vertices. The four vertices are assumed to be specified in counter clockwise order.
func (QuadLiteral) Array ¶ added in v0.13.4
func (ql QuadLiteral) Array() Array
Array returns the PDF representation of ql.
func (QuadLiteral) EnclosingRectangle ¶ added in v0.13.4
func (ql QuadLiteral) EnclosingRectangle(f float64) *Rectangle
EnclosingRectangle calculates the rectangle enclosing ql's vertices at a distance f.
type QuadPoints ¶ added in v0.13.4
type QuadPoints []QuadLiteral
QuadPoints is an array of 8 × n numbers specifying the coordinates of n quadrilaterals in default user space.
func (*QuadPoints) AddQuadLiteral ¶ added in v0.13.4
func (qp *QuadPoints) AddQuadLiteral(ql QuadLiteral)
AddQuadLiteral adds a quadliteral to qp.
func (*QuadPoints) Array ¶ added in v0.13.4
func (qp *QuadPoints) Array() Array
Array returns the PDF representation of qp.
type ReadContext ¶
type ReadContext struct { FileName string // Input PDF-File. FileSize int64 // Input file size. EolCount int // 1 or 2 characters used for eol. BinaryTotalSize int64 // total stream data BinaryImageSize int64 // total image stream data BinaryFontSize int64 // total font stream data (fontfiles) BinaryImageDuplSize int64 // total obsolet image stream data after optimization BinaryFontDuplSize int64 // total obsolet font stream data after optimization Linearized bool // File is linearized. Hybrid bool // File is a hybrid PDF file. UsingObjectStreams bool // File is using object streams. ObjectStreams IntSet // All object numbers of any object streams found which need to be decoded. UsingXRefStreams bool // File is using xref streams. XRefStreams IntSet // All object numbers of any xref streams found. // contains filtered or unexported fields }
ReadContext represents the context for reading a PDF file.
func (*ReadContext) IsObjectStreamObject ¶
func (rc *ReadContext) IsObjectStreamObject(i int) bool
IsObjectStreamObject returns true if object i is a an object stream. All compressed objects are object streams.
func (*ReadContext) IsXRefStreamObject ¶
func (rc *ReadContext) IsXRefStreamObject(i int) bool
IsXRefStreamObject returns true if object #i is a an xref stream.
func (*ReadContext) LogStats ¶
func (rc *ReadContext) LogStats(optimized bool)
LogStats logs stats for read file.
func (*ReadContext) ObjectStreamsString ¶
func (rc *ReadContext) ObjectStreamsString() (int, string)
ObjectStreamsString returns a formatted string and the number of object stream objects.
func (*ReadContext) ReadFileSize ¶ added in v0.1.16
func (rc *ReadContext) ReadFileSize() int
ReadFileSize returns the size of the input file, if there is one.
func (*ReadContext) XRefStreamsString ¶
func (rc *ReadContext) XRefStreamsString() (int, string)
XRefStreamsString returns a formatted string and the number of xref stream objects.
type Rectangle ¶ added in v0.1.21
Rectangle represents a rectangular region in userspace.
func CalcBoundingBox ¶ added in v0.13.4
func Rect ¶ added in v0.1.21
Rect returns a new rectangle for given lower left and upper right corners.
func RectForArray ¶ added in v0.1.21
RectForArray returns a new rectangle for given Array.
func RectForDim ¶ added in v0.1.21
RectForDim returns a new rectangle for given dimensions.
func RectForFormat ¶ added in v0.1.21
RectForFormat returns a new rectangle for given format.
func RectForWidthAndHeight ¶ added in v0.13.4
RectForWidthAndHeight returns a new rectangle for given dimensions.
func WriteColumn ¶ added in v0.13.4
func WriteColumn(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor, width float64) *Rectangle
WriteColumn writes a text column using s at position x/y using a certain font, fontsize and a desired horizontal and vertical alignment. Enforce a desired column width by supplying a width > 0 (especially useful for justified text). It returns the bounding box of this column.
func WriteColumnAnchored ¶ added in v0.13.4
func WriteColumnAnchored(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor, a Anchor, width float64) *Rectangle
WriteColumnAnchored writes a justified text column with anchored position and returns its bounding box.
func WriteMultiLine ¶ added in v0.13.4
func WriteMultiLine(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor) *Rectangle
WriteMultiLine writes s at position x/y using a certain font, fontsize and a desired horizontal and vertical alignment. It returns the bounding box of this text column.
func WriteMultiLineAnchored ¶ added in v0.13.4
func WriteMultiLineAnchored(w io.Writer, mediaBox, region *Rectangle, td TextDescriptor, a Anchor) *Rectangle
WriteMultiLineAnchored writes multiple lines with anchored position and returns its bounding box.
func (Rectangle) CroppedCopy ¶ added in v0.1.21
CroppedCopy returns a copy of r with applied margin..
func (Rectangle) Dimensions ¶ added in v0.13.4
Dimensions returns r's dimensions.
func (Rectangle) FitsWithin ¶ added in v0.1.21
FitsWithin returns true if rectangle r fits within rectangle r2.
func (Rectangle) Format ¶ added in v0.13.4
func (r Rectangle) Format(unit DisplayUnit) string
Format returns r's details converted into unit.
func (Rectangle) ScaledHeight ¶ added in v0.1.21
ScaledHeight returns the height for given width according to r's aspect ratio.
func (Rectangle) ScaledWidth ¶ added in v0.1.21
ScaledWidth returns the width for given height according to r's aspect ratio.
type RelPosition ¶ added in v0.13.4
type RelPosition int
RelPosition represents the relative position of a text field's label.
const ( RelPosLeft RelPosition = iota RelPosRight RelPosTop RelPosBottom )
These are the options for relative label positions.
func ParseRelPosition ¶ added in v0.13.4
func ParseRelPosition(s string) (RelPosition, error)
type RenderMode ¶ added in v0.13.4
type RenderMode int
RenderMode represents the text rendering mode (see 9.3.6)
const ( RMFill RenderMode = iota RMStroke RMFillAndStroke )
Render mode
type Resource ¶ added in v0.13.4
type Resource struct { ID string IndRef *IndirectRef }
type SimpleColor ¶ added in v0.13.4
type SimpleColor struct {
R, G, B float32 // intensities between 0 and 1.
}
SimpleColor is a simple rgb wrapper.
func NewSimpleColor ¶ added in v0.13.4
func NewSimpleColor(rgb uint32) SimpleColor
NewSimpleColor returns a SimpleColor for rgb in the form 0x00RRGGBB
func ParseColor ¶ added in v0.13.4
func ParseColor(s string) (SimpleColor, error)
func ParseHexColor ¶ added in v0.13.4
func ParseHexColor(hexCol string) (SimpleColor, error)
func (SimpleColor) Array ¶ added in v0.13.4
func (sc SimpleColor) Array() Array
func (SimpleColor) String ¶ added in v0.13.4
func (sc SimpleColor) String() string
type StreamDict ¶ added in v0.1.16
type StreamDict struct { Dict StreamOffset int64 StreamLength *int64 StreamLengthObjNr *int FilterPipeline []PDFFilter Raw []byte // Encoded Content []byte // Decoded //DCTImage image.Image IsPageContent bool CSComponents int }
StreamDict represents a PDF stream dict object.
func CreateImageStreamDict ¶ added in v0.13.4
func NewStreamDict ¶ added in v0.1.16
func NewStreamDict(d Dict, streamOffset int64, streamLength *int64, streamLengthObjNr *int, filterPipeline []PDFFilter) StreamDict
NewStreamDict creates a new PDFStreamDict for given PDFDict, stream offset and length.
func (StreamDict) Clone ¶ added in v0.13.4
func (sd StreamDict) Clone() Object
Clone returns a clone of sd.
func (*StreamDict) Decode ¶ added in v0.13.4
func (sd *StreamDict) Decode() error
Decode applies sd's filter pipeline to sd.Raw in order to produce sd.Content.
func (*StreamDict) Encode ¶ added in v0.13.4
func (sd *StreamDict) Encode() error
Encode applies sd's filter pipeline to sd.Content in order to produce sd.Raw.
func (StreamDict) HasSoleFilterNamed ¶ added in v0.1.16
func (sd StreamDict) HasSoleFilterNamed(filterName string) bool
HasSoleFilterNamed returns true if sd has a filterPipeline with 1 filter named filterName.
func (StreamDict) Image ¶ added in v0.13.4
func (sd StreamDict) Image() bool
type StringLiteral ¶ added in v0.1.16
type StringLiteral string
StringLiteral represents a PDF string literal object.
func (StringLiteral) Clone ¶ added in v0.13.4
func (stringliteral StringLiteral) Clone() Object
Clone returns a clone of stringLiteral.
func (StringLiteral) PDFString ¶ added in v0.1.16
func (stringliteral StringLiteral) PDFString() string
PDFString returns a string representation as found in and written to a PDF file.
func (StringLiteral) String ¶ added in v0.1.16
func (stringliteral StringLiteral) String() string
func (StringLiteral) Value ¶ added in v0.1.16
func (stringliteral StringLiteral) Value() string
Value returns a string value for this PDF object.
type StringSet ¶
StringSet is a set of strings.
func NewStringSet ¶ added in v0.13.4
NewStringSet returns a new StringSet for slice.
type TextAnnotation ¶ added in v0.13.4
type TextAnnotation struct { MarkupAnnotation Open bool // A flag specifying whether the annotation shall initially be displayed open. Name string // The name of an icon that shall be used in displaying the annotation. Comment, Key, (Note), Help, NewParagraph, Paragraph, Insert }
TextAnnotation represents a PDF text annotation aka "Sticky Note".
func NewTextAnnotation ¶ added in v0.13.4
func NewTextAnnotation( rect Rectangle, contents, id, title string, f AnnotationFlags, backgrCol *SimpleColor, ca *float64, rc, subj string, open bool, name string) TextAnnotation
NewTextAnnotation returns a new text annotation.
func (TextAnnotation) RenderDict ¶ added in v0.13.4
func (ann TextAnnotation) RenderDict(pageIndRef IndirectRef) Dict
RenderDict renders ann into a PDF annotation dict.
type TextDescriptor ¶ added in v0.13.4
type TextDescriptor struct { Text string // A multi line string using \n for line breaks. FontName string // Name of the core or user font to be used. RTL bool // Right to left user font. FontKey string // Resource id registered for FontName. FontSize int // Fontsize in points. X, Y float64 // Position of first char's baseline. Dx, Dy float64 // Horizontal and vertical offsets for X,Y. MTop, MBot float64 // Top and bottom margins applied to text bounding box. MLeft, MRight float64 // Left and right margins applied to text bounding box. MinHeight float64 // The minimum height of this text's bounding box. Rotation float64 // 0..360 degree rotation angle. ScaleAbs bool // Scaling type, true=absolute, false=relative to container dimensions. Scale float64 // font scaling factor > 0 (and <= 1 for relative scaling). HAlign HAlignment // Horizontal text alignment. VAlign VAlignment // Vertical text alignment. RMode RenderMode // Text render mode StrokeCol SimpleColor // Stroke color to be used for rendering text corresponding to RMode. FillCol SimpleColor // Fill color to be used for rendering text corresponding to RMode. ShowTextBB bool // Render bounding box including BackgroundCol, border and margins. ShowBackground bool // Render background of bounding box using BackgroundCol. BackgroundCol SimpleColor // Bounding box fill color. ShowBorder bool // Render border using BorderCol, BorderWidth and BorderStyle. BorderWidth float64 // Border width, visibility depends on ShowBorder. BorderStyle LineJoinStyle // Border style, also visible if ShowBorder is false as long as ShowBackground is true. BorderCol SimpleColor // Border color. ParIndent bool // Indent first line of paragraphs or space between paragraphs. ShowLineBB bool // Render line bounding boxes in black (for HAlign != AlignJustify only) ShowMargins bool // Render margins in light gray. HairCross bool // Draw haircross at X,Y. }
TextDescriptor contains all attributes needed for rendering a text column in PDF user space.
type VAlignment ¶ added in v0.13.4
type VAlignment int
VAlignment represents the vertical alignment of text.
const ( AlignBaseline VAlignment = iota AlignTop AlignMiddle AlignBottom )
These are the options for vertical aligned text.
type Version ¶
type Version int
Version is a type for the internal representation of PDF versions.
func PDFVersion ¶
PDFVersion returns the PDFVersion for a version string.
type Watermark ¶ added in v0.1.16
type Watermark struct { // configuration Mode int // WMText, WMImage or WMPDF TextString string // raw display text. TextLines []string // display multiple lines of text. URL string // overlay link annotation for stamps. FileName string // display pdf page or png image. Image io.Reader // reader for image watermark. Page int // the page number of a PDF file. 0 means multistamp/multiwatermark. OnTop bool // if true this is a STAMP else this is a WATERMARK. InpUnit DisplayUnit // input display unit. Pos Anchor // position anchor, one of tl,tc,tr,l,c,r,bl,bc,br. Dx, Dy int // anchor offset. HAlign *HAlignment // horizonal alignment for text watermarks. FontName string // supported are Adobe base fonts only. (as of now: Helvetica, Times-Roman, Courier) FontSize int // font scaling factor. ScaledFontSize int // font scaling factor for a specific page RTL bool // if true, render text from right to left Color SimpleColor // text fill color(=non stroking color) for backwards compatibility. FillColor SimpleColor // text fill color(=non stroking color). StrokeColor SimpleColor // text stroking color BgColor *SimpleColor // text bounding box background color MLeft, MRight int // left and right bounding box margin MTop, MBot int // top and bottom bounding box margin BorderWidth int // Border width, visible if BgColor is set. BorderStyle LineJoinStyle // Border style (bounding box corner style), visible if BgColor is set. BorderColor *SimpleColor // border color Rotation float64 // rotation to apply in degrees. -180 <= x <= 180 Diagonal int // paint along the diagonal. UserRotOrDiagonal bool // true if one of rotation or diagonal provided overriding the default. Opacity float64 // opacity of the watermark. 0 <= x <= 1 RenderMode RenderMode // fill=0, stroke=1 fill&stroke=2 Scale float64 // relative scale factor: 0 <= x <= 1, absolute scale factor: 0 <= x ScaleEff float64 // effective scale factor ScaleAbs bool // true for absolute scaling. Update bool // true for updating instead of adding a page watermark. // contains filtered or unexported fields }
Watermark represents the basic structure and command details for the commands "Stamp" and "Watermark".
func DefaultWatermarkConfig ¶ added in v0.13.4
func DefaultWatermarkConfig() *Watermark
DefaultWatermarkConfig returns the default configuration.
func ParseImageWatermarkDetails ¶ added in v0.13.4
func ParseImageWatermarkDetails(fileName, desc string, onTop bool, u DisplayUnit) (*Watermark, error)
ParseImageWatermarkDetails parses an image Watermark/Stamp command string into an internal structure.
func ParsePDFWatermarkDetails ¶ added in v0.13.4
func ParsePDFWatermarkDetails(fileName, desc string, onTop bool, u DisplayUnit) (*Watermark, error)
ParsePDFWatermarkDetails parses a PDF Watermark/Stamp command string into an internal structure.
func ParseTextWatermarkDetails ¶ added in v0.13.4
func ParseTextWatermarkDetails(text, desc string, onTop bool, u DisplayUnit) (*Watermark, error)
ParseTextWatermarkDetails parses a text Watermark/Stamp command string into an internal structure.
func (Watermark) OnTopString ¶ added in v0.1.16
OnTopString returns "watermark" or "stamp" whichever applies.
type WriteContext ¶
type WriteContext struct { // The PDF-File which gets generated. *bufio.Writer // A writer associated with Fp. Fp *os.File // A file pointer needed for detecting FileSize. FileSize int64 // The size of the written file. DirName string // The output directory. FileName string // The output file name. SelectedPages IntSet // For split, trim and extract. BinaryTotalSize int64 // total stream data, counts 100% all stream data written. BinaryImageSize int64 // total image stream data written = Read.BinaryImageSize. BinaryFontSize int64 // total font stream data (fontfiles) = copy of Read.BinaryFontSize. Table map[int]int64 // object write offsets Offset int64 // current write offset WriteToObjectStream bool // if true start to embed objects into object streams and obey ObjectStreamMaxObjects. CurrentObjStream *int // if not nil, any new non-stream-object gets added to the object stream with this object number. Eol string // end of line char sequence Increment bool // Write context as PDF increment. ObjNrs []int // Increment candidate object numbers. OffsetPrevXRef *int64 // Increment trailer entry "Prev". }
WriteContext represents the context for writing a PDF file.
func NewWriteContext ¶
func NewWriteContext(eol string) *WriteContext
NewWriteContext returns a new WriteContext.
func (*WriteContext) HasWriteOffset ¶
func (wc *WriteContext) HasWriteOffset(objNumber int) bool
HasWriteOffset returns true if an object has already been written to PDFDestination.
func (*WriteContext) IncrementWithObjNr ¶ added in v0.13.4
func (wc *WriteContext) IncrementWithObjNr(i int)
IncrementWithObjNr adds obj# i to wc for writing.
func (*WriteContext) LogStats ¶
func (wc *WriteContext) LogStats()
LogStats logs stats for written file.
func (*WriteContext) SetWriteOffset ¶
func (wc *WriteContext) SetWriteOffset(objNumber int)
SetWriteOffset saves the current write offset to the PDFDestination.
func (*WriteContext) WriteEol ¶
func (wc *WriteContext) WriteEol() error
WriteEol writes an end of line sequence.
type XRefStreamDict ¶ added in v0.1.16
type XRefStreamDict struct { StreamDict Size int Objects []int W [3]int PreviousOffset *int64 }
XRefStreamDict represents a cross reference stream dictionary.
func NewXRefStreamDict ¶ added in v0.1.16
func NewXRefStreamDict(ctx *Context) *XRefStreamDict
NewXRefStreamDict creates a new PDFXRefStreamDict object.
type XRefTable ¶
type XRefTable struct { Table map[int]*XRefTableEntry Size *int // Object count from PDF trailer dict. PageCount int // Number of pages. Root *IndirectRef // Pointer to catalog (reference to root object). RootDict Dict // Catalog Names map[string]*Node // Cache for name trees as found in catalog. Encrypt *IndirectRef // Encrypt dict. E *Enc EncKey []byte // Encrypt key. AES4Strings bool AES4Streams bool AES4EmbeddedStreams bool // PDF Version HeaderVersion *Version // The PDF version the source is claiming to us as per its header. RootVersion *Version // Optional PDF version taking precedence over the header version. // Document information section ID Array // from trailer Info *IndirectRef // Infodict (reference to info dict object) Title string Subject string Keywords string Author string Creator string Producer string CreationDate string ModDate string Properties map[string]string // Linearization section (not yet supported) OffsetPrimaryHintTable *int64 OffsetOverflowHintTable *int64 LinearizationObjs IntSet // Page annotation cache PageAnnots map[int]PgAnnots // Thumbnail images PageThumbs map[int]IndirectRef // Offspec section AdditionalStreams *Array // array of IndirectRef - trailer :e.g., Oasis "Open Doc" // Statistics Stats PDFStats Tagged bool // File is using tags. This is important for ??? // Validation CurPage int // current page during validation CurObj int // current object during validation, the last dereferenced object ValidationMode int // see Configuration ValidateLinks bool // check for broken links in LinkAnnotations/URIDicts. Valid bool // true means successful validated against ISO 32000. URIs map[int]map[string]string // URIs for link checking Optimized bool Watermarked bool AcroForm Dict SignatureExist bool AppendOnly bool }
XRefTable represents a PDF cross reference table plus stats for a PDF file.
func CreateAcroFormDemoXRef ¶
CreateAcroFormDemoXRef creates an xRefTable with an AcroForm example.
func CreateAnnotationDemoXRef ¶
CreateAnnotationDemoXRef creates a PDF file with examples of annotations and actions.
func CreateDemoXRef ¶ added in v0.1.16
CreateDemoXRef creates a minimal single page PDF file for demo purposes.
func CreateResourceDictInheritanceDemoXRef ¶ added in v0.13.4
CreateResourceDictInheritanceDemoXRef creates a page tree for testing resource dict inheritance.
func CreateXRefTableWithRootDict ¶ added in v0.13.4
func (*XRefTable) Annotation ¶ added in v0.13.4
func (xRefTable *XRefTable) Annotation(d Dict) (AnnotationRenderer, error)
Annotation returns an annotation renderer. Validation sets up a cache of annotation renderers.
func (*XRefTable) AppendContent ¶ added in v0.13.4
AppendContent appends bb to pageDict's content stream.
func (*XRefTable) BindNameTrees ¶
BindNameTrees syncs up the internal name tree cache with the xreftable.
func (*XRefTable) CatalogHasPieceInfo ¶
CatalogHasPieceInfo returns true if the root has an entry for \"PieceInfo\".
func (*XRefTable) ColorSpaceComponents ¶ added in v0.13.4
func (xRefTable *XRefTable) ColorSpaceComponents(sd *StreamDict) (int, error)
ColorSpaceComponents returns the corresponding number of used color components for sd's colorspace.
func (*XRefTable) DeleteObjectGraph ¶
DeleteObjectGraph deletes all objects reachable by indRef.
func (*XRefTable) Dereference ¶
Dereference resolves an indirect object and returns the resulting PDF object.
func (*XRefTable) DereferenceArray ¶
DereferenceArray resolves and validates an array object, which may be an indirect reference.
func (*XRefTable) DereferenceBoolean ¶ added in v0.13.4
DereferenceBoolean resolves and validates a boolean object, which may be an indirect reference.
func (*XRefTable) DereferenceCSVSafeText ¶ added in v0.13.4
DereferenceCSVSafeText resolves and validates a string or hex literal object to a string.
func (*XRefTable) DereferenceDict ¶
DereferenceDict resolves and validates a dictionary object, which may be an indirect reference.
func (*XRefTable) DereferenceDictEntry ¶ added in v0.1.16
DereferenceDictEntry returns a dereferenced dict entry.
func (*XRefTable) DereferenceInteger ¶
DereferenceInteger resolves and validates an integer object, which may be an indirect reference.
func (*XRefTable) DereferenceName ¶
func (xRefTable *XRefTable) DereferenceName(o Object, sinceVersion Version, validate func(string) bool) (n Name, err error)
DereferenceName resolves and validates a name object, which may be an indirect reference.
func (*XRefTable) DereferenceNumber ¶ added in v0.1.16
DereferenceNumber resolves a number object, which may be an indirect reference and returns a float64.
func (*XRefTable) DereferenceStreamDict ¶
func (xRefTable *XRefTable) DereferenceStreamDict(o Object) (*StreamDict, bool, error)
DereferenceStreamDict resolves stream dictionary objects.
func (*XRefTable) DereferenceStringEntryBytes ¶ added in v0.13.4
DereferenceStringEntryBytes returns the bytes of a string entry of d.
func (*XRefTable) DereferenceStringLiteral ¶
func (xRefTable *XRefTable) DereferenceStringLiteral(o Object, sinceVersion Version, validate func(string) bool) (s StringLiteral, err error)
DereferenceStringLiteral resolves and validates a string literal object, which may be an indirect reference.
func (*XRefTable) DereferenceStringOrHexLiteral ¶
func (xRefTable *XRefTable) DereferenceStringOrHexLiteral(obj Object, sinceVersion Version, validate func(string) bool) (s string, err error)
DereferenceStringOrHexLiteral resolves and validates a string or hex literal object, which may be an indirect reference.
func (*XRefTable) DereferenceText ¶ added in v0.1.16
DereferenceText resolves and validates a string or hex literal object to a string.
func (*XRefTable) EncryptDict ¶
EncryptDict returns a pointer to the root object / catalog.
func (*XRefTable) EnsureCollection ¶
EnsureCollection makes sure there is a Collection entry in the catalog. Needed for portfolio / portable collections eg. for file attachments.
func (*XRefTable) EnsurePageCount ¶ added in v0.13.4
EnsurePageCount evaluates the page count for xRefTable if necessary. Important when validation is turned off.
func (*XRefTable) EnsureValidFreeList ¶
EnsureValidFreeList ensures the integrity of the free list associated with the recorded free objects. See 7.5.4 Cross-Reference Table
func (*XRefTable) EnsureVersionForWriting ¶ added in v0.13.4
func (xRefTable *XRefTable) EnsureVersionForWriting()
EnsureVersionForWriting sets the version to the highest supported PDF Version 1.7. This is necessary to allow validation after adding features not supported by the original version of a document as during watermarking.
func (*XRefTable) Find ¶
func (xRefTable *XRefTable) Find(objNr int) (*XRefTableEntry, bool)
Find returns the XRefTable entry for given object number.
func (*XRefTable) FindObject ¶
FindObject returns the object of the XRefTableEntry for a specific object number.
func (*XRefTable) FindTableEntry ¶
func (xRefTable *XRefTable) FindTableEntry(objNr int, genNr int) (*XRefTableEntry, bool)
FindTableEntry returns the XRefTable entry for given object and generation numbers.
func (*XRefTable) FindTableEntryForIndRef ¶
func (xRefTable *XRefTable) FindTableEntryForIndRef(ir *IndirectRef) (*XRefTableEntry, bool)
FindTableEntryForIndRef returns the XRefTable entry for given indirect reference.
func (*XRefTable) FindTableEntryLight ¶
func (xRefTable *XRefTable) FindTableEntryLight(objNr int) (*XRefTableEntry, bool)
FindTableEntryLight returns the XRefTable entry for given object number.
func (*XRefTable) Free ¶
func (xRefTable *XRefTable) Free(objNr int) (*XRefTableEntry, error)
Free returns the cross ref table entry for given number of a free object.
func (*XRefTable) IDFirstElement ¶
IDFirstElement returns the first element of ID.
func (*XRefTable) IndRefForNewObject ¶
func (xRefTable *XRefTable) IndRefForNewObject(obj Object) (*IndirectRef, error)
IndRefForNewObject inserts an object into the xRefTable and returns an indirect reference to it.
func (*XRefTable) InsertAndUseRecycled ¶
func (xRefTable *XRefTable) InsertAndUseRecycled(xRefTableEntry XRefTableEntry) (objNr int, err error)
InsertAndUseRecycled adds given xRefTableEntry into the cross reference table utilizing the freelist.
func (*XRefTable) InsertBlankPages ¶ added in v0.13.4
InsertBlankPages inserts a blank page before or after each selected page.
func (*XRefTable) InsertNew ¶
func (xRefTable *XRefTable) InsertNew(xRefTableEntry XRefTableEntry) (objNr int)
InsertNew adds given xRefTableEntry at next new objNumber into the cross reference table. Only to be called once an xRefTable has been generated completely and all trailer dicts have been processed. xRefTable.Size is the size entry of the first trailer dict processed. Called on creation of new object streams. Called by InsertAndUseRecycled.
func (*XRefTable) InsertObject ¶
InsertObject inserts an object into the xRefTable.
func (*XRefTable) IsLinearizationObject ¶
IsLinearizationObject returns true if object #i is a a linearization object.
func (*XRefTable) IsValid ¶ added in v0.13.4
func (xRefTable *XRefTable) IsValid(ir IndirectRef) (bool, error)
IsValid returns true if the object referenced by ir has already been validated.
func (*XRefTable) LinearizationObjsString ¶
LinearizationObjsString returns a formatted string and the number of objs.
func (*XRefTable) ListAnnotations ¶ added in v0.13.4
ListAnnotations returns a formatted list of annotations for selected pages.
func (*XRefTable) LocateNameTree ¶
LocateNameTree locates/ensures a specific name tree.
func (*XRefTable) MissingObjects ¶
MissingObjects returns the number of objects that were not written plus the corresponding comma separated string representation.
func (*XRefTable) NewEmbeddedFileStreamDict ¶
func (xRefTable *XRefTable) NewEmbeddedFileStreamDict(filename string) (*IndirectRef, error)
NewEmbeddedFileStreamDict returns an embeddedFileStreamDict containing the file "filename".
func (*XRefTable) NewEmbeddedStreamDict ¶ added in v0.13.4
func (xRefTable *XRefTable) NewEmbeddedStreamDict(r io.Reader, modDate time.Time) (*IndirectRef, error)
NewEmbeddedStreamDict creates and returns an embeddedStreamDict containing the bytes represented by r.
func (*XRefTable) NewFileSpecDict ¶
func (xRefTable *XRefTable) NewFileSpecDict(f, uf, desc string, indRefStreamDict IndirectRef) (Dict, error)
NewFileSpecDict creates and returns a new fileSpec dictionary.
func (*XRefTable) NewFileSpectDictForAttachment ¶ added in v0.13.4
func (xRefTable *XRefTable) NewFileSpectDictForAttachment(a Attachment) (*IndirectRef, error)
NewFileSpectDictForAttachment returns a fileSpecDict for a.
func (*XRefTable) NewSoundStreamDict ¶
func (xRefTable *XRefTable) NewSoundStreamDict(filename string, samplingRate int, fileSpecDict Dict) (*IndirectRef, error)
NewSoundStreamDict returns a new sound stream dict.
func (*XRefTable) NewStreamDictForBuf ¶ added in v0.13.4
func (xRefTable *XRefTable) NewStreamDictForBuf(buf []byte) (*StreamDict, error)
NewStreamDictForBuf creates a streamDict for buf.
func (*XRefTable) NewStreamDictForFile ¶ added in v0.13.4
func (xRefTable *XRefTable) NewStreamDictForFile(filename string) (*StreamDict, error)
NewStreamDictForFile creates a streamDict for filename.
func (*XRefTable) NextForFree ¶
NextForFree returns the number of the object the free object with objNumber links to. This is the successor of this free object in the free list.
func (*XRefTable) Outlines ¶ added in v0.13.4
func (xRefTable *XRefTable) Outlines() (*IndirectRef, error)
Outlines returns the Outlines reference contained in the catalog.
func (*XRefTable) PageBoundaries ¶ added in v0.13.4
func (xRefTable *XRefTable) PageBoundaries() ([]PageBoundaries, error)
PageBoundaries returns a sorted slice with page boundaries for all pages sorted ascending by page number.
func (*XRefTable) PageContent ¶ added in v0.13.4
PageContent returns the content in PDF syntax for page dict d.
func (*XRefTable) PageDict ¶
func (xRefTable *XRefTable) PageDict(pageNr int, consolidateRes bool) (Dict, *IndirectRef, *InheritedPageAttrs, error)
PageDict returns a specific page dict along with the resources, mediaBox and CropBox in effect. consolidateRes ensures optimized resources in InheritedPageAttrs.
func (*XRefTable) PageDictIndRef ¶ added in v0.13.4
func (xRefTable *XRefTable) PageDictIndRef(page int) (*IndirectRef, error)
PageDictIndRef returns the pageDict IndRef for a logical page number.
func (*XRefTable) PageDims ¶ added in v0.13.4
PageDims returns a sorted slice with effective media box dimensions for all pages sorted ascending by page number.
func (*XRefTable) PageNumber ¶ added in v0.13.4
PageNumber returns the logical page number for a page dict object number.
func (*XRefTable) Pages ¶
func (xRefTable *XRefTable) Pages() (*IndirectRef, error)
Pages returns the Pages reference contained in the catalog.
func (*XRefTable) ParseRootVersion ¶
ParseRootVersion returns a string representation for an optional Version entry in the root object.
func (*XRefTable) RemoveCollection ¶
RemoveCollection removes an existing Collection entry from the catalog.
func (*XRefTable) RemoveEmbeddedFilesNameTree ¶
RemoveEmbeddedFilesNameTree removes both the embedded files name tree and the Collection dict.
func (*XRefTable) RemoveNameTree ¶
RemoveNameTree removes a specific name tree. Also removes a resulting empty names dict.
func (*XRefTable) SetValid ¶ added in v0.13.4
func (xRefTable *XRefTable) SetValid(ir IndirectRef) error
SetValid marks the xreftable entry of the object referenced by ir as valid.
func (*XRefTable) UndeleteObject ¶
UndeleteObject ensures an object is not recorded in the free list. e.g. sometimes caused by indirect references to free objects in the original PDF file.
func (*XRefTable) ValidateVersion ¶
ValidateVersion validates against the xRefTable's version.
func (*XRefTable) Version ¶
Version returns the PDF version of the PDF writer that created this file. Before V1.4 this is the header version. Since V1.4 the catalog may contain a Version entry which takes precedence over the header version.
func (*XRefTable) VersionString ¶
VersionString return a string representation for this PDF files PDF version.
type XRefTableEntry ¶
type XRefTableEntry struct { Free bool Offset *int64 Generation *int RefCount int Object Object Compressed bool ObjectStream *int ObjectStreamInd *int Valid bool }
XRefTableEntry represents an entry in the PDF cross reference table.
This may wrap a free object, a compressed object or any in use PDF object:
Dict, StreamDict, ObjectStreamDict, PDFXRefStreamDict, Array, Integer, Float, Name, StringLiteral, HexLiteral, Boolean
func NewFreeHeadXRefTableEntry ¶
func NewFreeHeadXRefTableEntry() *XRefTableEntry
NewFreeHeadXRefTableEntry returns the xref table entry for object 0 which is per definition the head of the free list (list of free objects).
func NewXRefTableEntryGen0 ¶
func NewXRefTableEntryGen0(obj Object) *XRefTableEntry
NewXRefTableEntryGen0 returns a cross reference table entry for an object with generation 0.
Source Files ¶
- annotate.go
- array.go
- attach.go
- booklet.go
- bookmarks.go
- boxes.go
- collect.go
- colorSpace.go
- configuration.go
- context.go
- create.go
- createAnnotations.go
- createRenditions.go
- createTestPDF.go
- createText.go
- crypto.go
- date.go
- dereference.go
- dict.go
- doc.go
- equal.go
- extract.go
- fontDict.go
- form.go
- iccProfile.go
- images.go
- importImage.go
- info.go
- keywords.go
- matrix.go
- merge.go
- mergeAcroForms.go
- nameTree.go
- nup.go
- optimize.go
- pages.go
- paperSize.go
- parse.go
- parseConfig.go
- parseContent.go
- properties.go
- read.go
- readImage.go
- resources.go
- rotate.go
- slice.go
- stamp.go
- stats.go
- streamdict.go
- string.go
- types.go
- utf16.go
- version.go
- write.go
- writeImage.go
- writeObjects.go
- writePages.go
- writeStats.go
- xreftable.go
Directories ¶
Path | Synopsis |
---|---|
Package validate implements validation against PDF 32000-1:2008.
|
Package validate implements validation against PDF 32000-1:2008. |