Documentation
¶
Index ¶
- Constants
- Variables
- func AnchorPosAndAlign(a types.Anchor, r *types.Rectangle) (x, y float64, hAlign types.HAlignment, vAlign types.VAlignment)
- func AppendPageTree(d1 *types.IndirectRef, countd1 int, d2 types.Dict) error
- func ApplyBox(boxName string, b *Box, d types.Dict, parent *types.Rectangle) *types.Rectangle
- func CSVSafeString(s string) string
- func CalcBoundingBox(s string, x, y float64, fontName string, fontSize int) *types.Rectangle
- func CalcBoundingBoxForRects(r1, r2 *types.Rectangle) *types.Rectangle
- func CertString(cert *x509.Certificate) string
- func CheckConfigVersion(v string)
- func CheckRecursionDepth(name string, depth, maxDepth int) error
- func ContentBytesForPageRotation(rot int, w, h float64) []byte
- func CreateDCTImageStreamDict(xRefTable *XRefTable, buf []byte, w, h, bpc int, cs string) (*types.StreamDict, error)
- func CreateFlateImageStreamDict(xRefTable *XRefTable, buf, sm []byte, w, h, bpc int, cs string) (*types.StreamDict, error)
- func CreateImageResource(xRefTable *XRefTable, r io.Reader) (*types.IndirectRef, int, int, error)
- func CreateImageStreamDict(xRefTable *XRefTable, r io.Reader) (*types.StreamDict, int, int, error)
- func DecodeUTF8ToByte(s string) string
- func DetectKeywords(line string) (endInd int, streamInd int, err error)
- func DetectKeywordsWithContext(c context.Context, line string) (endInd int, streamInd int, err error)
- func DrawMargins(w io.Writer, c color.SimpleColor, colBB *types.Rectangle, ...)
- func EnsureDefaultConfigAt(path string, override bool) error
- func EqualObjects(o1, o2 types.Object, xRefTable *XRefTable, pairs []int) (ok bool, err error)
- func FreeTextIntentName(fti FreeTextIntent) string
- func ImageFileName(fileName string) bool
- func ImageFileNames(dir string, maxFileSize types.ByteSize) ([]string, error)
- func IsP7C(fname string) bool
- func IsPEM(fname string) bool
- func LineEndingStyleName(les LineEndingStyle) string
- func LineIntentName(li LineIntent) string
- func LowerLeftCorner(vp *types.Rectangle, bbw, bbh float64, a types.Anchor) types.Point
- func NUpTilePDFBytes(wr io.Writer, rSrc, rDest *types.Rectangle, formResID string, nup *NUp, ...)
- func ObjectStreamDict(sd *types.StreamDict) (*types.ObjectStreamDict, error)
- func ObjectStreamDictWithLimits(sd *types.StreamDict, limits ResourceLimits) (*types.ObjectStreamDict, error)
- func ParseObject(line *string) (types.Object, error)
- func ParseObjectAttributes(line *string) (*int, *int, error)
- func ParseObjectContext(c context.Context, line *string, level int, maxDepth ...int) (types.Object, error)
- func ParseXRefStreamDict(sd *types.StreamDict) (*types.XRefStreamDict, error)
- func ParseXRefStreamDictWithLimits(sd *types.StreamDict, limits ResourceLimits) (*types.XRefStreamDict, error)
- func PolyLineIntentName(pi PolyLineIntent) string
- func PolygonIntentName(pi PolygonIntent) string
- func PrepBytes(xRefTable *XRefTable, s, fontName string, embed, rtl, fillFont bool) string
- func ProcessRefCounts(xRefTable *XRefTable, o types.Object)
- func ProcessRefCountsWithError(xRefTable *XRefTable, o types.Object) error
- func RemoveKeywords(metadata *[]byte) error
- func ResetCertificates() error
- func ResetConfig() error
- func ShowDigestedSpecViolation(msg string)
- func ShowDigestedSpecViolationError(xRefTable *XRefTable, err error)
- func ShowMsg(msg string)
- func ShowMsgTopic(topic, msg string)
- func ShowRepaired(msg string)
- func ShowSkipped(msg string)
- func SplitMultilineStr(s string) []string
- func Text(o types.Object) (string, error)
- func TimingStats(op string, durRead, durVal, durOpt, durWrite, durTotal float64)
- func ValidationTimingStats(dur1, dur2, dur float64)
- func WordWrap(s string, fontName string, fontSize int, maxWidthPoints float64) []string
- func WriteColumn(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, ...) *types.Rectangle
- func WriteColumnAnchored(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, ...) *types.Rectangle
- func WriteMultiLine(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, ...) *types.Rectangle
- func WriteMultiLineAnchored(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, ...) *types.Rectangle
- type Alt
- type Annot
- type AnnotMap
- type Annotation
- func (ann Annotation) APObjNrInt() int
- func (ann Annotation) Content() string
- func (ann Annotation) ContentString() string
- func (ann Annotation) CustomTypeString() string
- func (ann Annotation) HashString() uint32
- func (ann Annotation) ID() string
- func (ann Annotation) RectString() string
- func (ann Annotation) Rectangle() types.Rectangle
- func (ann Annotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
- func (ann Annotation) Type() AnnotationType
- func (ann Annotation) TypeString() string
- type AnnotationFlags
- type AnnotationRenderer
- type AnnotationType
- type Attachment
- type BookletBinding
- type BookletPage
- type BookletType
- type BorderStyle
- type BorderStyling
- type Box
- type CaretAnnotation
- type CertificateDetails
- type CircleAnnotation
- type CommandMode
- type Configuration
- func (c *Configuration) ApplyReducedFeatureSet() bool
- func (c *Configuration) EolString() string
- func (c *Configuration) PreferredCertRevocationCheckerString() string
- func (c *Configuration) SetUnit(s string)
- func (c *Configuration) UnitString() string
- func (c *Configuration) ValidationModeString() string
- type Context
- func (ctx *Context) AddAttachment(a Attachment, useCollection bool) error
- func (ctx *Context) AddAttachmentsToInfoDigest(ss *[]string) error
- func (ctx *Context) AddPageBoundaries(selectedPages types.IntSet, pb *PageBoundaries) error
- func (ctx *Context) ConvertToUnit(d types.Dim) types.Dim
- func (ctx *Context) Crop(selectedPages types.IntSet, b *Box) error
- func (ctx *Context) ExtractAttachment(a Attachment) (*Attachment, error)
- func (ctx *Context) ExtractAttachments(ids []string) ([]Attachment, error)
- func (ctx *Context) ListAttachments() ([]Attachment, error)
- func (ctx *Context) ListPageBoundaries(selectedPages types.IntSet, wantPB *PageBoundaries) ([]string, error)
- func (ctx *Context) NUpTilePDFBytesForPDF(pageNr int, formsResDict types.Dict, buf *bytes.Buffer, rDest *types.Rectangle, ...) error
- func (ctx *Context) RemoveAttachment(a Attachment) (bool, error)
- func (ctx *Context) RemoveAttachments(ids []string) (bool, error)
- func (ctx *Context) RemovePageBoundaries(selectedPages types.IntSet, pb *PageBoundaries) error
- func (ctx *Context) ResetWriteContext()
- func (ctx *Context) SearchEmbeddedFilesNameTreeNodeByContent(s string) (*string, types.Object, error)
- func (ctx *Context) String() string
- func (ctx *Context) UnitString() string
- type Creator
- type Cut
- type Desc
- type Description
- type Destination
- type DestinationType
- type Direction
- type DuplicateImageObject
- type Enc
- type FieldAnnotation
- type FontInfo
- type FontMap
- type FontObject
- type FontResource
- type FormFieldVisit
- type FreeTextAnnotation
- type FreeTextIntent
- type HighlightAnnotation
- type Image
- type ImageMap
- type ImageObject
- type ImageResource
- type InheritedPageAttrs
- type InkAnnotation
- type InkPath
- type LineAnnotation
- type LineEndingStyle
- type LineIntent
- type LinkAnnotation
- type MarkupAnnotation
- type MergeBookmarkMode
- type NUp
- type NameMap
- type Node
- func (n *Node) Add(xRefTable *XRefTable, k string, v types.Object, m NameMap, ...) error
- func (n *Node) AddTree(xRefTable *XRefTable, tree *Node, m NameMap, nameRefDictKeys []string) error
- func (n *Node) AppendToNames(k string, v types.Object)
- func (n *Node) HandleLeaf(xRefTable *XRefTable, k string, v types.Object, m NameMap, ...) error
- func (n Node) KeyList() ([]string, error)
- func (n *Node) Process(xRefTable *XRefTable, handler func(*XRefTable, string, *types.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) (types.Object, bool)
- type NonFullScreenPageMode
- 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 PDFStats
- type Page
- type PageBoundaries
- func (pb PageBoundaries) ArtBox() *types.Rectangle
- func (pb PageBoundaries) BleedBox() *types.Rectangle
- func (pb PageBoundaries) CropBox() *types.Rectangle
- func (pb PageBoundaries) MediaBox() *types.Rectangle
- func (pb *PageBoundaries) ResolveBox(s string) error
- func (pb *PageBoundaries) SelectAll()
- func (pb PageBoundaries) String() string
- func (pb PageBoundaries) TrimBox() *types.Rectangle
- type PageBoundary
- type PageLayout
- type PageMode
- type PageResourceNames
- type PageTreeVisit
- type PaperHandling
- type PdfResources
- type PermissionFlags
- type PgAnnots
- type PolyLineAnnotation
- type PolyLineIntent
- type PolygonAnnotation
- type PolygonIntent
- type PopupAnnotation
- type PrintScaling
- type RDF
- type ReadContext
- type Resize
- type Resource
- type ResourceLimits
- type RevocationDetails
- type Seq
- type Signature
- type SignatureDetails
- type SignatureReason
- type SignatureStats
- type SignatureStatus
- type SignatureValidationResult
- type Signer
- type SquareAnnotation
- type SquigglyAnnotation
- type StrikeOutAnnotation
- type TextAnnotation
- type TextDescriptor
- type TextMarkupAnnotation
- type Title
- type TrustDetails
- type UnderlineAnnotation
- type UserDate
- type Version
- type ViewerPrefJSON
- type ViewerPreferences
- func (vp ViewerPreferences) List() []string
- func (vp *ViewerPreferences) MarshalJSON() ([]byte, error)
- func (vp *ViewerPreferences) Populate(vp1 *ViewerPreferences)
- func (vp *ViewerPreferences) SetCenterWindow(val bool)
- func (vp *ViewerPreferences) SetDisplayDocTitle(val bool)
- func (vp *ViewerPreferences) SetFitWindow(val bool)
- func (vp *ViewerPreferences) SetHideMenuBar(val bool)
- func (vp *ViewerPreferences) SetHideToolBar(val bool)
- func (vp *ViewerPreferences) SetHideWindowUI(val bool)
- func (vp *ViewerPreferences) SetNumCopies(i int)
- func (vp *ViewerPreferences) SetPickTrayByPDFSize(val bool)
- func (vp ViewerPreferences) String() string
- func (vp *ViewerPreferences) UnmarshalJSON(data []byte) error
- func (vp *ViewerPreferences) Validate(version Version) error
- type Watermark
- func (wm *Watermark) CalcBoundingBox(pageNr int)
- func (wm *Watermark) CalcTransformMatrix() matrix.Matrix
- func (wm Watermark) IsImage() bool
- func (wm Watermark) IsPDF() bool
- func (wm Watermark) IsText() bool
- func (wm Watermark) MultiStamp() bool
- func (wm Watermark) OnTopString() string
- func (wm *Watermark) PdfResIndex(pageNr int) int
- func (wm *Watermark) Recycle()
- func (wm Watermark) String() string
- func (wm Watermark) Typ() string
- type WriteContext
- type XMPMeta
- type XRefTable
- func (xRefTable *XRefTable) AppendContent(pageDict types.Dict, bb []byte) error
- func (xRefTable *XRefTable) AppendPages(rootPageIndRef *types.IndirectRef, fromPageNr int, ctx *Context) (int, error)
- func (xRefTable *XRefTable) BindNameTrees() error
- func (xRefTable *XRefTable) BindPrinterPreferences(vp *ViewerPreferences, d types.Dict)
- func (xRefTable *XRefTable) BindViewerPreferences()
- func (xRefTable *XRefTable) Catalog() (types.Dict, error)
- func (xRefTable *XRefTable) CatalogHasPieceInfo() (bool, error)
- func (xRefTable *XRefTable) CheckRecursionDepth(name string, depth int) error
- func (xRefTable *XRefTable) DeleteDictEntry(d types.Dict, key string) error
- func (xRefTable *XRefTable) DeleteObject(o types.Object) error
- func (xRefTable *XRefTable) DeleteObjectGraph(o types.Object) error
- func (xRefTable *XRefTable) Dereference(o types.Object) (types.Object, error)
- func (xRefTable *XRefTable) DereferenceArray(o types.Object) (types.Array, error)
- func (xRefTable *XRefTable) DereferenceBoolean(o types.Object, sinceVersion Version) (*types.Boolean, error)
- func (xRefTable *XRefTable) DereferenceCSVSafeText(o types.Object) (string, error)
- func (xRefTable *XRefTable) DereferenceDestArray(key string) (types.Array, error)
- func (xRefTable *XRefTable) DereferenceDict(o types.Object) (types.Dict, error)
- func (xRefTable *XRefTable) DereferenceDictEntry(d types.Dict, key string) (types.Object, error)
- func (xRefTable *XRefTable) DereferenceDictWithIncr(o types.Object) (types.Dict, int, error)
- func (xRefTable *XRefTable) DereferenceFontDict(indRef types.IndirectRef) (types.Dict, error)
- func (xRefTable *XRefTable) DereferenceForWrite(o types.Object) (types.Object, error)
- func (xRefTable *XRefTable) DereferenceInteger(o types.Object) (*types.Integer, error)
- func (xRefTable *XRefTable) DereferenceName(o types.Object, sinceVersion Version, validate func(string) bool) (n types.Name, err error)
- func (xRefTable *XRefTable) DereferenceNumber(o types.Object) (float64, error)
- func (xRefTable *XRefTable) DereferencePageNodeDict(indRef types.IndirectRef) (types.Dict, error)
- func (xRefTable *XRefTable) DereferenceStreamDict(o types.Object) (*types.StreamDict, bool, error)
- func (xRefTable *XRefTable) DereferenceStringEntryBytes(d types.Dict, key string) ([]byte, error)
- func (xRefTable *XRefTable) DereferenceStringLiteral(o types.Object, sinceVersion Version, validate func(string) bool) (s types.StringLiteral, err error)
- func (xRefTable *XRefTable) DereferenceStringOrHexLiteral(obj types.Object, sinceVersion Version, validate func(string) bool) (s string, err error)
- func (xRefTable *XRefTable) DereferenceText(o types.Object) (string, error)
- func (xRefTable *XRefTable) DereferenceWithIncr(o types.Object) (types.Object, int, error)
- func (xRefTable *XRefTable) DereferenceXObjectDict(indRef types.IndirectRef) (*types.StreamDict, error)
- func (xRefTable *XRefTable) DestName(obj types.Object) (string, error)
- func (xRefTable *XRefTable) DumpObject(objNr, mode int)
- func (xRefTable *XRefTable) EmptyPage(parentIndRef *types.IndirectRef, mediaBox *types.Rectangle, objNr int) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) EncryptDict() (types.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) (types.Object, error)
- func (xRefTable *XRefTable) FindTableEntry(objNr int, genNr int) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) FindTableEntryForIndRef(indRef *types.IndirectRef) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) FindTableEntryLight(objNr int) (*XRefTableEntry, bool)
- func (xRefTable *XRefTable) Free(objNr int) (*XRefTableEntry, error)
- func (xRefTable *XRefTable) FreeObject(objNr int) error
- func (xRefTable *XRefTable) HasUsedGIDs(fontName string) bool
- func (xRefTable *XRefTable) IDFirstElement() (id []byte, err error)
- func (xRefTable *XRefTable) IncrementRefCount(indRef *types.IndirectRef)
- func (xRefTable *XRefTable) IndRefForNewObject(obj types.Object) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) IndRefForObject(objNr int, obj types.Object) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) InsertAndUseRecycled(xRefTableEntry XRefTableEntry) (objNr int, err error)
- func (xRefTable *XRefTable) InsertBlankPages(pages types.IntSet, dim *types.Dim, before bool) error
- func (xRefTable *XRefTable) InsertNew(xRefTableEntry XRefTableEntry) (objNr int)
- func (xRefTable *XRefTable) InsertObject(obj types.Object) (objNr int, err error)
- func (xRefTable *XRefTable) InsertPages(parent *types.IndirectRef, p *int, ctx *Context) (int, error)
- func (xRefTable *XRefTable) IsBeingValidated(ir types.IndirectRef) (bool, error)
- func (xRefTable *XRefTable) IsLinearizationObject(i int) bool
- func (xRefTable *XRefTable) IsMerging() bool
- func (xRefTable *XRefTable) IsObjBeingValidated(objNr, genNr int) (bool, error)
- func (xRefTable *XRefTable) IsObjValid(objNr, genNr int) (bool, error)
- func (xRefTable *XRefTable) IsValid(ir types.IndirectRef) (bool, error)
- func (xRefTable *XRefTable) LinearizationObjsString() (int, string)
- func (xRefTable *XRefTable) LocateNameTree(nameTreeName string, ensure bool) error
- func (xRefTable *XRefTable) MaxRecursionDepth() int
- func (xRefTable *XRefTable) MissingObjects() (int, *string)
- func (xRefTable *XRefTable) NameRef(nameType string) NameMap
- func (xRefTable *XRefTable) NamesDict() (types.Dict, error)
- func (xRefTable *XRefTable) NewEmbeddedFileStreamDict(filename string) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) NewEmbeddedStreamDict(r io.Reader, modDate time.Time) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) NewFileSpecDict(f, uf, desc string, indRefStreamDict types.IndirectRef) (types.Dict, error)
- func (xRefTable *XRefTable) NewFileSpecDictForAttachment(a Attachment) (types.Dict, error)
- func (xRefTable *XRefTable) NewSoundStreamDict(filename string, samplingRate int, fileSpecDict types.Dict) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) NewStreamDictForBuf(buf []byte) (*types.StreamDict, error)
- func (xRefTable *XRefTable) NewStreamDictForFile(filename string) (*types.StreamDict, error)
- func (xRefTable *XRefTable) NextForFree(objNr int) (int, error)
- func (xRefTable *XRefTable) PDF20() bool
- func (xRefTable *XRefTable) PageBoundaries(selectedPages types.IntSet) ([]PageBoundaries, error)
- func (xRefTable *XRefTable) PageContent(d types.Dict, pageNr int) ([]byte, error)
- func (xRefTable *XRefTable) PageDict(pageNr int, consolidateRes bool) (types.Dict, *types.IndirectRef, *InheritedPageAttrs, error)
- func (xRefTable *XRefTable) PageDictIndRef(page int) (*types.IndirectRef, error)
- func (xRefTable *XRefTable) PageDims() ([]types.Dim, error)
- func (xRefTable *XRefTable) PageNumber(pageObjNr int) (int, error)
- func (xRefTable *XRefTable) Pages() (*types.IndirectRef, error)
- func (xRefTable *XRefTable) ParseRootVersion() (v *string, err error)
- func (xRefTable *XRefTable) RectForArray(a types.Array) (*types.Rectangle, error)
- func (xRefTable *XRefTable) RemoveAllSignatures() error
- func (xRefTable *XRefTable) RemoveCollection() error
- func (xRefTable *XRefTable) RemoveEmbeddedFilesNameTree() error
- func (xRefTable *XRefTable) RemoveNameTree(nameTreeName string) error
- func (xRefTable *XRefTable) RemoveSignature()
- func (xRefTable *XRefTable) SetBeingValidated(ir types.IndirectRef) error
- func (xRefTable *XRefTable) SetValid(ir types.IndirectRef) error
- func (xRefTable *XRefTable) StreamDictIndRef(bb []byte) (*types.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
- type Zoom
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 )
const ( PermissionsNone = PermissionFlags(0xF0C3) PermissionsPrint = PermissionsNone + PermissionPrintRev2 + PermissionPrintRev3 PermissionsAll = PermissionFlags(0xFFFF) )
const ( RightDown orientation = iota DownRight LeftDown DownLeft )
These are the defined anchors for relative positioning.
const ( Unknown = iota False // aka invalid, not ok True // aka valid, ok )
const ( CRL = iota OCSP )
Preferred cert revocation checking mechanism values
const ( CertifiedSigPermNone = iota CertifiedSigPermNoChangesAllowed CertifiedSigPermFillingAndSigningOK CertifiedSigPermFillingAnnotatingAndSigningOK )
const ( SigTypeForm = iota SigTypePage SigTypeUR SigTypeDTS )
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 ( DegToRad = math.Pi / 180 RadToDeg = 180 / math.Pi )
const ( NoDiagonal = iota DiagonalLLToUR DiagonalULToLR )
Rotation along one of 2 diagonals
const ( WMText = iota WMImage WMPDF )
Watermark mode
const SignTSFormat = "2006-01-02 15:04:05 -0700"
const (
// StatsFileNameDefault is the standard stats filename.
StatsFileNameDefault = "stats.csv"
)
Variables ¶
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", AnnCustom: "Custom", }
AnnotTypeStrings manages string representations for annotation types.
var AnnotTypes = map[string]AnnotationType{ "Text": AnnText, "Link": AnnLink, "FreeText": AnnFreeText, "Line": AnnLine, "Square": AnnSquare, "Circle": AnnCircle, "Polygon": AnnPolygon, "PolyLine": AnnPolyLine, "Highlight": AnnHighLight, "Underline": AnnUnderline, "Squiggly": AnnSquiggly, "StrikeOut": AnnStrikeOut, "Stamp": AnnStamp, "Caret": AnnCaret, "Ink": AnnInk, "Popup": AnnPopup, "FileAttachment": AnnFileAttachment, "Sound": AnnSound, "Movie": AnnMovie, "Widget": AnnWidget, "Screen": AnnScreen, "PrinterMark": AnnPrinterMark, "TrapNet": AnnTrapNet, "Watermark": AnnWatermark, "3D": Ann3D, "Redact": AnnRedact, "Custom": AnnCustom, }
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
If you want to disable config dir usage in a multi threaded environment you are encouraged to use api.DisableConfigDir().
var CutParamMap = cutParameterMap{
"horizontalCut": parseHorCut,
"verticalCut": parseVertCut,
"dimensions": parseDimensionsCut,
"formsize": parsePageFormatCut,
"papersize": parsePageFormatCut,
"scalefactor": parseScaleFactorCut,
"border": parseBorderCut,
"margin": parseMarginCut,
"bgcolor": parseBackgroundColorCut,
}
CutParamMap maps cut configuration parameter names to parser functions.
var DestinationTypeStrings = map[DestinationType]string{ DestXYZ: "XYZ", DestFit: "Fit", DestFitH: "FitH", DestFitV: "FitV", DestFitR: "FitR", DestFitB: "FitB", DestFitBH: "FitBH", DestFitBV: "FitBV", }
DestinationTypeStrings manages string representations for destination types.
var (
ErrCorruptObjectOffset = errors.New("pdfcpu: corrupt object offset")
)
var ErrFormFieldCycle = errors.New("pdfcpu: circular form field tree")
ErrFormFieldCycle signals a form field tree cycle.
var ErrMaxRecursionDepthExceeded = errors.New("pdfcpu: max recursion depth exceeded")
ErrMaxRecursionDepthExceeded signals excessive parser or object graph nesting.
var ErrNoContent = errors.New("pdfcpu: page without content")
var ErrPageTreeCycle = errors.New("pdfcpu: circular page tree")
ErrPageTreeCycle signals a page tree node cycle.
var ErrPageTreeDuplicate = errors.New("pdfcpu: duplicate page tree node")
ErrPageTreeDuplicate signals a page tree node reachable from multiple parents.
var ResizeParamMap = resizeParameterMap{
"dimensions": parseDimensionsRes,
"enforce": parseEnforceOrientation,
"formsize": parsePageFormatRes,
"papersize": parsePageFormatRes,
"scalefactor": parseScaleFactorRes,
"bgcolor": parseBackgroundColorRes,
"border": parseBorderRes,
}
ResizeParamMap maps resize configuration parameter names to parser functions.
var SignatureReasonStrings = map[SignatureReason]string{ SignatureReasonUnknown: "no reason", SignatureReasonDocNotModified: "document has not been modified", SignatureReasonDocModified: "document has been modified", SignatureReasonSignatureForged: "signer's signature is not authentic", SignatureReasonTimestampTokenInvalid: "timestamp token is invalid", SignatureReasonCertInvalid: "signer's certificate is invalid", SignatureReasonCertNotTrusted: "signer's certificate chain is not in the configured local trusted certificate store", SignatureReasonCertExpired: "signer's certificate or one of its parent certificates has expired", SignatureReasonCertRevoked: "signer's certificate or one of its parent certificates has been revoked", SignatureReasonInternal: "internal error", SignatureReasonSelfSignedCertErr: "signer's self signed certificate is not trusted", }
SignatureReasonStrings manages string representations for signature reasons.
var SignatureStatusStrings = map[SignatureStatus]string{ SignatureStatusUnknown: "validity of the signature is unknown", SignatureStatusValid: "signature is valid", SignatureStatusInvalid: "signature is invalid", }
SignatureStatusStrings manages string representations for signature statuses.
var TrustedCertDir string
TrustedCertDir is the location for installed trusted certificates.
var UserCertPool *x509.CertPool
UserCertPool contains all certificates loaded from CertDir.
var VersionStr = "v0.13.0 dev"
VersionStr is the current pdfcpu version.
var ZoomParamMap = zoomParameterMap{
"factor": parseZoomFactor,
"hmargin": parseHMargin,
"vmargin": parseVMargin,
"bgcolor": parseBackgroundColorZoom,
"border": parseBorderZoom,
}
ZoomParamMap maps zoom configuration parameter names to parser functions.
Functions ¶
func AnchorPosAndAlign ¶
func AnchorPosAndAlign(a types.Anchor, r *types.Rectangle) (x, y float64, hAlign types.HAlignment, vAlign types.VAlignment)
AnchorPosAndAlign calculates position and alignment for an anchored rectangle r.
func AppendPageTree ¶
AppendPageTree appends a pagetree d1 to page tree d2.
func CSVSafeString ¶
CSVSafeString returns obj as a CSV-safe string.
func CalcBoundingBox ¶
CalcBoundingBox calculates a bounding box.
func CalcBoundingBoxForRects ¶
CalcBoundingBoxForRects calculates bounding box for rects.
func CertString ¶
func CertString(cert *x509.Certificate) string
CertString returns a string representation for cert.
func CheckConfigVersion ¶
func CheckConfigVersion(v string)
CheckConfigVersion prints a warning if the configuration is outdated.
func CheckRecursionDepth ¶
CheckRecursionDepth rejects recursion levels beyond maxDepth.
func ContentBytesForPageRotation ¶
ContentBytesForPageRotation returns content bytes compensating for rot.
func CreateDCTImageStreamDict ¶
func CreateDCTImageStreamDict(xRefTable *XRefTable, buf []byte, w, h, bpc int, cs string) (*types.StreamDict, error)
CreateDCTImageStreamDict returns a DCT encoded stream dict.
func CreateFlateImageStreamDict ¶
func CreateFlateImageStreamDict(xRefTable *XRefTable, buf, sm []byte, w, h, bpc int, cs string) (*types.StreamDict, error)
CreateFlateImageStreamDict returns a flate stream dict.
func CreateImageResource ¶
CreateImageResource creates a new XObject for given image data represented by r and applies optional filters.
func CreateImageStreamDict ¶
CreateImageStreamDict creates an image stream dictionary.
func DecodeUTF8ToByte ¶
DecodeUTF8ToByte decodes utf8 to byte.
func DetectKeywords ¶
DetectKeywords detects endobj and stream keywords in line.
func DetectKeywordsWithContext ¶
func DetectKeywordsWithContext(c context.Context, line string) (endInd int, streamInd int, err error)
DetectKeywordsWithContext detects endobj and stream keywords in line using c for cancellation.
func DrawMargins ¶
func DrawMargins(w io.Writer, c color.SimpleColor, colBB *types.Rectangle, borderWidth, mLeft, mRight, mTop, mBot float64)
DrawMargins draws margins.
func EnsureDefaultConfigAt ¶
EnsureDefaultConfigAt tries to load the default configuration from path. If path/pdfcpu/config.yaml is not found, it will be created.
func EqualObjects ¶
EqualObjects returns true if two objects are equal in the context of xrefTable. An object and an indirect reference to it are treated as equal. Objects may be object trees.
func FreeTextIntentName ¶
func FreeTextIntentName(fti FreeTextIntent) string
FreeTextIntentName returns the string representation for ft.
func ImageFileName ¶
ImageFileName returns true for supported image file types.
func ImageFileNames ¶
ImageFileNames returns a slice of image file names contained in dir constrained by maxFileSize.
func LineEndingStyleName ¶
func LineEndingStyleName(les LineEndingStyle) string
LineEndingStyleName line ending style name.
func LineIntentName ¶
func LineIntentName(li LineIntent) string
LineIntentName returns the string representation for li.
func LowerLeftCorner ¶
LowerLeftCorner returns the lower left corner for a bounding box anchored onto vp.
func NUpTilePDFBytes ¶
func NUpTilePDFBytes(wr io.Writer, rSrc, rDest *types.Rectangle, formResID string, nup *NUp, rotate bool)
NUpTilePDFBytes applies nup tiles to content bytes.
func ObjectStreamDict ¶
func ObjectStreamDict(sd *types.StreamDict) (*types.ObjectStreamDict, error)
ObjectStreamDict creates a ObjectStreamDict out of a StreamDict.
func ObjectStreamDictWithLimits ¶
func ObjectStreamDictWithLimits(sd *types.StreamDict, limits ResourceLimits) (*types.ObjectStreamDict, error)
ObjectStreamDictWithLimits creates a ObjectStreamDict out of a StreamDict using resource limits.
func ParseObject ¶
ParseObject parses next Object from string buffer and returns the updated (left clipped) buffer.
func ParseObjectAttributes ¶
ParseObjectAttributes parses object number and generation of the next object for given string buffer.
func ParseObjectContext ¶
func ParseObjectContext(c context.Context, line *string, level int, maxDepth ...int) (types.Object, error)
ParseObjectContext parses next Object from string buffer and returns the updated (left clipped) buffer. If the passed context is cancelled, parsing will be interrupted.
func ParseXRefStreamDict ¶
func ParseXRefStreamDict(sd *types.StreamDict) (*types.XRefStreamDict, error)
ParseXRefStreamDict creates a XRefStreamDict out of a StreamDict.
func ParseXRefStreamDictWithLimits ¶
func ParseXRefStreamDictWithLimits(sd *types.StreamDict, limits ResourceLimits) (*types.XRefStreamDict, error)
ParseXRefStreamDictWithLimits creates a XRefStreamDict out of a StreamDict using resource limits.
func PolyLineIntentName ¶
func PolyLineIntentName(pi PolyLineIntent) string
PolyLineIntentName returns the string representation for pi.
func PolygonIntentName ¶
func PolygonIntentName(pi PolygonIntent) string
PolygonIntentName returns the string representation for pi.
func ProcessRefCounts ¶
ProcessRefCounts processes reference counts.
func ProcessRefCountsWithError ¶
ProcessRefCountsWithError processes reference counts and returns an error.
func ResetCertificates ¶
func ResetCertificates() error
ResetCertificates resets installed trusted certificates to the build defaults.
func ShowDigestedSpecViolation ¶
func ShowDigestedSpecViolation(msg string)
ShowDigestedSpecViolation shows digested spec violation.
func ShowDigestedSpecViolationError ¶
ShowDigestedSpecViolationError shows digested spec violation error.
func SplitMultilineStr ¶
SplitMultilineStr splits a multiline string.
func TimingStats ¶
TimingStats prints processing time stats for an operation.
func ValidationTimingStats ¶
func ValidationTimingStats(dur1, dur2, dur float64)
ValidationTimingStats prints processing time stats for validation.
func WordWrap ¶
WordWrap wraps text at unicode whitespace to fit within a specified width using the given font and font size. Explicit newlines are honored, and whitespace at the beginning of a line is preserved (unless it would cause a word to overrun the line). Amounts and types of whitespace are preserved within lines.
func WriteColumn ¶
func WriteColumn(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, td TextDescriptor, width float64) *types.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 ¶
func WriteColumnAnchored(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, td TextDescriptor, a types.Anchor, width float64) *types.Rectangle
WriteColumnAnchored writes a justified text column with anchored position and returns its bounding box.
func WriteMultiLine ¶
func WriteMultiLine(xRefTable *XRefTable, w io.Writer, mediaBox, region *types.Rectangle, td TextDescriptor) *types.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.
Types ¶
type Alt ¶
type Alt struct {
//XMLName xml.Name `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# Alt"`
Entries []string `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# li"`
}
type Annot ¶
type Annot struct {
IndRefs *[]types.IndirectRef
Map AnnotMap
}
type AnnotMap ¶
type AnnotMap map[int]AnnotationRenderer
AnnotMap represents annotations by object number of the corresponding annotation dict.
type Annotation ¶
type Annotation struct {
SubType AnnotationType // The type of annotation that this dictionary describes.
CustomSubType string // Out of spec annot type.
Rect types.Rectangle // The annotation rectangle, defining the location of the annotation on the page in default user space units.
APObjNr int // The objNr of the appearance stream dict.
Contents string // Text that shall be displayed for the annotation.
NM string // (Since V1.4) The annotation name, a text string uniquely identifying it among all the annotations on its page.
ModificationDate string // M - The date and time when the annotation was most recently modified.
P *types.IndirectRef // An indirect reference to the page object with which this annotation is associated.
F AnnotationFlags // A set of flags specifying various characteristics of the annotation.
C *color.SimpleColor // The background color of the annotation’s icon when closed, pop up title bar color, link ann border color.
BorderRadX float64 // Border radius X
BorderRadY float64 // Border radius Y
BorderWidth float64 // Border width
Hash uint32
}
Annotation represents a PDF annotation.
func NewAnnotation ¶
func NewAnnotation( typ AnnotationType, customTyp string, rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64) Annotation
NewAnnotation returns a new annotation.
func NewAnnotationForRawType ¶
func NewAnnotationForRawType( typ string, rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64) Annotation
NewAnnotationForRawType returns a new annotation of a specific type.
func (Annotation) ContentString ¶
func (ann Annotation) ContentString() string
ContentString returns a string representation of ann's contents.
func (Annotation) CustomTypeString ¶
func (ann Annotation) CustomTypeString() string
CustomTypeString returns a string representation of ann's contents.
func (Annotation) HashString ¶
func (ann Annotation) HashString() uint32
HashString returns the annotation hash.
func (Annotation) RectString ¶
func (ann Annotation) RectString() string
RectString returns ann's positioning rectangle.
func (Annotation) Rectangle ¶
func (ann Annotation) Rectangle() types.Rectangle
Rectangle returns ann's positioning rectangle.
func (Annotation) RenderDict ¶
func (ann Annotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann as dict.
func (Annotation) TypeString ¶
func (ann Annotation) TypeString() string
TypeString returns a string representation of ann's type.
type AnnotationFlags ¶
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 ¶
type AnnotationRenderer interface {
RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
Type() AnnotationType
Rectangle() types.Rectangle
RectString() string
APObjNrInt() int
ID() string
Content() string
ContentString() string
CustomTypeString() string
}
AnnotationRenderer is the interface for PDF annotations.
type AnnotationType ¶
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 AnnCustom )
type Attachment ¶
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 ¶
func (a Attachment) String() string
String returns the string value of a.
type BookletBinding ¶
type BookletBinding int
const ( LongEdge BookletBinding = iota ShortEdge )
func (BookletBinding) String ¶
func (b BookletBinding) String() string
String returns the string value of b.
type BookletPage ¶
type BookletType ¶
type BookletType int
const ( Booklet BookletType = iota BookletAdvanced BookletPerfectBound )
These are the types of booklet layouts.
func (BookletType) String ¶
func (b BookletType) String() string
String returns the string value of b.
type BorderStyle ¶
type BorderStyle int
BorderStyle (see table 168)
const ( BSSolid BorderStyle = iota BSDashed BSBeveled BSInset BSUnderline )
type BorderStyling ¶
type BorderStyling struct {
Color *color.SimpleColor
LineStyle *types.LineJoinStyle
Width float64
}
type Box ¶
type Box struct {
Rect *types.Rectangle `json:"rect"` // Rectangle in user space.
Inherited bool `json:"-"` // Media box and Crop box may be inherited.
RefBox string `json:"-"` // Use position of another box,
// Margins to parent box in points.
// Relative to parent box if 0 < x < 0.5
MLeft, MRight float64 `json:"-"`
MTop, MBot float64 `json:"-"`
// Relative position within parent box
Dim *types.Dim `json:"-"` // dimensions
Pos types.Anchor `json:"-"` // position anchor within parent box, one of tl,tc,tr,l,c,r,bl,bc,br.
Dx, Dy int `json:"-"` // 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 CaretAnnotation ¶
type CaretAnnotation struct {
MarkupAnnotation
RD *types.Rectangle // A set of four numbers that shall describe the numerical differences between two rectangles: the Rect entry of the annotation and the actual boundaries of the underlying caret.
Paragraph bool // A new paragraph symbol (¶) shall be associated with the caret.
}
func NewCaretAnnotation ¶
func NewCaretAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, rd *types.Rectangle, paragraph bool) CaretAnnotation
NewCaretAnnotation returns a new caret annotation.
func (CaretAnnotation) RenderDict ¶
func (ann CaretAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann as dict.
type CertificateDetails ¶
type CertificateDetails struct {
Leaf bool
SelfSigned bool
Subject string
Issuer string
SerialNumber string
ValidFrom time.Time
ValidThru time.Time
Expired bool
Qualified bool
CA bool
Usage string
Version int
SignAlg string
KeySize int
Revocation RevocationDetails
Trust TrustDetails
IssuerCertificate *CertificateDetails
}
func (CertificateDetails) String ¶
func (cd CertificateDetails) String() string
String returns the string value of cd.
type CircleAnnotation ¶
type CircleAnnotation struct {
MarkupAnnotation
FillCol *color.SimpleColor
Margins types.Array
BorderWidth float64
BorderStyle BorderStyle
CloudyBorder bool
CloudyBorderIntensity int // 0,1,2
}
CircleAnnotation represents a square annotation.
func NewCircleAnnotation ¶
func NewCircleAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, fillCol *color.SimpleColor, MLeft, MTop, MRight, MBot float64, borderWidth float64, borderStyle BorderStyle, cloudyBorder bool, cloudyBorderIntensity int) CircleAnnotation
NewCircleAnnotation returns a new circle annotation.
func (CircleAnnotation) RenderDict ¶
func (ann CircleAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a page annotation dict.
type CommandMode ¶
type CommandMode int
CommandMode specifies the operation being executed.
const ( VALIDATE CommandMode = iota LISTINFO OPTIMIZE SPLIT SPLITBYPAGENR MERGECREATE MERGECREATEZIP MERGEAPPEND EXTRACTIMAGES EXTRACTFONTS EXTRACTPAGES EXTRACTCONTENT EXTRACTMETADATA TRIM LISTATTACHMENTS EXTRACTATTACHMENTS ADDATTACHMENTS ADDATTACHMENTSPORTFOLIO REMOVEATTACHMENTS LISTPERMISSIONS SETPERMISSIONS ADDWATERMARKS REMOVEWATERMARKS IMPORTIMAGES INSERTPAGESBEFORE INSERTPAGESAFTER REMOVEPAGES LISTKEYWORDS ADDKEYWORDS REMOVEKEYWORDS LISTPROPERTIES ADDPROPERTIES REMOVEPROPERTIES COLLECT CROP LISTBOXES ADDBOXES REMOVEBOXES LISTANNOTATIONS ADDANNOTATIONS REMOVEANNOTATIONS ROTATE NUP BOOKLET LISTBOOKMARKS ADDBOOKMARKS REMOVEBOOKMARKS IMPORTBOOKMARKS EXPORTBOOKMARKS LISTIMAGES UPDATEIMAGES CREATE DUMP LISTFORMFIELDS REMOVEFORMFIELDS LOCKFORMFIELDS UNLOCKFORMFIELDS RESETFORMFIELDS EXPORTFORMFIELDS FILLFORMFIELDS MULTIFILLFORMFIELDS ENCRYPT DECRYPT CHANGEUPW CHANGEOPW CHEATSHEETSFONTS INSTALLFONTS LISTFONTS RESIZE POSTER NDOWN CUT LISTPAGELAYOUT SETPAGELAYOUT RESETPAGELAYOUT LISTPAGEMODE SETPAGEMODE RESETPAGEMODE LISTVIEWERPREFERENCES SETVIEWERPREFERENCES RESETVIEWERPREFERENCES ZOOM LISTCERTIFICATES INSPECTCERTIFICATES IMPORTCERTIFICATES VALIDATESIGNATURES REMOVESIGNATURES ADDSIGNATURE )
The available commands.
func (CommandMode) AllowRemoveEncryption ¶
func (cmd CommandMode) AllowRemoveEncryption() bool
AllowRemoveEncryption enables removing encryption during validation.
func (CommandMode) AllowRemoveSignatures ¶
func (cmd CommandMode) AllowRemoveSignatures() bool
AllowRemoveSignatures enables removing signatures during validation.
type Configuration ¶
type Configuration struct {
// Location of corresponding config.yml
Path string
CreationDate string
Version string
// Ensure .pdf input file extension.
CheckFileNameExt bool
// Enable PDF V1.5 compatible processing of object streams, xref streams, hybrid PDF files.
Reader15 bool
// Enable decoding of all streams (fontfiles, images..) for logging purposes.
DecodeAllStreams bool
// Validate against ISO-32000: strict or relaxed.
ValidationMode int
// Enable validation right before writing.
PostProcessValidate bool
// Check for broken links in LinkedAnnotations/URIActions.
ValidateLinks bool
// End of line char sequence for writing.
Eol string
// Turn 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
// Switch between xRefSection (<=V1.4) and objectStream/xRefStream (>=V1.5) writing.
WriteXRefStream bool
// CSV filename holding input file statistics.
StatsFileName string
// Supplied user password.
UserPW string
UserPWNew *string
// Supplied owner password.
OwnerPW string
OwnerPWNew *string
// Supplied private key password.
PrivateKeyPW 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 PermissionFlags // int16
// Command being executed.
Cmd CommandMode
// Display unit in effect.
Unit types.DisplayUnit
// Timestamp format.
TimestampFormat string
// Date format.
DateFormat string
// Optimize after reading and validating the xreftable but before processing.
Optimize bool
// Optimize after processing but before writing.
// TODO add to config.yml
OptimizeBeforeWriting bool
// Optimize page resources via content stream analysis. (assuming Optimize == true || OptimizeBeforeWriting == true)
OptimizeResourceDicts bool
// Optimize duplicate content streams across pages. (assuming Optimize == true || OptimizeBeforeWriting == true)
OptimizeDuplicateContentStreams bool
// Merge creates bookmarks.
CreateBookmarks bool
// MergeBookmarkMode controls how merge creates or preserves bookmarks.
// This is a runtime option and is not read from config.yml.
MergeBookmarkMode MergeBookmarkMode
// PDF Viewer is expected to supply appearance streams for form fields.
NeedAppearances bool
// Internet availability.
Offline bool
// HTTP timeout in seconds.
Timeout int
// Http timeout in seconds for CRL revocation checking.
TimeoutCRL int
// Http timeout in seconds for OCSP revocation checking.
TimeoutOCSP int
// Preferred certificate revocation checking mechanism: CRL, OSCP
PreferredCertRevocationChecker int
// Limit form field content for display purposes when using pdfcpu form list.
// If > 0 affects the columns AltName, Default and Value.
FormFieldListMaxColWidth int
// Limits controls resource usage for input-driven allocation.
Limits ResourceLimits
// Do not encrypt output files.
RemoveEncryption bool
// Remove existing signatures.
RemoveSignatures bool
}
Configuration of a Context.
func NewAESConfiguration ¶
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 ¶
func NewRC4Configuration(userPW, ownerPW string, keyLength int) *Configuration
NewRC4Configuration returns a default configuration for RC4 encryption.
func (*Configuration) ApplyReducedFeatureSet ¶
func (c *Configuration) ApplyReducedFeatureSet() bool
ApplyReducedFeatureSet returns true if complex entries like annotations shall not be written.
func (*Configuration) EolString ¶
func (c *Configuration) EolString() string
EolString returns a string rep for the eol in effect.
func (*Configuration) PreferredCertRevocationCheckerString ¶
func (c *Configuration) PreferredCertRevocationCheckerString() string
PreferredCertRevocationCheckerString returns a string rep for the preferred certificate revocation checker in effect.
func (*Configuration) SetUnit ¶
func (c *Configuration) SetUnit(s string)
SetUnit configures the display unit.
func (*Configuration) UnitString ¶
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 ¶
type Context struct {
*Configuration
*XRefTable
Read *ReadContext
Optimize *OptimizationContext
Write *WriteContext
WritingPages bool // true, when writing page dicts.
Dest bool // true when writing a destination within a page.
}
Context represents an environment for processing PDF files.
func NewContext ¶
func NewContext(rs io.ReadSeeker, conf *Configuration) (*Context, error)
NewContext initializes a new Context.
func (*Context) AddAttachment ¶
func (ctx *Context) AddAttachment(a Attachment, useCollection bool) error
AddAttachment adds a.
func (*Context) AddAttachmentsToInfoDigest ¶
AddAttachmentsToInfoDigest adds attachments to info digest.
func (*Context) AddPageBoundaries ¶
func (ctx *Context) AddPageBoundaries(selectedPages types.IntSet, pb *PageBoundaries) error
AddPageBoundaries adds page boundaries specified by pb for selected pages.
func (*Context) ConvertToUnit ¶
ConvertToUnit converts dimensions in point to inches,cm,mm
func (*Context) ExtractAttachment ¶
func (ctx *Context) ExtractAttachment(a Attachment) (*Attachment, error)
ExtractAttachment extracts a fully populated attachment.
func (*Context) ExtractAttachments ¶
func (ctx *Context) ExtractAttachments(ids []string) ([]Attachment, error)
ExtractAttachments extracts attachments with id.
func (*Context) ListAttachments ¶
func (ctx *Context) ListAttachments() ([]Attachment, error)
ListAttachments returns a slice of attachment stubs (attachment w/o data).
func (*Context) ListPageBoundaries ¶
func (ctx *Context) ListPageBoundaries(selectedPages types.IntSet, wantPB *PageBoundaries) ([]string, error)
ListPageBoundaries lists page boundaries specified in wantPB for selected pages.
func (*Context) NUpTilePDFBytesForPDF ¶
func (ctx *Context) NUpTilePDFBytesForPDF( pageNr int, formsResDict types.Dict, buf *bytes.Buffer, rDest *types.Rectangle, nup *NUp, rotate bool) error
NUpTilePDFBytesForPDF applies nup tiles from PDF.
func (*Context) RemoveAttachment ¶
func (ctx *Context) RemoveAttachment(a Attachment) (bool, error)
RemoveAttachment removes a and returns true on success.
func (*Context) RemoveAttachments ¶
RemoveAttachments removes attachments with given id and returns true if anything removed.
func (*Context) RemovePageBoundaries ¶
func (ctx *Context) RemovePageBoundaries(selectedPages types.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) ResetWriteContext ¶
func (ctx *Context) ResetWriteContext()
ResetWriteContext prepares an existing WriteContext for a new file to be written.
func (*Context) SearchEmbeddedFilesNameTreeNodeByContent ¶
func (ctx *Context) SearchEmbeddedFilesNameTreeNodeByContent(s string) (*string, types.Object, error)
SearchEmbeddedFilesNameTreeNodeByContent tries to identify a name tree by content.
func (*Context) UnitString ¶
UnitString returns a string representation for ctx.Unit.
type Creator ¶
type Creator struct {
//XMLName xml.Name `xml:"http://purl.org/dc/elements/1.1/ creator"`
Seq Seq `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# Seq"`
}
type Cut ¶
type Cut struct {
Hor []float64 // Horizontal cut points
Vert []float64 // Vertical cut points
Scale float64 // scale factor x > 1 (poster)
PageSize string // paper/form size eg. A2,A3,A4,Legal,Ledger,...
PageDim *types.Dim // page dimensions in display unit
Unit types.DisplayUnit // display unit
UserDim bool // true if dimensions set by dim rather than formsize
Border bool // true to render crop box
Margin float64 // glue area in display unit
BgColor *color.SimpleColor // background color
Origin types.Corner // one of 4 page corners, default = UpperLeft
}
type Desc ¶
type Desc struct {
//XMLName xml.Name `xml:"http://purl.org/dc/elements/1.1/ description"`
Alt Alt `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# Alt"`
}
type Description ¶
type Description struct {
//XMLName xml.Name `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# Description"`
Title Title `xml:"http://purl.org/dc/elements/1.1/ title"`
Author Creator `xml:"http://purl.org/dc/elements/1.1/ creator"`
Subject Desc `xml:"http://purl.org/dc/elements/1.1/ description"`
Creator string `xml:"http://ns.adobe.com/xap/1.0/ CreatorTool"`
CreationDate UserDate `xml:"http://ns.adobe.com/xap/1.0/ CreateDate"`
ModDate UserDate `xml:"http://ns.adobe.com/xap/1.0/ ModifyDate"`
Producer string `xml:"http://ns.adobe.com/pdf/1.3/ Producer"`
Trapped bool `xml:"http://ns.adobe.com/pdf/1.3/ Trapped"`
Keywords string `xml:"http://ns.adobe.com/pdf/1.3/ Keywords"`
}
type Destination ¶
type Destination struct {
Typ DestinationType
PageNr int
Left, Bottom, Right, Top int
Zoom float32
}
Destination represents a PDF destination.
func (Destination) Array ¶
func (dest Destination) Array(indRef types.IndirectRef) types.Array
Array returns a destination array for dest using indRef.
func (Destination) String ¶
func (dest Destination) String() string
String returns the string value of dest.
type DestinationType ¶
type DestinationType int
DestinationType represents the various PDF destination types.
const ( DestXYZ DestinationType = iota // [page /XYZ left top zoom] DestFit // [page /Fit] DestFitH // [page /FitH top] DestFitV // [page /FitV left] DestFitR // [page /FitR left bottom right top] DestFitB // [page /FitB] DestFitBH // [page /FitBH top] DestFitBV // [page /FitBV left] )
See table 151
type DuplicateImageObject ¶
type DuplicateImageObject struct {
ImageDict *types.StreamDict
NewObjNr int
}
DuplicateImageObject represents a redundant image.
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 FieldAnnotation ¶
type FontMap ¶
type FontMap map[string]FontResource
FontMap maps font names to font resources.
func DrawBookletGuides ¶
DrawBookletGuides draws guides according to corresponding nup value.
type FontObject ¶
type FontObject struct {
ResourceNames []string
Prefix string
FontName string
FontDict types.Dict
Data []byte
Extension string
Embedded bool
}
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) 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
String returns the string value of fo.
func (FontObject) SubType ¶
func (fo FontObject) SubType() string
SubType returns the SubType of this font.
type FontResource ¶
type FontResource struct {
Res Resource
Lang string
CIDSet *types.IndirectRef
FontFile *types.IndirectRef
ToUnicode *types.IndirectRef
W *types.IndirectRef
}
FontResource represents an existing PDF font resource.
type FormFieldVisit ¶
type FormFieldVisit struct {
// contains filtered or unexported fields
}
FormFieldVisit tracks form field ancestor traversal state.
func NewFormFieldVisit ¶
func NewFormFieldVisit() *FormFieldVisit
NewFormFieldVisit returns a form field traversal state.
func (*FormFieldVisit) Check ¶
func (v *FormFieldVisit) Check(objNr int) error
Check rejects form field ancestor cycles without entering objNr.
func (*FormFieldVisit) Enter ¶
func (v *FormFieldVisit) Enter(objNr int) error
Enter rejects form field ancestor cycles.
func (*FormFieldVisit) Leave ¶
func (v *FormFieldVisit) Leave(objNr int)
Leave leaves the current form field node.
type FreeTextAnnotation ¶
type FreeTextAnnotation struct {
MarkupAnnotation
Text string // Rich text string, see XFA 3.3
HAlign types.HAlignment // Code specifying the form of quadding (justification)
FontName string // font name
FontSize int // font size
FontCol *color.SimpleColor // font color
DS string // Default style string
Intent string // Description of the intent of the free text annotation
CallOutLine types.Array // if intent is FreeTextCallout
CallOutLineEndingStyle string
Margins types.Array
BorderWidth float64
BorderStyle BorderStyle
CloudyBorder bool
CloudyBorderIntensity int // 0,1,2
}
FreeText Annotation displays text directly on the page.
func NewFreeTextAnnotation ¶
func NewFreeTextAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, text string, hAlign types.HAlignment, fontName string, fontSize int, fontCol *color.SimpleColor, ds string, intent *FreeTextIntent, callOutLine types.Array, callOutLineEndingStyle *LineEndingStyle, MLeft, MTop, MRight, MBot float64, borderWidth float64, borderStyle BorderStyle, cloudyBorder bool, cloudyBorderIntensity int) FreeTextAnnotation
NewFreeTextAnnotation returns a new free text annotation.
func (FreeTextAnnotation) RenderDict ¶
func (ann FreeTextAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a PDF annotation dict.
type FreeTextIntent ¶
type FreeTextIntent int
FreeTextIntent represents the various free text annotation intents.
const ( IntentFreeText FreeTextIntent = 1 << iota IntentFreeTextCallout IntentFreeTextTypeWriter )
type HighlightAnnotation ¶
type HighlightAnnotation struct {
TextMarkupAnnotation
}
func NewHighlightAnnotation ¶
func NewHighlightAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, quad types.QuadPoints) HighlightAnnotation
NewHighlightAnnotation returns a new highlight annotation.
type Image ¶
type Image struct {
io.Reader
Name string // Resource name
FileType string
PageNr int
ObjNr int
Width int // "Width"
Height int // "Height"
Bpc int // "BitsPerComponent"
Cs string // "ColorSpace"
Comp int // color component count
IsImgMask bool // "ImageMask"
HasImgMask bool // "Mask"
HasSMask bool // "SMask"
Thumb bool // "Thumbnail"
Interpol bool // "Interpolate"
Size int64 // "Length"
Filter string // filter pipeline
DecodeParms string
}
Image is a Reader representing an image resource.
type ImageMap ¶
type ImageMap map[string]ImageResource
ImageMap maps image filenames to image resources.
type ImageObject ¶
type ImageObject struct {
ResourceNames map[int]string
ImageDict *types.StreamDict
}
ImageObject represents an image used in a PDF file.
func (*ImageObject) AddResourceName ¶
func (io *ImageObject) AddResourceName(pageNr int, resourceName string)
AddResourceName adds a resourceName to this imageObject's ResourceNames map.
func (ImageObject) ResourceNamesString ¶
func (io ImageObject) ResourceNamesString() string
ResourceNamesString returns a string representation of the ResourceNames for this image.
type ImageResource ¶
ImageResource represents an existing PDF image resource.
func CreateImageResources ¶
func CreateImageResources(xRefTable *XRefTable, r io.Reader, gray, sepia bool) ([]ImageResource, error)
CreateImageResources creates a new XObject for given image data represented by r and applies optional filters.
type InheritedPageAttrs ¶
type InheritedPageAttrs struct {
Resources types.Dict
MediaBox *types.Rectangle
CropBox *types.Rectangle
Rotate int
}
InheritedPageAttrs represents all inherited page attributes.
type InkAnnotation ¶
type InkAnnotation struct {
MarkupAnnotation
InkList []InkPath // Array of n arrays, each representing a stroked path of points in user space.
BorderWidth float64
BorderStyle BorderStyle
}
func NewInkAnnotation ¶
func NewInkAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, ink []InkPath, borderWidth float64, borderStyle BorderStyle) InkAnnotation
NewInkAnnotation returns a new ink annotation.
func (InkAnnotation) RenderDict ¶
func (ann InkAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann as dict.
type InkPath ¶
type InkPath []float64
A series of alternating x and y coordinates in PDF user space, specifying points along the path.
type LineAnnotation ¶
type LineAnnotation struct {
MarkupAnnotation
P1, P2 types.Point // Two points in default user space.
LineEndings types.Array // Optional array of two names that shall specify the line ending styles.
LeaderLineLength float64 // Length of leader lines in default user space that extend from each endpoint of the line perpendicular to the line itself.
LeaderLineOffset float64 // Non-negative number that shall represent the length of the leader line offset, which is the amount of empty space between the endpoints of the annotation and the beginning of the leader lines.
LeaderLineExtensionLength float64 // Non-negative number that shall represents the length of leader line extensions that extend from the line proper 180 degrees from the leader lines,
Intent string // Optional description of the intent of the line annotation.
Measure types.Dict // Optional measure dictionary that shall specify the scale and units that apply to the line annotation.
Caption bool // Use text specified by "Contents" or "RC" as caption.
CaptionPositionTop bool // if true the caption shall be on top of the line else caption shall be centred inside the line.
CaptionOffsetX float64
CaptionOffsetY float64
FillCol *color.SimpleColor
BorderWidth float64
BorderStyle BorderStyle
}
LineAnnotation represents a line annotation.
func NewLineAnnotation ¶
func NewLineAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, p1, p2 types.Point, beginLineEndingStyle *LineEndingStyle, endLineEndingStyle *LineEndingStyle, leaderLineLength float64, leaderLineOffset float64, leaderLineExtensionLength float64, intent *LineIntent, measure types.Dict, caption bool, captionPosTop bool, captionOffsetX float64, captionOffsetY float64, fillCol *color.SimpleColor, borderWidth float64, borderStyle BorderStyle) LineAnnotation
NewLineAnnotation returns a new line annotation.
func (LineAnnotation) RenderDict ¶
func (ann LineAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a PDF annotation dict.
type LineEndingStyle ¶
type LineEndingStyle int
LineEndingStyle (see table 179)
const ( LESquare LineEndingStyle = iota LECircle LEDiamond LEOpenArrow LEClosedArrow LENone LEButt LEROpenArrow LERClosedArrow LESlash )
type LineIntent ¶
type LineIntent int
LineIntent represents the various line annotation intents.
const ( IntentLineArrow LineIntent = 1 << iota IntentLineDimension )
type LinkAnnotation ¶
type LinkAnnotation struct {
Annotation
Dest *Destination // internal link
URI string // external link
Quad types.QuadPoints // shall be ignored if any coordinate lies outside the region specified by Rect.
Border bool // render border using borderColor.
BorderWidth float64
BorderStyle BorderStyle
}
LinkAnnotation represents a PDF link annotation.
func NewLinkAnnotation ¶
func NewLinkAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, borderCol *color.SimpleColor, dest *Destination, uri string, quad types.QuadPoints, border bool, borderWidth float64, borderStyle BorderStyle) LinkAnnotation
NewLinkAnnotation returns a new link annotation.
func (LinkAnnotation) ContentString ¶
func (ann LinkAnnotation) ContentString() string
ContentString returns a string representation of ann's content.
func (LinkAnnotation) RenderDict ¶
func (ann LinkAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a page annotation dict.
type MarkupAnnotation ¶
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 *types.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 ¶
func NewMarkupAnnotation( subType AnnotationType, rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string) MarkupAnnotation
NewMarkupAnnotation returns a new markup annotation.
func (MarkupAnnotation) ContentString ¶
func (ann MarkupAnnotation) ContentString() string
ContentString returns a string representation of ann's content.
func (MarkupAnnotation) RenderDict ¶
func (ann MarkupAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann as dict.
type MergeBookmarkMode ¶
type MergeBookmarkMode string
MergeBookmarkMode controls how merge creates or preserves bookmarks.
const ( // MergeBookmarkModeWrap creates one top-level bookmark per merged file. MergeBookmarkModeWrap MergeBookmarkMode = "wrap" // MergeBookmarkModePreserve merges existing bookmark roots without per-file wrapper bookmarks. MergeBookmarkModePreserve MergeBookmarkMode = "preserve" )
type NUp ¶
type NUp struct {
PageDim *types.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 orientation
Enforce bool // enforce best-fit orientation of individual content on grid.
Grid *types.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 float64 // Cropbox for n-Up content.
Border bool // Draw bounding box.
BorderOnCropbox *BorderStyling // Draw bounding box around crop box.
BookletGuides bool // Draw folding and cutting lines.
MultiFolio bool // Render booklet as sequence of folios.
FolioSize int // Booklet multifolio folio size: default: 8
BookletType BookletType // Is this a booklet or booklet cover layout
BookletBinding BookletBinding // Does the booklet have short or long-edge binding
InpUnit types.DisplayUnit // input display unit.
BgColor *color.SimpleColor // background color
}
NUp represents the command details for the command "NUp".
func DefaultNUpConfig ¶
func DefaultNUpConfig() *NUp
DefaultNUpConfig returns the default NUp configuration.
func (NUp) IsTopFoldBinding ¶
IsTopFoldBinding reports whether top fold binding.
func (NUp) RectsForGrid ¶
RectsForGrid calculates dest rectangles for given grid.
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 types.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) Add ¶
func (n *Node) Add(xRefTable *XRefTable, k string, v types.Object, m NameMap, nameRefDictKeys []string) error
Add adds an entry to a name tree.
func (*Node) AppendToNames ¶
AppendToNames adds an entry to a leaf node (for internalizing name trees).
func (*Node) HandleLeaf ¶
func (n *Node) HandleLeaf(xRefTable *XRefTable, k string, v types.Object, m NameMap, nameRefDictKeys []string) error
HandleLeaf processes a leaf node.
func (*Node) Process ¶
func (n *Node) Process(xRefTable *XRefTable, handler func(*XRefTable, string, *types.Object) error) error
Process traverses the nametree applying a handler to each entry (key-value pair).
type NonFullScreenPageMode ¶
type NonFullScreenPageMode PageMode
const ( NFSPageModeUseNone NonFullScreenPageMode = iota NFSPageModeUseOutlines NFSPageModeUseThumb NFSPageModeUseOC )
type OptimizationContext ¶
type OptimizationContext struct {
// Font section
PageFonts []types.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]types.Dict // Registry of duplicate font dicts.
DuplicateFontObjs types.IntSet // The set of objects that represents the union of the object graphs of all duplicate font dicts.
CorruptFontResDicts []types.Dict // Corrupted fontDicts encountered during bypassing xreftable.
// Image section
PageImages []types.IntSet // For each page a registry of image object numbers.
ImageObjects map[int]*ImageObject // ImageObject lookup table by image object number.
DuplicateImages map[int]*DuplicateImageObject // Registry of duplicate image dicts.
DuplicateImageObjs types.IntSet // The set of objects that represents the union of the object graphs of all duplicate image dicts.
ContentStreamCache map[int]*types.StreamDict
FormStreamCache map[int]*types.StreamDict
DuplicateInfoObjects types.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 optimization 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 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 ¶
type Page struct {
MediaBox *types.Rectangle
CropBox *types.Rectangle
Fm FontMap
Im ImageMap
Annots []FieldAnnotation
AnnotTabs map[int]FieldAnnotation
LinkAnnots []LinkAnnotation
Buf *bytes.Buffer
Fields types.Array
}
Page represents rendered page content.
func NewPageWithBg ¶
func NewPageWithBg(mediaBox *types.Rectangle, c color.SimpleColor) Page
NewPageWithBg creates a page for a mediaBox.
type PageBoundaries ¶
type PageBoundaries struct {
Media *Box `json:"mediaBox,omitempty"`
Crop *Box `json:"cropBox,omitempty"`
Trim *Box `json:"trimBox,omitempty"`
Bleed *Box `json:"bleedBox,omitempty"`
Art *Box `json:"artBox,omitempty"`
Rot int `json:"rot"` // The effective page rotation.
Orientation string `json:"orient"`
}
PageBoundaries represent the defined PDF page boundaries.
func ParseBoxList ¶
func ParseBoxList(s string) (*PageBoundaries, error)
ParseBoxList parses a list of box
func ParsePageBoundaries ¶
func ParsePageBoundaries(s string, unit types.DisplayUnit) (*PageBoundaries, error)
ParsePageBoundaries parses a list of box definitions and assignments.
func (PageBoundaries) ArtBox ¶
func (pb PageBoundaries) ArtBox() *types.Rectangle
ArtBox returns the effective artbox for pb.
func (PageBoundaries) BleedBox ¶
func (pb PageBoundaries) BleedBox() *types.Rectangle
BleedBox returns the effective bleedbox for pb.
func (PageBoundaries) CropBox ¶
func (pb PageBoundaries) CropBox() *types.Rectangle
CropBox returns the effective cropbox for pb.
func (PageBoundaries) MediaBox ¶
func (pb PageBoundaries) MediaBox() *types.Rectangle
MediaBox returns the effective mediabox for pb.
func (*PageBoundaries) ResolveBox ¶
func (pb *PageBoundaries) ResolveBox(s string) error
ResolveBox resolves s and tries to assign an empty page boundary.
func (*PageBoundaries) SelectAll ¶
func (pb *PageBoundaries) SelectAll()
SelectAll selects all page boundaries.
func (PageBoundaries) String ¶
func (pb PageBoundaries) String() string
String returns the string value of pb.
func (PageBoundaries) TrimBox ¶
func (pb PageBoundaries) TrimBox() *types.Rectangle
TrimBox returns the effective trimbox for pb.
type PageBoundary ¶
type PageBoundary int
const ( MediaBox PageBoundary = iota CropBox TrimBox BleedBox ArtBox )
func PageBoundaryFor ¶
func PageBoundaryFor(s string) *PageBoundary
PageBoundaryFor returns a page boundary for s.
func (*PageBoundary) String ¶
func (pb *PageBoundary) String() string
String returns the string value of pb.
type PageLayout ¶
type PageLayout int
const ( PageLayoutSinglePage PageLayout = iota PageLayoutTwoColumnLeft PageLayoutTwoColumnRight PageLayoutTwoPageLeft PageLayoutTwoPageRight )
func PageLayoutFor ¶
func PageLayoutFor(s string) *PageLayout
PageLayoutFor returns the page layout for s.
func (*PageLayout) String ¶
func (pl *PageLayout) String() string
String returns the string value of pl.
type PageResourceNames ¶
PageResourceNames represents the required resource names for a specific page as extracted from its content streams.
func NewPageResourceNames ¶
func NewPageResourceNames() PageResourceNames
NewPageResourceNames returns initialized pageResourceNames.
func (PageResourceNames) HasContent ¶
func (prn PageResourceNames) HasContent() bool
HasContent returns true in any resource names present.
func (PageResourceNames) HasResources ¶
func (prn PageResourceNames) HasResources(s string) bool
HasResources returns true for any resource names present in resource subDict s.
func (PageResourceNames) Resources ¶
func (prn PageResourceNames) Resources(s string) types.StringSet
Resources returns a set of all required resource names for subdict s.
func (PageResourceNames) String ¶
func (prn PageResourceNames) String() string
String returns the string value of prn.
type PageTreeVisit ¶
type PageTreeVisit struct {
// contains filtered or unexported fields
}
PageTreeVisit tracks page tree traversal state.
func NewPageTreeVisit ¶
func NewPageTreeVisit() *PageTreeVisit
NewPageTreeVisit returns a page tree traversal state.
func (*PageTreeVisit) Enter ¶
func (v *PageTreeVisit) Enter(objNr int) error
Enter rejects page tree cycles and duplicate page tree nodes.
func (*PageTreeVisit) Leave ¶
func (v *PageTreeVisit) Leave(objNr int)
Leave leaves the current page tree node.
type PaperHandling ¶
type PaperHandling int
const ( Simplex PaperHandling = iota DuplexFlipShortEdge DuplexFlipLongEdge )
func PaperHandlingFor ¶
func PaperHandlingFor(s string) *PaperHandling
PaperHandlingFor returns paper handling for s.
func (*PaperHandling) String ¶
func (ph *PaperHandling) String() string
String returns the string value of ph.
type PdfResources ¶
type PdfResources struct {
Content []byte
ResDict *types.IndirectRef
Bb *types.Rectangle // visible region in user space
}
type PermissionFlags ¶
type PermissionFlags int
See table 22 - User access permissions
const ( UnusedFlag1 PermissionFlags = 1 << iota // Bit 1: unused UnusedFlag2 // Bit 2: unused PermissionPrintRev2 // Bit 3: Print (security handlers rev.2), draft print (security handlers >= rev.3) PermissionModify // Bit 4: Modify contents by operations other than controlled by bits 6, 9, 11. PermissionExtract // Bit 5: Copy, extract text & graphics PermissionModAnnFillForm // Bit 6: Add or modify annotations, fill form fields, in conjunction with bit 4 create/mod form fields. UnusedFlag7 // Bit 7: unused UnusedFlag8 // Bit 8: unused PermissionFillRev3 // Bit 9: Fill form fields (security handlers >= rev.3) PermissionExtractRev3 // Bit 10: Copy, extract text & graphics (security handlers >= rev.3) (unused since PDF 2.0) PermissionAssembleRev3 // Bit 11: Assemble document (security handlers >= rev.3) PermissionPrintRev3 // Bit 12: Print (security handlers >= rev.3) )
type PgAnnots ¶
type PgAnnots map[AnnotationType]Annot
PgAnnots represents a map of page annotations by type.
type PolyLineAnnotation ¶
type PolyLineAnnotation struct {
MarkupAnnotation
Vertices types.Array // Array of numbers specifying the alternating horizontal and vertical coordinates, respectively, of each vertex, in default user space.
Path types.Array // Array of n arrays, each supplying the operands for a path building operator (m, l or c).
Intent string // Optional description of the intent of the polyline annotation.
Measure types.Dict // Optional measure dictionary that shall specify the scale and units that apply to the annotation.
FillCol *color.SimpleColor
BorderWidth float64
BorderStyle BorderStyle
LineEndings types.Array // Optional array of two names that shall specify the line ending styles.
}
func NewPolyLineAnnotation ¶
func NewPolyLineAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, vertices types.Array, path types.Array, intent *PolyLineIntent, measure types.Dict, fillCol *color.SimpleColor, borderWidth float64, borderStyle BorderStyle, beginLineEndingStyle *LineEndingStyle, endLineEndingStyle *LineEndingStyle) PolyLineAnnotation
NewPolyLineAnnotation returns a new polyline annotation.
func (PolyLineAnnotation) RenderDict ¶
func (ann PolyLineAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a PDF annotation dict.
type PolyLineIntent ¶
type PolyLineIntent int
PolyLineIntent represents the various polyline annotation intents.
const ( IntentPolyLinePolygonCloud PolyLineIntent = 1 << iota IntentPolyLineDimension )
type PolygonAnnotation ¶
type PolygonAnnotation struct {
MarkupAnnotation
Vertices types.Array // Array of numbers specifying the alternating horizontal and vertical coordinates, respectively, of each vertex, in default user space.
Path types.Array // Array of n arrays, each supplying the operands for a path building operator (m, l or c).
Intent string // Optional description of the intent of the polygon annotation.
Measure types.Dict // Optional measure dictionary that shall specify the scale and units that apply to the annotation.
FillCol *color.SimpleColor
BorderWidth float64
BorderStyle BorderStyle
CloudyBorder bool
CloudyBorderIntensity int // 0,1,2
}
PolygonAnnotation represents a polygon annotation.
func NewPolygonAnnotation ¶
func NewPolygonAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, vertices types.Array, path types.Array, intent *PolygonIntent, measure types.Dict, fillCol *color.SimpleColor, borderWidth float64, borderStyle BorderStyle, cloudyBorder bool, cloudyBorderIntensity int) PolygonAnnotation
NewPolygonAnnotation returns a new polygon annotation.
func (PolygonAnnotation) RenderDict ¶
func (ann PolygonAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a PDF annotation dict.
type PolygonIntent ¶
type PolygonIntent int
PolygonIntent represents the various polygon annotation intents.
const ( IntentPolygonCloud PolygonIntent = 1 << iota IntentPolygonDimension )
type PopupAnnotation ¶
type PopupAnnotation struct {
Annotation
ParentIndRef *types.IndirectRef // The optional parent markup 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 ¶
func NewPopupAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, parentIndRef *types.IndirectRef, displayOpen bool) PopupAnnotation
NewPopupAnnotation returns a new popup annotation.
func (PopupAnnotation) ContentString ¶
func (ann PopupAnnotation) ContentString() string
ContentString returns a string representation of ann's content.
func (PopupAnnotation) RenderDict ¶
func (ann PopupAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann as dict.
type PrintScaling ¶
type PrintScaling int
const ( PrintScalingNone PrintScaling = iota PrintScalingAppDefault )
func PrintScalingFor ¶
func PrintScalingFor(s string) *PrintScaling
PrintScalingFor returns print scaling for s.
func (*PrintScaling) String ¶
func (ps *PrintScaling) String() string
String returns the string value of ps.
type RDF ¶
type RDF struct {
XMLName xml.Name `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF"`
Description Description
}
type ReadContext ¶
type ReadContext struct {
FileName string // Input PDF-File.
FileSize int64 // Input file size.
RS io.ReadSeeker // Input read seeker.
EolCount int // 1 or 2 characters used for eol.
RepairOffset int64
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 types.IntSet // All object numbers of any object streams found which need to be decoded.
UsingXRefStreams bool // File is using xref streams.
XRefStreams types.IntSet // All object numbers of any xref streams found.
}
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) 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 ¶
func (rc *ReadContext) ReadFileSize() int
ReadFileSize returns the size of the input file, if there is one.
type Resize ¶
type Resize struct {
Scale float64 // scale factor x > 0, x > 1 enlarges, x < 1 shrinks down
Unit types.DisplayUnit // display unit
PageDim *types.Dim // page dimensions in display unit
PageSize string // paper size eg. A2,A3,A4,Legal,Ledger,...
EnforceOrient bool // enforce orientation of PageDim
UserDim bool // true if dimensions set by dim rather than formsize
Border bool // true to render original crop box
BgColor *color.SimpleColor // background color
}
func (Resize) EnforceOrientation ¶
EnforceOrientation enforce orientation.
type Resource ¶
type Resource struct {
ID string
IndRef *types.IndirectRef
}
type ResourceLimits ¶
type ResourceLimits struct {
// MaxStreamBytes limits encoded stream bytes read from a PDF.
MaxStreamBytes int64
// MaxDecodeBytes limits decoded stream bytes produced by filters.
MaxDecodeBytes int64
// MaxImagePixels limits decoded/rendered image dimensions.
MaxImagePixels int64
// MaxImageBytes limits decoded/rendered image buffer sizes.
MaxImageBytes int64
// MaxObjectCount limits xref stream /Size expansion.
MaxObjectCount int
// MaxObjectStreamCount limits object stream /N.
MaxObjectStreamCount int
// MaxObjectStreamFirst limits object stream /First prolog bytes.
MaxObjectStreamFirst int64
// MaxXRefEntries limits xref stream Index expansion.
MaxXRefEntries int
// MaxRecursionDepth limits recursive parsing and object graph traversal.
MaxRecursionDepth int
}
ResourceLimits controls resource usage for input-driven allocation.
func DefaultResourceLimits ¶
func DefaultResourceLimits() ResourceLimits
DefaultResourceLimits returns the default resource limits.
type RevocationDetails ¶
func (RevocationDetails) String ¶
func (rd RevocationDetails) String() string
String returns the string value of rd.
type Seq ¶
type Seq struct {
//XMLName xml.Name `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# Seq"`
Entries []string `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# li"`
}
type Signature ¶
type Signature struct {
Type int
Certified bool
Authoritative bool
Visible bool
Signed bool
ObjNr int
PageNr int
}
Signature represents a digital signature.
func (Signature) String ¶
func (sig Signature) String(status SignatureStatus) string
String returns a string representation.
type SignatureDetails ¶
type SignatureDetails struct {
SubFilter string // Signature Dict SubFilter
SignerIdentity string // extracted from signature
SignerName string // Signature Dict Name
ContactInfo string // Signature Dict ContactInfo
Location string // Signature Dict Location
Reason string // Signature Dict
SigningTime time.Time // Signature Dict M
FieldName string // Signature Field T
Signers []*Signer
}
func (*SignatureDetails) AddSigner ¶
func (sd *SignatureDetails) AddSigner(s *Signer)
AddSigner adds signer.
func (*SignatureDetails) IsETSI_CAdES_detached ¶
func (sd *SignatureDetails) IsETSI_CAdES_detached() bool
IsETSI_CAdES_detached reports whether ETSI c ad es detached.
func (*SignatureDetails) IsETSI_RFC3161 ¶
func (sd *SignatureDetails) IsETSI_RFC3161() bool
IsETSI_RFC3161 reports whether ETSI rfc3161.
func (*SignatureDetails) Permissions ¶
func (sd *SignatureDetails) Permissions() int
Permissions returns permissions of sd.
func (SignatureDetails) String ¶
func (sd SignatureDetails) String() string
String returns the string value of sd.
type SignatureReason ¶
type SignatureReason int
const ( SignatureReasonUnknown SignatureReason = 1 << iota SignatureReasonDocNotModified SignatureReasonDocModified SignatureReasonSignatureForged SignatureReasonSigningTimeInvalid SignatureReasonTimestampTokenInvalid SignatureReasonCertInvalid SignatureReasonCertNotTrusted SignatureReasonCertExpired SignatureReasonCertRevoked SignatureReasonInternal SignatureReasonSelfSignedCertErr )
func (SignatureReason) String ¶
func (sr SignatureReason) String() string
String returns the string value of sr.
type SignatureStats ¶
type SignatureStats struct {
FormSigned int
FormSignedVisible int
FormUnsigned int
FormUnsignedVisible int
PageSigned int
PageSignedVisible int
PageUnsigned int
PageUnsignedVisible int
URSigned int
URSignedVisible int
URUnsigned int
URUnsignedVisible int
DTSSigned int
DTSSignedVisible int
DTSUnsigned int
DTSUnsignedVisible int
Total int
}
SignatureStats represents signature stats for a file.
func (SignatureStats) Counter ¶
func (sigStats SignatureStats) Counter(svr *SignatureValidationResult) (*int, *int, *int, *int)
Counter returns counters for detected signatures.
type SignatureStatus ¶
type SignatureStatus int
SignatureStatus represents all possible signature statuses.
const ( SignatureStatusUnknown SignatureStatus = 1 << iota SignatureStatusValid SignatureStatusInvalid )
func (SignatureStatus) String ¶
func (st SignatureStatus) String() string
String returns the string value of st.
type SignatureValidationResult ¶
type SignatureValidationResult struct {
Signature
Status SignatureStatus
Reason SignatureReason
Details SignatureDetails
DocModified int
Problems []string
}
func (*SignatureValidationResult) AddProblem ¶
func (svr *SignatureValidationResult) AddProblem(s string)
AddProblem adds problem.
func (*SignatureValidationResult) Certified ¶
func (svr *SignatureValidationResult) Certified() bool
Certified certified.
func (*SignatureValidationResult) Permissions ¶
func (svr *SignatureValidationResult) Permissions() int
Permissions permissions.
func (*SignatureValidationResult) SigningTime ¶
func (svr *SignatureValidationResult) SigningTime() string
SigningTime signing time.
func (SignatureValidationResult) String ¶
func (svr SignatureValidationResult) String() string
String returns the string value of svr.
type Signer ¶
type Signer struct {
Certificate *CertificateDetails
CertificatePathStatus int
HasTimestamp bool
Timestamp time.Time // signature timestamp attribute (which contains a timestamp token)
LTVEnabled bool // timestamp and revocation evidence detected
PAdES string // reported baseline evidence level: B-B, B-T, B-LT, B-LTA
Certified bool // indicated by DocMDP entry
Authoritative bool // true if certified or first (youngest) signature
Permissions int // see table 257
Problems []string
}
func (*Signer) AddProblem ¶
AddProblem adds problem to signer.
type SquareAnnotation ¶
type SquareAnnotation struct {
MarkupAnnotation
FillCol *color.SimpleColor
Margins types.Array
BorderWidth float64
BorderStyle BorderStyle
CloudyBorder bool
CloudyBorderIntensity int // 0,1,2
}
SquareAnnotation represents a square annotation.
func NewSquareAnnotation ¶
func NewSquareAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, fillCol *color.SimpleColor, MLeft, MTop, MRight, MBot float64, borderWidth float64, borderStyle BorderStyle, cloudyBorder bool, cloudyBorderIntensity int) SquareAnnotation
NewSquareAnnotation returns a new square annotation.
func (SquareAnnotation) RenderDict ¶
func (ann SquareAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a page annotation dict.
type SquigglyAnnotation ¶
type SquigglyAnnotation struct {
TextMarkupAnnotation
}
func NewSquigglyAnnotation ¶
func NewSquigglyAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, quad types.QuadPoints) SquigglyAnnotation
NewSquigglyAnnotation returns a new squiggly annotation.
type StrikeOutAnnotation ¶
type StrikeOutAnnotation struct {
TextMarkupAnnotation
}
func NewStrikeOutAnnotation ¶
func NewStrikeOutAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, quad types.QuadPoints) StrikeOutAnnotation
NewStrikeOutAnnotation returns a new strike out annotation.
type TextAnnotation ¶
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 ¶
func NewTextAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, borderRadX float64, borderRadY float64, borderWidth float64, displayOpen bool, name string) TextAnnotation
NewTextAnnotation returns a new text annotation.
func (TextAnnotation) RenderDict ¶
func (ann TextAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann into a PDF annotation dict.
type TextDescriptor ¶
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.
Embed bool // Embed 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 types.HAlignment // Horizontal text alignment.
VAlign types.VAlignment // Vertical text alignment.
RMode draw.RenderMode // Text render mode
StrokeCol color.SimpleColor // Stroke color to be used for rendering text corresponding to RMode.
FillCol color.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 color.SimpleColor // Bounding box fill color.
ShowBorder bool // Render border using BorderCol, BorderWidth and BorderStyle.
BorderWidth float64 // Border width, visibility depends on ShowBorder.
BorderStyle types.LineJoinStyle // Border style, also visible if ShowBorder is false as long as ShowBackground is true.
BorderCol color.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.
ShowPosition bool // Highlight position.
HairCross bool // Draw haircross at X,Y
}
TextDescriptor contains all attributes needed for rendering a text column in PDF user space.
type TextMarkupAnnotation ¶
type TextMarkupAnnotation struct {
MarkupAnnotation
Quad types.QuadPoints
}
func NewTextMarkupAnnotation ¶
func NewTextMarkupAnnotation( subType AnnotationType, rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, quad types.QuadPoints) TextMarkupAnnotation
NewTextMarkupAnnotation returns a new text markup annotation.
func (TextMarkupAnnotation) RenderDict ¶
func (ann TextMarkupAnnotation) RenderDict(xRefTable *XRefTable, pageIndRef *types.IndirectRef) (types.Dict, error)
RenderDict renders ann as dict.
type Title ¶
type Title struct {
//XMLName xml.Name `xml:"http://purl.org/dc/elements/1.1/ title"`
Alt Alt `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# Alt"`
}
type TrustDetails ¶
type TrustDetails struct {
Status int
Reason string
SourceObtainedFrom string
AllowSignDocuments bool
AllowCertifyDocuments bool
AllowExecuteDynamicContent bool
AllowExecuteJavaScript bool
AllowExecutePrivilegedSystemOperation bool
}
func (TrustDetails) String ¶
func (td TrustDetails) String() string
String returns the string value of td.
type UnderlineAnnotation ¶
type UnderlineAnnotation struct {
TextMarkupAnnotation
}
func NewUnderlineAnnotation ¶
func NewUnderlineAnnotation( rect types.Rectangle, apObjNr int, contents, id string, modDate string, f AnnotationFlags, col *color.SimpleColor, borderRadX float64, borderRadY float64, borderWidth float64, title string, popupIndRef *types.IndirectRef, ca *float64, rc, subject string, quad types.QuadPoints) UnderlineAnnotation
NewUnderlineAnnotation returns a new underline annotation.
type UserDate ¶
func (*UserDate) UnmarshalXML ¶
UnmarshalXML unmarshals XML data.
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.
func PDFVersionRelaxed ¶
PDFVersionRelaxed returns the PDF version for versionStr.
type ViewerPrefJSON ¶
type ViewerPrefJSON struct {
HideToolbar *bool `json:"hideToolbar,omitempty"`
HideMenubar *bool `json:"hideMenubar,omitempty"`
HideWindowUI *bool `json:"hideWindowUI,omitempty"`
FitWindow *bool `json:"fitWindow,omitempty"`
CenterWindow *bool `json:"centerWindow,omitempty"`
DisplayDocTitle *bool `json:"displayDocTitle,omitempty"`
NonFullScreenPageMode string `json:"nonFullScreenPageMode,omitempty"`
Direction string `json:"direction,omitempty"`
ViewArea string `json:"viewArea,omitempty"`
ViewClip string `json:"viewClip,omitempty"`
PrintArea string `json:"printArea,omitempty"`
PrintClip string `json:"printClip,omitempty"`
PrintScaling string `json:"printScaling,omitempty"`
Duplex string `json:"duplex,omitempty"`
PickTrayByPDFSize *bool `json:"pickTrayByPDFSize,omitempty"`
PrintPageRange []int `json:"printPageRange,omitempty"`
NumCopies *int `json:"numCopies,omitempty"`
Enforce []string `json:"enforce,omitempty"`
}
type ViewerPreferences ¶
type ViewerPreferences struct {
HideToolbar *bool
HideMenubar *bool
HideWindowUI *bool
FitWindow *bool
CenterWindow *bool
DisplayDocTitle *bool // since 1.4
NonFullScreenPageMode *NonFullScreenPageMode
Direction *Direction // since 1.3
ViewArea *PageBoundary // since 1.4 to 1.7
ViewClip *PageBoundary // since 1.4 to 1.7
PrintArea *PageBoundary // since 1.4 to 1.7
PrintClip *PageBoundary // since 1.4 to 1.7
PrintScaling *PrintScaling // since 1.6
Duplex *PaperHandling // since 1.7
PickTrayByPDFSize *bool // since 1.7
PrintPageRange types.Array // since 1.7
NumCopies *types.Integer // since 1.7
Enforce types.Array // since 2.0
}
ViewerPreferences see 12.2 Table 147
func DefaultViewerPreferences ¶
func DefaultViewerPreferences(version Version) *ViewerPreferences
DefaultViewerPreferences returns the default viewer preferences.
func ViewerPreferencesWithDefaults ¶
func ViewerPreferencesWithDefaults(vp *ViewerPreferences, version Version) (*ViewerPreferences, error)
ViewerPreferencesWithDefaults returns viewer preferences with defaults.
func (ViewerPreferences) List ¶
func (vp ViewerPreferences) List() []string
List generates output for the viewer pref command.
func (*ViewerPreferences) MarshalJSON ¶
func (vp *ViewerPreferences) MarshalJSON() ([]byte, error)
MarshalJSON marshals JSON data.
func (*ViewerPreferences) Populate ¶
func (vp *ViewerPreferences) Populate(vp1 *ViewerPreferences)
Populate populates vp with vp1.
func (*ViewerPreferences) SetCenterWindow ¶
func (vp *ViewerPreferences) SetCenterWindow(val bool)
SetCenterWindow sets center window.
func (*ViewerPreferences) SetDisplayDocTitle ¶
func (vp *ViewerPreferences) SetDisplayDocTitle(val bool)
SetDisplayDocTitle sets display doc title.
func (*ViewerPreferences) SetFitWindow ¶
func (vp *ViewerPreferences) SetFitWindow(val bool)
SetFitWindow sets fit window.
func (*ViewerPreferences) SetHideMenuBar ¶
func (vp *ViewerPreferences) SetHideMenuBar(val bool)
SetHideMenuBar sets hide menu bar.
func (*ViewerPreferences) SetHideToolBar ¶
func (vp *ViewerPreferences) SetHideToolBar(val bool)
SetHideToolBar sets hide tool bar.
func (*ViewerPreferences) SetHideWindowUI ¶
func (vp *ViewerPreferences) SetHideWindowUI(val bool)
SetHideWindowUI sets hide window ui.
func (*ViewerPreferences) SetNumCopies ¶
func (vp *ViewerPreferences) SetNumCopies(i int)
SetNumCopies sets num copies.
func (*ViewerPreferences) SetPickTrayByPDFSize ¶
func (vp *ViewerPreferences) SetPickTrayByPDFSize(val bool)
SetPickTrayByPDFSize sets pick tray by PDF size.
func (ViewerPreferences) String ¶
func (vp ViewerPreferences) String() string
String returns the string value of vp.
func (*ViewerPreferences) UnmarshalJSON ¶
func (vp *ViewerPreferences) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals JSON data.
func (*ViewerPreferences) Validate ¶
func (vp *ViewerPreferences) Validate(version Version) error
Validate validates vp for version.
type Watermark ¶
type Watermark struct {
OnTop bool // if true STAMP else WATERMARK.
Mode int // WMText, WMImage or WMPDF
FileName string // image or PDF file name
Image io.Reader // image reader
PDF io.ReadSeeker // PDF read seeker
TextString string // raw display text.
TextLines []string // display multiple lines of text.
URL string // overlay link annotation for stamps.
InpUnit types.DisplayUnit // input display unit.
Pos types.Anchor // position anchor, one of tl,tc,tr,l,c,r,bl,bc,br.
Dx, Dy float64 // anchor offset.
HAlign *types.HAlignment // horizontal 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
ScriptName string // ISO 15924: Hans, Hant, Hira, Kana, Jpan, Hang, Kore: if set, font will not be embedded.
RTL bool // if true, render text from right to left
Color color.SimpleColor // text fill color(=non stroking color) for backwards compatibility.
FillColor color.SimpleColor // text fill color(=non stroking color).
StrokeColor color.SimpleColor // text stroking color
BgColor *color.SimpleColor // text bounding box background color
MLeft, MRight float64 // left and right bounding box margin
MTop, MBot float64 // top and bottom bounding box margin
BorderWidth float64 // Border width, visible if BgColor is set.
BorderStyle types.LineJoinStyle // Border style (bounding box corner style), visible if BgColor is set.
BorderColor *color.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 draw.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.
Ocg, ExtGState, Font, Img *types.IndirectRef // resources
Width, Height int // image or page dimensions
PdfRes map[int]PdfResources // content & corresponding resources
PdfPageNrSrc int // page number of the source PDF file serving as stamp provider, 0 for multi stamping
PdfMultiStartPageNrSrc int // start page number of the source PDF file serving as stamp provider.
PdfMultiStartPageNrDest int // start page number of the destination PDF file.
// page specific
Bb *types.Rectangle // bounding box of the form representing this watermark.
BbTrans types.QuadLiteral // Transformed bounding box.
Vp *types.Rectangle // view port, page dimensions.
PageRot int // page rotation in effect.
Form *types.IndirectRef // form dependent on given page dimensions.
// house keeping
Objs types.IntSet // objects for which wm has been applied already.
FCache formCache // form cache.
// contains filtered or unexported fields
}
Watermark represents the basic structure and command details for the commands "Stamp" and "Watermark".
func DefaultWatermarkConfig ¶
func DefaultWatermarkConfig() *Watermark
DefaultWatermarkConfig returns the default configuration.
func (*Watermark) CalcBoundingBox ¶
CalcBoundingBox returns the bounding box for wm and pageNr.
func (*Watermark) CalcTransformMatrix ¶
CalcTransformMatrix return the transform matrix for a watermark.
func (Watermark) MultiStamp ¶
MultiStamp returns true if wm is a multi stamp.
func (Watermark) OnTopString ¶
OnTopString returns "watermark" or "stamp" whichever applies.
func (*Watermark) PdfResIndex ¶
PdfResIndex returns the PDF resource index for wm and pageNr.
type WriteContext ¶
type WriteContext struct {
// The PDF-File which gets generated.
*bufio.Writer // writer associated with Fp
Fp *os.File // file pointer needed for detecting FileSize
FileSize int64 // size of the written file
DirName string // output directory
FileName string // output file name
SelectedPages types.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
OffsetSigByteRange int64 // write offset of signature dict value for "ByteRange"
OffsetSigContents int64 // write offset of signature dict value for "Contents"
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 ¶
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 XRefTable ¶
type XRefTable struct {
Table map[int]*XRefTableEntry
Size *int // from trailer dict.
MaxObjNr int // after reading in all objects from xRef table.
PageCount int // Number of pages.
Root *types.IndirectRef // Pointer to catalog (reference to root object).
RootDict types.Dict // Catalog
Names map[string]*Node // Cache for name trees as found in catalog.
Dests types.Dict // Named destinations
NameRefs map[string]NameMap // Name refs for merging only
Encrypt *types.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 types.Array // from trailer
Info *types.IndirectRef // Infodict (reference to info dict object)
Title string
Subject string
Author string
Creator string
Producer string
CreationDate string
ModDate string
Keywords string
KeywordList types.StringSet
Properties map[string]string
CatalogXMPMeta *XMPMeta
PageLayout *PageLayout
PageMode *PageMode
ViewerPref *ViewerPreferences
// Linearization section (not yet supported)
OffsetPrimaryHintTable *int64
OffsetOverflowHintTable *int64
LinearizationObjs types.IntSet
// Page annotation cache
PageAnnots map[int]PgAnnots
// Thumbnail images
PageThumbs map[int]types.IndirectRef
Signatures map[int]map[int]Signature // form signatures and signatures located via page annotations only keyed by increment #.
URSignature types.Dict // usage rights signature
CertifiedSigObjNr int //
DSS types.Dict // document security store
DTS time.Time // trusted document timestamp
// Offspec section
AdditionalStreams *types.Array // array of IndirectRef - trailer :e.g., Oasis "Open Doc"
// Statistics
Stats PDFStats
Tagged bool // File is using tags.
CustomExtensions bool // File is using custom extensions for annotations and/or keywords.
// Validation
CurPage int // current page during validation
CurObj int // current object during validation, the last dereferenced object
Conf *Configuration // current command being executed
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
Form types.Dict
Outlines types.Dict
SignatureExist bool
AppendOnly bool
// Fonts
UsedGIDs map[string]map[uint16]bool
FillFonts map[string]types.IndirectRef
}
XRefTable represents a PDF cross reference table plus stats for a PDF file.
func (*XRefTable) AppendContent ¶
AppendContent appends bb to pageDict's content stream.
func (*XRefTable) AppendPages ¶
func (xRefTable *XRefTable) AppendPages(rootPageIndRef *types.IndirectRef, fromPageNr int, ctx *Context) (int, error)
AppendPages appends pages from ctx to the page tree root starting at fromPageNr.
func (*XRefTable) BindNameTrees ¶
BindNameTrees syncs up the internal name tree cache with the xreftable.
func (*XRefTable) BindPrinterPreferences ¶
func (xRefTable *XRefTable) BindPrinterPreferences(vp *ViewerPreferences, d types.Dict)
BindPrinterPreferences writes printer preferences into d.
func (*XRefTable) BindViewerPreferences ¶
func (xRefTable *XRefTable) BindViewerPreferences()
BindViewerPreferences writes viewer preferences into the root catalog.
func (*XRefTable) CatalogHasPieceInfo ¶
CatalogHasPieceInfo returns true if the root has an entry for \"PieceInfo\".
func (*XRefTable) CheckRecursionDepth ¶
CheckRecursionDepth rejects recursion levels beyond the configured limit.
func (*XRefTable) DeleteDictEntry ¶
DeleteDictEntry deletes key from d and removes the referenced object graph.
func (*XRefTable) DeleteObject ¶
DeleteObject makes a deep remove of o.
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 ¶
func (xRefTable *XRefTable) DereferenceBoolean(o types.Object, sinceVersion Version) (*types.Boolean, error)
DereferenceBoolean resolves and validates a boolean object, which may be an indirect reference.
func (*XRefTable) DereferenceCSVSafeText ¶
DereferenceCSVSafeText resolves and validates a string or hex literal object to a string.
func (*XRefTable) DereferenceDestArray ¶
DereferenceDestArray resolves the destination for key.
func (*XRefTable) DereferenceDict ¶
DereferenceDict resolves and validates a dictionary object, which may be an indirect reference.
func (*XRefTable) DereferenceDictEntry ¶
DereferenceDictEntry returns a dereferenced dict entry.
func (*XRefTable) DereferenceDictWithIncr ¶
DereferenceDictWithIncr resolves and validates a dictionary object, which may be an indirect reference. It also returns the number of the written PDF Increment this object is part of. The higher the increment number the older the object.
func (*XRefTable) DereferenceFontDict ¶
DereferenceFontDict returns the font dict referenced by indRef.
func (*XRefTable) DereferenceForWrite ¶
DereferenceForWrite dereferences obj for writing.
func (*XRefTable) DereferenceInteger ¶
DereferenceInteger resolves and validates an integer object, which may be an indirect reference.
func (*XRefTable) DereferenceName ¶
func (xRefTable *XRefTable) DereferenceName(o types.Object, sinceVersion Version, validate func(string) bool) (n types.Name, err error)
DereferenceName resolves and validates a name object, which may be an indirect reference.
func (*XRefTable) DereferenceNumber ¶
DereferenceNumber resolves a number object, which may be an indirect reference and returns a float64.
func (*XRefTable) DereferencePageNodeDict ¶
DereferencePageNodeDict returns the page node dict referenced by indRef.
func (*XRefTable) DereferenceStreamDict ¶
DereferenceStreamDict resolves a stream dictionary object.
func (*XRefTable) DereferenceStringEntryBytes ¶
DereferenceStringEntryBytes returns the bytes of a string entry of d.
func (*XRefTable) DereferenceStringLiteral ¶
func (xRefTable *XRefTable) DereferenceStringLiteral(o types.Object, sinceVersion Version, validate func(string) bool) (s types.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 types.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 ¶
DereferenceText resolves and validates a string or hex literal object to a string.
func (*XRefTable) DereferenceWithIncr ¶
DereferenceWithIncr dereferences obj and increments reference counts.
func (*XRefTable) DereferenceXObjectDict ¶
func (xRefTable *XRefTable) DereferenceXObjectDict(indRef types.IndirectRef) (*types.StreamDict, error)
DereferenceXObjectDict resolves an XObject.
func (*XRefTable) DumpObject ¶
DumpObject writes object objNr to stdout using mode for stream output formatting.
func (*XRefTable) EmptyPage ¶
func (xRefTable *XRefTable) EmptyPage(parentIndRef *types.IndirectRef, mediaBox *types.Rectangle, objNr int) (*types.IndirectRef, error)
EmptyPage creates an empty page with parentIndRef, mediaBox and optional object number objNr.
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 ¶
EnsurePageCount evaluates the page count for xRefTable if necessary.
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 ¶
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(indRef *types.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) FreeObject ¶
FreeObject marks an objects xref table entry as free and inserts it into the free list right after the head.
func (*XRefTable) HasUsedGIDs ¶
HasUsedGIDs returns true if fontName has recorded used glyph ids.
func (*XRefTable) IDFirstElement ¶
IDFirstElement returns the first element of ID.
func (*XRefTable) IncrementRefCount ¶
func (xRefTable *XRefTable) IncrementRefCount(indRef *types.IndirectRef)
IncrementRefCount increments the number of references for the object pointed to by indRef.
func (*XRefTable) IndRefForNewObject ¶
IndRefForNewObject inserts an object into the xRefTable and returns an indirect reference to it.
func (*XRefTable) IndRefForObject ¶
func (xRefTable *XRefTable) IndRefForObject(objNr int, obj types.Object) (*types.IndirectRef, error)
IndRefForObject inserts object at objNr 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 ¶
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) InsertPages ¶
func (xRefTable *XRefTable) InsertPages(parent *types.IndirectRef, p *int, ctx *Context) (int, error)
InsertPages inserts pages from ctx into the page tree below parent.
func (*XRefTable) IsBeingValidated ¶
func (xRefTable *XRefTable) IsBeingValidated(ir types.IndirectRef) (bool, error)
IsBeingValidated returns true if the object referenced by ir is being validated.
func (*XRefTable) IsLinearizationObject ¶
IsLinearizationObject returns true if object #i is a a linearization object.
func (*XRefTable) IsObjBeingValidated ¶
IsObjBeingValidated returns true if the object with objNr and genNr is being validated.
func (*XRefTable) IsObjValid ¶
IsObjValid returns true if the object with objNr and genNr is valid.
func (*XRefTable) IsValid ¶
func (xRefTable *XRefTable) IsValid(ir types.IndirectRef) (bool, error)
IsValid returns true if the object referenced by ir is valid.
func (*XRefTable) LinearizationObjsString ¶
LinearizationObjsString returns a formatted string and the number of objs.
func (*XRefTable) LocateNameTree ¶
LocateNameTree locates/ensures a specific name tree.
func (*XRefTable) MaxRecursionDepth ¶
MaxRecursionDepth returns the configured recursion depth limit.
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) (*types.IndirectRef, error)
NewEmbeddedFileStreamDict returns an embeddedFileStreamDict containing the file "filename".
func (*XRefTable) NewEmbeddedStreamDict ¶
func (xRefTable *XRefTable) NewEmbeddedStreamDict(r io.Reader, modDate time.Time) (*types.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 types.IndirectRef) (types.Dict, error)
NewFileSpecDict creates and returns a new fileSpec dictionary.
func (*XRefTable) NewFileSpecDictForAttachment ¶
func (xRefTable *XRefTable) NewFileSpecDictForAttachment(a Attachment) (types.Dict, error)
NewFileSpecDictForAttachment returns a fileSpecDict for a.
func (*XRefTable) NewSoundStreamDict ¶
func (xRefTable *XRefTable) NewSoundStreamDict(filename string, samplingRate int, fileSpecDict types.Dict) (*types.IndirectRef, error)
NewSoundStreamDict returns a new sound stream dict.
func (*XRefTable) NewStreamDictForBuf ¶
func (xRefTable *XRefTable) NewStreamDictForBuf(buf []byte) (*types.StreamDict, error)
NewStreamDictForBuf creates a streamDict for buf.
func (*XRefTable) NewStreamDictForFile ¶
func (xRefTable *XRefTable) NewStreamDictForFile(filename string) (*types.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) PageBoundaries ¶
func (xRefTable *XRefTable) PageBoundaries(selectedPages types.IntSet) ([]PageBoundaries, error)
PageBoundaries returns a sorted slice with page boundaries for all pages sorted ascending by page number.
func (*XRefTable) PageContent ¶
PageContent returns the content in PDF syntax for page dict d.
func (*XRefTable) PageDict ¶
func (xRefTable *XRefTable) PageDict(pageNr int, consolidateRes bool) (types.Dict, *types.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 ¶
func (xRefTable *XRefTable) PageDictIndRef(page int) (*types.IndirectRef, error)
PageDictIndRef returns the pageDict IndRef for a logical page number.
func (*XRefTable) PageDims ¶
PageDims returns a sorted slice with effective media box dimensions for all pages sorted ascending by page number.
func (*XRefTable) PageNumber ¶
PageNumber returns the logical page number for a page dict object number.
func (*XRefTable) Pages ¶
func (xRefTable *XRefTable) Pages() (*types.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) RectForArray ¶
RectForArray returns a new rectangle for given Array.
func (*XRefTable) RemoveAllSignatures ¶
RemoveAllSignatures removes signature fields and related signature state from xRefTable.
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) RemoveSignature ¶
func (xRefTable *XRefTable) RemoveSignature()
RemoveSignature removes root signature state from xRefTable.
func (*XRefTable) SetBeingValidated ¶
func (xRefTable *XRefTable) SetBeingValidated(ir types.IndirectRef) error
SetBeingValidated marks the xreftable entry of the object referenced by ir as being validated.
func (*XRefTable) SetValid ¶
func (xRefTable *XRefTable) SetValid(ir types.IndirectRef) error
SetValid marks the xreftable entry of the object referenced by ir as valid.
func (*XRefTable) StreamDictIndRef ¶
func (xRefTable *XRefTable) StreamDictIndRef(bb []byte) (*types.IndirectRef, error)
StreamDictIndRef creates a new stream dict for bb.
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
Incr int // TODO
RefCount int
Object types.Object
Compressed bool
ObjectStream *int
ObjectStreamInd *int
Valid bool
BeingValidated 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 types.Object) *XRefTableEntry
NewXRefTableEntryGen0 returns a cross reference table entry for an object with generation 0.
type Zoom ¶
type Zoom struct {
Factor float64 // zoom factor x > 0, x > 1 zooms in, x < 1 zooms out
HMargin float64 // horizontal margin implying some (usually negative) scale factor
VMargin float64 // vertical margin implying some (usually negative) scale factor
Unit types.DisplayUnit // display unit
Border bool // border around page content when zooming out
BgColor *color.SimpleColor // background color when zooming out
}
func (*Zoom) EnsureFactorAndMargins ¶
EnsureFactorAndMargins ensures factor and margins.
Source Files
¶
- annotation.go
- attach.go
- booklet.go
- box.go
- certificate.go
- certificates_default.go
- colorSpace.go
- configuration.go
- context.go
- cut.go
- dereference.go
- destination.go
- document.go
- equal.go
- font.go
- image.go
- message.go
- metadata.go
- nameTree.go
- nup.go
- page.go
- parse.go
- parseConfig.go
- parseContent.go
- recursion.go
- resize.go
- resource.go
- sign.go
- stat.go
- text.go
- version.go
- watermark.go
- xreftable.go
- zoom.go