Documentation
¶
Overview ¶
Package pdfcpu is a PDF processing library written in Go supporting encryption. It provides an API and a command line interface. Supported are all versions up to PDF 2.0 (ISO-32000-2:2020).
The commands are:
annotations List, remove page annotations attachments List, add, remove, extract embedded file attachments booklet Arrange pages onto larger sheets of paper to make a booklet or zine bookmarks List, import, export, remove bookmarks boxes List, add, remove page boundaries for selected pages certificates List, inspect, import, reset certificates changeopw Change owner password changeupw Change user password collect Create custom sequence of selected pages completion Generate shell completion script config List, reset configuration create Create PDF content including forms via JSON crop Set cropbox for selected pages cut Custom cut pages horizontally or vertically decrypt Remove password protection encrypt Set password protection extract Extract images, fonts, content, pages or metadata fonts Install, list supported fonts, create cheat sheets form List, remove fields, lock, unlock, reset, export, fill form via JSON or CSV grid Rearrange pages or images for enhanced browsing experience help Help about any command images List, extract, update images import Import/convert images to PDF info Print file info keywords List, add, remove keywords merge Concatenate PDFs ndown Cut selected page into n pages symmetrically nup Rearrange pages or images for reduced number of pages optimize Optimize PDF by getting rid of redundant page resources pagelayout List, set, reset page layout for opened document pagemode List, set, reset page mode for opened document pages Insert, remove selected pages paper Print list of supported paper sizes permissions List, set user access permissions portfolio List, add, remove, extract portfolio entries poster Create poster using paper size properties List, add, remove document properties resize Scale selected pages rotate Rotate selected pages selectedpages Print definition of the -pages flag signatures Remove signatures, validate integrity split Split up inFile by span or bookmark stamp Add, remove, update text, image or PDF stamps for selected pages trim Create trimmed version of selected pages validate Validate PDF against PDF 32000-1:2008 (PDF 1.7) + basic PDF 2.0 validation version Print version viewerpref List, set, reset viewer preferences watermark Add, remove, update text, image or PDF watermarks for selected pages zoom Zoom in/out of selected pages
Index ¶
- Constants
- Variables
- func AddAnnotation(ctx *model.Context, pageDictIndRef *types.IndirectRef, pageDict types.Dict, ...) (*types.IndirectRef, types.Dict, error)
- func AddAnnotationToPage(ctx *model.Context, pageNr int, ar model.AnnotationRenderer, incr bool) (*types.IndirectRef, types.Dict, error)
- func AddAnnotations(ctx *model.Context, selectedPages types.IntSet, ar model.AnnotationRenderer, ...) (bool, error)
- func AddAnnotationsMap(ctx *model.Context, m map[int][]model.AnnotationRenderer, incr bool) (bool, error)
- func AddBookmarks(ctx *model.Context, bms []Bookmark, replace bool) error
- func AddPageTreeWithSamplePage(xRefTable *model.XRefTable, rootDict types.Dict, p model.Page) error
- func AddPages(ctxSrc, ctxDest *model.Context, pageNrs []int, usePgCache bool) error
- func AddWatermarks(ctx *model.Context, selectedPages types.IntSet, wm *model.Watermark) error
- func AddWatermarksMap(ctx *model.Context, m map[int]*model.Watermark) error
- func AddWatermarksSliceMap(ctx *model.Context, m map[int][]*model.Watermark) error
- func Annotation(xRefTable *model.XRefTable, d types.Dict) (model.AnnotationRenderer, error)
- func AnnotationsForSelectedPages(ctx *model.Context, selectedPages types.IntSet) map[int]model.PgAnnots
- func AppendStatsFile(ctx *model.Context) error
- func BookletFromImages(ctx *model.Context, fileNames []string, nup *model.NUp, pagesDict types.Dict, ...) error
- func BookletFromPDF(ctx *model.Context, selectedPages types.IntSet, nup *model.NUp) error
- func BookmarkList(ctx *model.Context) ([]string, error)
- func CacheFormFonts(ctx *model.Context) error
- func CachedAnnotationObjNrs(ctx *model.Context) ([]int, error)
- func ColorSpaceComponents(xRefTable *model.XRefTable, sd *types.StreamDict) (int, error)
- func ColorSpaceString(ctx *model.Context, sd *types.StreamDict) (string, error)
- func CopyFile(srcFilename, destFilename string, overwrite bool) (bool, error)
- func CreateAnnotationDemoXRef() (*model.XRefTable, error)
- func CreateContext(xRefTable *model.XRefTable, conf *model.Configuration) *model.Context
- func CreateContextWithXRefTable(conf *model.Configuration, pageDim *types.Dim) (*model.Context, error)
- func CreateDemoXRef() (*model.XRefTable, error)
- func CreateFormDemoXRef() (*model.XRefTable, error)
- func CreateResourceDictInheritanceDemoXRef() (*model.XRefTable, error)
- func CreateTestPageContent(p model.Page)
- func CreateXRefTableWithRootDict() (*model.XRefTable, error)
- func CutPage(ctxSrc *model.Context, pageNr int, cut *model.Cut) (*model.Context, error)
- func DefaultBookletConfig() *model.NUp
- func DetectPageTreeWatermarks(ctx *model.Context) error
- func DetectWatermarks(ctx *model.Context) error
- func EnsureOutlines(ctx *model.Context, fName string, append bool) error
- func ExportBookmarksJSON(ctx *model.Context, source string, w io.Writer) (bool, error)
- func ExtractImage(ctx *model.Context, sd *types.StreamDict, thumb bool, resourceID string, ...) (*model.Image, error)
- func ExtractPageContent(ctx *model.Context, pageNr int) (io.Reader, error)
- func ExtractPageImages(ctx *model.Context, pageNr int, stub bool) (map[int]model.Image, error)
- func ExtractPages(ctx *model.Context, pageNrs []int, usePgCache bool) (*model.Context, error)
- func FontObjNrs(ctx *model.Context, pageNr int) []int
- func GridFromMultipleImages(ctx *model.Context, fileNames []string, nup *model.NUp, pagesDict types.Dict, ...) error
- func GridFromOneImage(ctx *model.Context, fileName string, nup *model.NUp, pagesDict types.Dict, ...) error
- func GridFromPDF(ctx *model.Context, selectedPages types.IntSet, nup *model.NUp) error
- func ImageBookletConfig(val int, desc string, conf *model.Configuration) (*model.NUp, error)
- func ImageGridConfig(rows, cols int, desc string, conf *model.Configuration) (*model.NUp, error)
- func ImageNUpConfig(val int, desc string, conf *model.Configuration) (*model.NUp, error)
- func ImageObjNrs(ctx *model.Context, pageNr int) []int
- func ImportBookmarks(ctx *model.Context, rd io.Reader, replace bool) (bool, error)
- func InspectCertificate(cert *x509.Certificate) (string, error)
- func InvalidateCertificatePool()
- func KeywordsAdd(ctx *model.Context, keywords []string) error
- func KeywordsList(ctx *model.Context) ([]string, error)
- func KeywordsRemove(ctx *model.Context, keywords []string) (bool, error)
- func ListAnnotations(annots map[int]model.PgAnnots) (int, []string, error)
- func ListAnnotationsJSON(annots map[int]model.PgAnnots) (int, []string, error)
- func ListImages(ctx *model.Context, selectedPages types.IntSet) ([]string, error)
- func ListInfo(info *PDFInfo, selectedPages types.IntSet, fonts bool) ([]string, error)
- func LoadCertificates() error
- func LoadCertificatesFile(filename string) ([]*x509.Certificate, error)
- func MergeXRefTables(fName string, ctxSrc, ctxDest *model.Context, zip, dividerPage bool) (err error)
- func NDownPage(ctxSrc *model.Context, pageNr, n int, cut *model.Cut) (*model.Context, error)
- func NUpFromMultipleImages(ctx *model.Context, fileNames []string, nup *model.NUp, pagesDict types.Dict, ...) error
- func NUpFromOneImage(ctx *model.Context, fileName string, nup *model.NUp, pagesDict types.Dict, ...) error
- func NUpFromPDF(ctx *model.Context, selectedPages types.IntSet, nup *model.NUp) error
- func NUpValuesForBooklets() []int
- func NewPagesForImage(xRefTable *model.XRefTable, r io.Reader, parentIndRef *types.IndirectRef, ...) ([]*types.IndirectRef, error)
- func OptimizeXRefTable(ctx *model.Context) error
- func PDFBookletConfig(val int, desc string, conf *model.Configuration) (*model.NUp, error)
- func PDFGridConfig(rows, cols int, desc string, conf *model.Configuration) (*model.NUp, error)
- func PDFNUpConfig(val int, desc string, conf *model.Configuration) (*model.NUp, error)
- func PageNrFromDestination(ctx *model.Context, dest types.Object) (int, error)
- func ParseCutConfig(s string, u types.DisplayUnit) (*model.Cut, error)
- func ParseCutConfigForN(n int, s string, u types.DisplayUnit) (*model.Cut, error)
- func ParseCutConfigForPoster(s string, u types.DisplayUnit) (*model.Cut, error)
- func ParseImageWatermarkDetails(fileName, desc string, onTop bool, u types.DisplayUnit) (*model.Watermark, error)
- func ParseNUpDetails(s string, nup *model.NUp) error
- func ParseNUpGridDefinition(rows, cols int, nUp *model.NUp) error
- func ParseNUpValue(n int, nUp *model.NUp) error
- func ParseObjectWithContext(c context.Context, ctx *model.Context, offset int64, objNr, genNr int) (types.Object, error)
- func ParsePDFWatermarkDetails(fileName, desc string, onTop bool, u types.DisplayUnit) (*model.Watermark, error)
- func ParsePageDim(v string, u types.DisplayUnit) (*types.Dim, string, error)
- func ParseResizeConfig(s string, u types.DisplayUnit) (*model.Resize, error)
- func ParseTextWatermarkDetails(text, desc string, onTop bool, u types.DisplayUnit) (*model.Watermark, error)
- func ParseZoomConfig(s string, u types.DisplayUnit) (*model.Zoom, error)
- func PermissionsList(p int) (list []string)
- func PosterPage(ctxSrc *model.Context, pageNr int, cut *model.Cut) (*model.Context, error)
- func PropertiesAdd(ctx *model.Context, properties map[string]string) error
- func PropertiesRemove(ctx *model.Context, properties []string) (bool, error)
- func Read(rs io.ReadSeeker, conf *model.Configuration) (*model.Context, error)
- func ReadFile(inFile string, conf *model.Configuration) (*model.Context, error)
- func ReadFileWithContext(c context.Context, inFile string, conf *model.Configuration) (*model.Context, error)
- func ReadWithContext(c context.Context, rs io.ReadSeeker, conf *model.Configuration) (*model.Context, error)
- func RemoveAnnotations(ctx *model.Context, selectedPages types.IntSet, idsAndTypes []string, ...) (bool, error)
- func RemoveAnnotationsFromPageDict(ctx *model.Context, annotTypes []model.AnnotationType, ids []string, ...) (bool, error)
- func RemoveBookmarks(ctx *model.Context) (bool, error)
- func RemoveWatermarks(ctx *model.Context, selectedPages types.IntSet) error
- func RenderImage(xRefTable *model.XRefTable, sd *types.StreamDict, thumb bool, ...) (io.Reader, string, error)
- func Resize(ctx *model.Context, selectedPages types.IntSet, res *model.Resize) error
- func RotatePages(ctx *model.Context, selectedPages types.IntSet, rotation int) error
- func SaveCertificates(certs []*x509.Certificate, outFile string) error
- func StreamLength(ctx *model.Context, sd *types.StreamDict) (int64, error)
- func UpdateImagesByObjNr(ctx *model.Context, rd io.Reader, objNr int) error
- func UpdateImagesByPageNrAndId(ctx *model.Context, rd io.Reader, pageNr int, id string) error
- func ValidateSignatures(ra io.ReaderAt, ctx *model.Context, all bool) ([]*model.SignatureValidationResult, error)
- func ValidateWatermarkModeParam(mode int, modeParm string, onTop bool) error
- func Write(rd io.Reader, filePath string, overwrite bool) (bool, error)
- func WriteContext(ctx *model.Context) (err error)
- func WriteImage(xRefTable *model.XRefTable, fileName string, sd *types.StreamDict, thumb bool, ...) (string, error)
- func WriteIncrement(ctx *model.Context) error
- func WriteReader(path string, r io.Reader) error
- func Zoom(ctx *model.Context, selectedPages types.IntSet, zoom *model.Zoom) error
- type AnnotListMaxLengths
- type AnnotationList
- type AnnotationListEntry
- type Bookmark
- type BookmarkTree
- type Font
- type Header
- type ImageListMaxLengths
- type Import
- type Metadata
- type PDFImage
- type PDFInfo
- type PageConfiguration
Constants ¶
const (
// ObjectStreamMaxObjects limits the number of objects within an object stream written.
ObjectStreamMaxObjects = 100
)
Variables ¶
var ( // ErrNoBookmarks signals that a PDF has no bookmarks to process. ErrNoBookmarks = errors.New("no bookmarks available") // ErrInvalidBookmark signals an invalid bookmark tree. ErrInvalidBookmark = errors.New("invalid bookmark") // ErrInvalidBookmarkJSON signals malformed bookmark JSON data. ErrInvalidBookmarkJSON = errors.New("invalid bookmark JSON") // ErrExistingBookmarks signals that adding bookmarks would conflict with existing bookmarks. ErrExistingBookmarks = errors.New("existing bookmarks") // ErrCircularBookmarks signals a circular outline item list. ErrCircularBookmarks = errors.New("circular outline item list") )
var ( // ErrMalformedEncryption reports a missing, malformed, or inconsistent encryption dictionary. ErrMalformedEncryption = errors.New("malformed encryption") // ErrUnsupportedEncryptionFeature reports a recognized encryption algorithm, version, or security handler that pdfcpu cannot process. ErrUnsupportedEncryptionFeature = errors.New("unsupported encryption feature") )
var ( // ErrCorruptHeader reports a missing or malformed PDF header. ErrCorruptHeader = errors.New("no header version available") // ErrPostScriptInput reports a PostScript input stream passed to the PDF reader. ErrPostScriptInput = errors.New("PostScript input is not supported; convert to PDF before processing") // ErrEmptyInput reports an empty input stream passed to the PDF reader. ErrEmptyInput = errors.New("the file could not be opened because it is empty") // ErrMissingXRefSection reports a PDF without a detectable final xref section. ErrMissingXRefSection = errors.New("can't detect last xref section") // ErrReferenceDoesNotExist reports a reference to a missing indirect object. ErrReferenceDoesNotExist = errors.New("referenced object does not exist") // ErrWrongPassword reports supplied PDF credentials that fail password authentication. ErrWrongPassword = errors.New("please provide the correct password") // ErrNotEncrypted reports an operation requiring encryption on an unencrypted PDF. ErrNotEncrypted = errors.New("this file is not encrypted") // ErrEncrypted reports an operation that cannot process encrypted PDFs. ErrEncrypted = errors.New("this file is encrypted") // ErrOwnerPasswordRequired reports missing owner credentials for an encryption operation. ErrOwnerPasswordRequired = errors.New("please provide owner password and optional user password") // ErrPermissionDenied reports a PDF operation blocked by encryption permission bits. ErrPermissionDenied = errors.New("operation restricted via permission bits setting") )
var ErrInvalidPageNumber = errors.New("invalid page number")
ErrInvalidPageNumber signals an invalid page number.
var ErrMissingAnnotation = errors.New("missing annotation")
ErrMissingAnnotation signals a missing required annotation.
var ErrMissingCertificate = errors.New("missing certificate")
ErrMissingCertificate signals a missing required certificate.
var ErrMissingImageReader = model.ErrMissingImageReader
ErrMissingImageReader signals a missing required image reader.
var ErrMissingOptimizationContext = errors.New("missing optimization context")
ErrMissingOptimizationContext signals a missing required optimization context.
var ErrMissingPDFContext = model.ErrMissingPDFContext
ErrMissingPDFContext signals a missing required PDF context.
var ErrMissingPDFInfo = errors.New("missing PDF info")
ErrMissingPDFInfo signals missing required PDF info.
var ErrMissingPageNumbers = errors.New("missing page numbers")
ErrMissingPageNumbers signals missing required page numbers.
var ErrMissingReadContext = errors.New("missing PDF read context")
ErrMissingReadContext signals a missing required PDF read context.
var ErrMissingReader = errors.New("missing reader")
ErrMissingReader signals a missing required reader.
var ErrMissingStreamDict = errors.New("missing PDF stream dictionary")
ErrMissingStreamDict signals a missing required PDF stream dictionary.
var ErrMissingWatermarkConfiguration = errors.New("missing watermark configuration")
ErrMissingWatermarkConfiguration signals a missing required watermark configuration.
var ErrMissingWatermarks = errors.New("missing watermarks")
ErrMissingWatermarks signals missing required watermarks.
var ErrMissingWriteContext = errors.New("missing PDF write context")
ErrMissingWriteContext signals a missing required PDF write context.
var ErrMissingXRefTable = model.ErrMissingXRefTable
ErrMissingXRefTable signals a missing required PDF cross-reference table.
var ErrNoCertificates = errors.New("no certificates found")
ErrNoCertificates signals that a certificate file contains no usable certificates.
var ErrNoSignatures = errors.New("no signatures present")
ErrNoSignatures signals that a PDF has no signatures to process.
var ErrUnknownFileType = ErrUnsupportedCertificateFile
ErrUnknownFileType signals an unsupported certificate file type. Deprecated: Use ErrUnsupportedCertificateFile.
var ( // ErrUnsupported16BPC reports an unsupported 16-bit image component depth. ErrUnsupported16BPC = errors.New("unsupported 16 bits per component") )
Errors to be identified.
var ErrUnsupportedCertificateFile = errors.New("unsupported file type")
ErrUnsupportedCertificateFile signals an unsupported certificate file type.
var ErrUnsupportedResource = errors.New("unsupported resource")
ErrUnsupportedResource signals that extraction skipped a resource because pdfcpu does not support its type or filter. Use errors.Is to identify it.
var ErrUnsupportedVersion = errors.New("PDF 2.0 unsupported for this operation")
ErrUnsupportedVersion reports an unsupported PDF version for the requested operation. It is a stable sentinel intended for use with errors.Is.
var (
NUpValues = []int{2, 3, 4, 6, 8, 9, 12, 16}
)
Functions ¶
func AddAnnotation ¶ added in v0.4.0
func AddAnnotation( ctx *model.Context, pageDictIndRef *types.IndirectRef, pageDict types.Dict, pageNr int, ar model.AnnotationRenderer, incr bool) (*types.IndirectRef, types.Dict, error)
AddAnnotation adds ar to pageDict.
func AddAnnotationToPage ¶ added in v0.8.1
func AddAnnotationToPage(ctx *model.Context, pageNr int, ar model.AnnotationRenderer, incr bool) (*types.IndirectRef, types.Dict, error)
AddAnnotationToPage adds annotation to page.
func AddAnnotations ¶ added in v0.4.0
func AddAnnotations(ctx *model.Context, selectedPages types.IntSet, ar model.AnnotationRenderer, incr bool) (bool, error)
AddAnnotations adds ar to selected pages.
func AddAnnotationsMap ¶ added in v0.4.0
func AddAnnotationsMap(ctx *model.Context, m map[int][]model.AnnotationRenderer, incr bool) (bool, error)
AddAnnotationsMap adds annotations in m to corresponding pages.
func AddBookmarks ¶ added in v0.4.0
AddBookmarks adds bookmarks to ctx.
func AddPageTreeWithSamplePage ¶ added in v0.4.0
AddPageTreeWithSamplePage adds page tree with sample page.
func AddPages ¶ added in v0.3.4
AddPages adds pages and corresponding resources from ctxSrc to ctxDest.
func AddWatermarks ¶ added in v0.1.16
AddWatermarks adds watermarks to all pages selected.
func AddWatermarksMap ¶ added in v0.4.0
AddWatermarksMap adds watermarks in m to corresponding pages.
func AddWatermarksSliceMap ¶ added in v0.4.0
AddWatermarksSliceMap adds watermarks in m to corresponding pages.
func Annotation ¶ added in v0.3.12
Annotation returns an annotation renderer. Validation sets up a cache of annotation renderers.
func AnnotationsForSelectedPages ¶ added in v0.5.0
func AnnotationsForSelectedPages(ctx *model.Context, selectedPages types.IntSet) map[int]model.PgAnnots
AnnotationsForSelectedPages annotations for selected pages.
func AppendStatsFile ¶
AppendStatsFile appends a stats line for this xRefTable to the configured csv file name.
func BookletFromImages ¶ added in v0.3.9
func BookletFromImages(ctx *model.Context, fileNames []string, nup *model.NUp, pagesDict types.Dict, pagesIndRef *types.IndirectRef) error
BookletFromImages creates a booklet version of the image sequence represented by fileNames.
func BookletFromPDF ¶ added in v0.4.0
BookletFromPDF creates a booklet version of the PDF represented by xRefTable.
func BookmarkList ¶ added in v0.5.0
BookmarkList returns a formatted bookmark list for ctx.
func CacheFormFonts ¶ added in v0.8.0
CacheFormFonts caches form fonts referenced by ctx.
func CachedAnnotationObjNrs ¶ added in v0.4.0
CachedAnnotationObjNrs returns a list of object numbers representing known annotation dict indirect references.
func ColorSpaceComponents ¶ added in v0.4.0
ColorSpaceComponents returns the corresponding number of used color components for sd's colorspace.
func ColorSpaceString ¶ added in v0.4.0
ColorSpaceString returns a string representation for sd's colorspace.
func CreateAnnotationDemoXRef ¶
CreateAnnotationDemoXRef creates a PDF file with examples of annotations and actions.
func CreateContext ¶ added in v0.1.20
CreateContext creates a Context for given cross reference table and configuration.
func CreateContextWithXRefTable ¶ added in v0.1.20
func CreateContextWithXRefTable(conf *model.Configuration, pageDim *types.Dim) (*model.Context, error)
CreateContextWithXRefTable creates a Context with an xRefTable without pages for given configuration.
func CreateDemoXRef ¶ added in v0.1.16
CreateDemoXRef creates a minimal single page PDF file for demo purposes.
func CreateFormDemoXRef ¶ added in v0.5.0
CreateFormDemoXRef creates an xRefTable with an AcroForm example.
func CreateResourceDictInheritanceDemoXRef ¶ added in v0.3.4
CreateResourceDictInheritanceDemoXRef creates a page tree for testing resource dict inheritance.
func CreateTestPageContent ¶ added in v0.3.3
CreateTestPageContent draws a test grid.
func CreateXRefTableWithRootDict ¶ added in v0.3.13
CreateXRefTableWithRootDict creates x ref table with root dict.
func CutPage ¶ added in v0.4.1
CutPage cuts pageNr into tiles using horizontal or vertical cut points and optional styling.
func DefaultBookletConfig ¶ added in v0.3.9
DefaultBookletConfig returns the default configuration for a booklet.
func DetectPageTreeWatermarks ¶ added in v0.4.0
DetectPageTreeWatermarks checks xRefTable's page tree for watermarks and records the result to xRefTable.Watermarked.
func DetectWatermarks ¶ added in v0.3.1
DetectWatermarks checks ctx for watermarks and records the result to xRefTable.Watermarked.
func EnsureOutlines ¶ added in v0.4.2
EnsureOutlines ensures outlines.
func ExportBookmarksJSON ¶ added in v0.5.0
ExportBookmarksJSON writes the bookmark tree for ctx as JSON.
func ExtractImage ¶ added in v0.4.0
func ExtractImage(ctx *model.Context, sd *types.StreamDict, thumb bool, resourceID string, objNr int, stub bool) (*model.Image, error)
ExtractImage extracts an image from sd.
func ExtractPageContent ¶ added in v0.4.0
ExtractPageContent extracts the consolidated page content stream for pageNr.
func ExtractPageImages ¶ added in v0.4.0
ExtractPageImages extracts all images used by pageNr. Optionally return stubs only. Unsupported resources are handled according to ctx.UnsupportedResourcePolicy.
func ExtractPages ¶ added in v0.4.0
ExtractPages extracts pageNrs into a new single page context.
func FontObjNrs ¶ added in v0.4.0
FontObjNrs returns all font dict objNrs for pageNr. Requires an optimized context.
func GridFromMultipleImages ¶ added in v0.14.0
func GridFromMultipleImages(ctx *model.Context, fileNames []string, nup *model.NUp, pagesDict types.Dict, pagesIndRef *types.IndirectRef) error
GridFromMultipleImages creates grid pages containing each image once. On failure, ctx may contain partial objects or page-tree changes and its PageCount remains unchanged.
func GridFromOneImage ¶ added in v0.14.0
func GridFromOneImage(ctx *model.Context, fileName string, nup *model.NUp, pagesDict types.Dict, pagesIndRef *types.IndirectRef) error
GridFromOneImage creates one grid page with instances of one image. On failure, ctx may contain partial objects and its PageCount remains unchanged.
func GridFromPDF ¶ added in v0.14.0
GridFromPDF creates a grid version of the PDF represented by xRefTable. On failure, the original page tree and PageCount remain authoritative; ctx may contain orphaned partial output objects.
func ImageBookletConfig ¶ added in v0.3.9
ImageBookletConfig returns an NUp configuration for booklet-ing image files.
func ImageGridConfig ¶ added in v0.2.3
ImageGridConfig returns a grid configuration for image files.
func ImageNUpConfig ¶ added in v0.2.3
ImageNUpConfig returns an NUp configuration for Nup-ing image files.
func ImageObjNrs ¶ added in v0.4.0
ImageObjNrs returns all image dict objNrs for pageNr. Requires an optimized context.
func ImportBookmarks ¶ added in v0.5.0
ImportBookmarks creates/replaces bookmarks in ctx as provided by rd.
func InspectCertificate ¶ added in v0.11.0
func InspectCertificate(cert *x509.Certificate) (string, error)
InspectCertificate returns a string representation of cert.
func InvalidateCertificatePool ¶ added in v0.14.0
func InvalidateCertificatePool()
InvalidateCertificatePool marks the cached trusted certificate pool for reloading. The last successfully loaded pool remains available to in-flight API calls.
func KeywordsAdd ¶ added in v0.3.2
KeywordsAdd adds keywords to the document info dict.
func KeywordsList ¶ added in v0.3.2
KeywordsList returns a list of keywords as recorded in the document info dict.
func KeywordsRemove ¶ added in v0.3.2
KeywordsRemove deletes keywords from the document info dict. Returns true if at least one keyword was removed.
func ListAnnotations ¶ added in v0.4.0
ListAnnotations returns a formatted list of annotations.
func ListAnnotationsJSON ¶ added in v0.13.0
ListAnnotationsJSON returns a JSON-formatted list of annotations.
func ListImages ¶ added in v0.4.0
ListImages returns a formatted list of embedded images.
func LoadCertificates ¶ added in v0.10.0
func LoadCertificates() error
LoadCertificates loads and caches certificates from the configured local certificate store for signature validation. Failed loads are not cached and may be retried.
func LoadCertificatesFile ¶ added in v0.12.0
func LoadCertificatesFile(filename string) ([]*x509.Certificate, error)
LoadCertificatesFile loads certificates from filename.
func MergeXRefTables ¶
func MergeXRefTables(fName string, ctxSrc, ctxDest *model.Context, zip, dividerPage bool) (err error)
MergeXRefTables merges Context ctxSrc into ctxDest by appending its page tree. zip ... zip 2 files together (eg. 1A,1B,2A,2B,3A,3B...) dividerPage ... insert blank page between merged files (not applicable for zipping)
func NUpFromMultipleImages ¶ added in v0.3.8
func NUpFromMultipleImages(ctx *model.Context, fileNames []string, nup *model.NUp, pagesDict types.Dict, pagesIndRef *types.IndirectRef) error
NUpFromMultipleImages creates pages in NUp-style rendering each image once. On failure, ctx may contain partial objects or page-tree changes and its PageCount remains unchanged.
func NUpFromOneImage ¶ added in v0.3.8
func NUpFromOneImage(ctx *model.Context, fileName string, nup *model.NUp, pagesDict types.Dict, pagesIndRef *types.IndirectRef) error
NUpFromOneImage creates one page with instances of one image. On failure, ctx may contain partial objects and its PageCount remains unchanged.
func NUpFromPDF ¶ added in v0.1.21
NUpFromPDF creates an n-up version of the PDF represented by xRefTable. On failure, the original page tree and PageCount remain authoritative; ctx may contain orphaned partial output objects.
func NUpValuesForBooklets ¶ added in v0.7.0
func NUpValuesForBooklets() []int
NUpValuesForBooklets returns the supported booklet page counts per sheet.
func NewPagesForImage ¶ added in v0.10.0
func NewPagesForImage(xRefTable *model.XRefTable, r io.Reader, parentIndRef *types.IndirectRef, imp *Import) ([]*types.IndirectRef, error)
NewPagesForImage creates a new page dicts in xRefTable for given image reader r.
func OptimizeXRefTable ¶
OptimizeXRefTable optimizes an xRefTable by locating and getting rid of redundant embedded fonts and images.
func PDFBookletConfig ¶ added in v0.3.9
PDFBookletConfig returns an NUp configuration for booklet-ing PDF files.
func PDFGridConfig ¶ added in v0.2.3
PDFGridConfig returns a grid configuration for PDF files.
func PDFNUpConfig ¶ added in v0.2.3
PDFNUpConfig returns an NUp configuration for Nup-ing PDF files.
func PageNrFromDestination ¶ added in v0.10.0
PageNrFromDestination returns the page number of a destination.
func ParseCutConfig ¶ added in v0.4.1
ParseCutConfig parses a Cut command string into an internal structure. optionally: horizontalCut, verticalCut, bgcolor, border, margin, origin
func ParseCutConfigForN ¶ added in v0.4.1
ParseCutConfigForN parses a NDown command string into an internal structure. n, Optionally: border, margin, bgcolor
func ParseCutConfigForPoster ¶ added in v0.4.1
ParseCutConfigForPoster parses a Cut command string into an internal structure. formsize(=papersize) or dimensions, optionally: scalefactor, border, margin, bgcolor
func ParseImageWatermarkDetails ¶ added in v0.3.1
func ParseImageWatermarkDetails(fileName, desc string, onTop bool, u types.DisplayUnit) (*model.Watermark, error)
ParseImageWatermarkDetails parses an image Watermark/Stamp command string into an internal structure.
func ParseNUpDetails ¶ added in v0.1.21
ParseNUpDetails parses a NUp command string into an internal structure.
func ParseNUpGridDefinition ¶ added in v0.1.21
ParseNUpGridDefinition parses grid dimensions into a shared imposition configuration.
func ParseNUpValue ¶ added in v0.1.21
ParseNUpValue parses the NUp value into an internal structure.
func ParseObjectWithContext ¶ added in v0.7.0
func ParseObjectWithContext(c context.Context, ctx *model.Context, offset int64, objNr, genNr int) (types.Object, error)
ParseObjectWithContext parses an object at offset using c for cancellation.
func ParsePDFWatermarkDetails ¶ added in v0.3.1
func ParsePDFWatermarkDetails(fileName, desc string, onTop bool, u types.DisplayUnit) (*model.Watermark, error)
ParsePDFWatermarkDetails parses a PDF Watermark/Stamp command string into an internal structure.
func ParsePageDim ¶ added in v0.8.1
ParsePageDim parses page dim.
func ParseResizeConfig ¶ added in v0.4.0
ParseResizeConfig parses a Resize command string into an internal structure. Examples: "sc:.5", "form:A4, bgcol:#D00000", or "dim:400 200, border:on".
func ParseTextWatermarkDetails ¶ added in v0.3.1
func ParseTextWatermarkDetails(text, desc string, onTop bool, u types.DisplayUnit) (*model.Watermark, error)
ParseTextWatermarkDetails parses a text Watermark/Stamp command string into an internal structure.
func ParseZoomConfig ¶ added in v0.7.0
ParseZoomConfig parses a Zoom command string into an internal structure.
func PermissionsList ¶ added in v0.5.0
PermissionsList returns a list of set permissions.
func PosterPage ¶ added in v0.4.1
PosterPage creates poster tiles for pageNr using a form size or explicit dimensions.
func PropertiesAdd ¶ added in v0.3.2
PropertiesAdd adds properties into the document info dict.
func PropertiesRemove ¶ added in v0.3.2
PropertiesRemove deletes specified document properties. If properties is empty, it removes all properties and catalog XMP metadata. Returns true if at least one property was removed.
func Read ¶ added in v0.1.18
func Read(rs io.ReadSeeker, conf *model.Configuration) (*model.Context, error)
Read takes a readSeeker and generates a PDF model context, an in-memory representation containing a cross reference table.
func ReadFile ¶ added in v0.1.18
ReadFile reads in a PDF file and builds an internal structure holding its cross reference table aka the PDF model context.
func ReadFileWithContext ¶ added in v0.7.0
func ReadFileWithContext(c context.Context, inFile string, conf *model.Configuration) (*model.Context, error)
ReadFileWithContext reads in a PDF file and builds an internal structure holding its cross reference table aka the PDF model context. If the passed Go context is cancelled, reading will be interrupted.
func ReadWithContext ¶ added in v0.7.0
func ReadWithContext(c context.Context, rs io.ReadSeeker, conf *model.Configuration) (*model.Context, error)
ReadWithContext takes a readSeeker and generates a PDF model context, an in-memory representation containing a cross reference table. If the passed Go context is cancelled, reading will be interrupted.
func RemoveAnnotations ¶ added in v0.4.0
func RemoveAnnotations(ctx *model.Context, selectedPages types.IntSet, idsAndTypes []string, objNrs []int, incr bool) (bool, error)
RemoveAnnotations removes annotations for selected pages by id, type or object number. All annotations for selected pages are removed if neither idsAndTypes nor objNrs are provided.
func RemoveAnnotationsFromPageDict ¶ added in v0.4.0
func RemoveAnnotationsFromPageDict( ctx *model.Context, annotTypes []model.AnnotationType, ids []string, objNrSet types.IntSet, pageDict types.Dict, pageDictObjNr, pageNr int, incr bool) (bool, error)
RemoveAnnotationsFromPageDict removes an annotation by annotType, id and obj# from pageDict.
func RemoveBookmarks ¶ added in v0.5.0
RemoveBookmarks erases all bookmarks from ctx.
func RemoveWatermarks ¶ added in v0.2.5
RemoveWatermarks removes watermarks for all pages selected.
func RenderImage ¶ added in v0.3.5
func RenderImage(xRefTable *model.XRefTable, sd *types.StreamDict, thumb bool, resourceName string, objNr int) (io.Reader, string, error)
RenderImage returns a reader for a decoded image stream.
func RotatePages ¶ added in v0.1.20
RotatePages rotates all selected pages by a multiple of 90 degrees.
func SaveCertificates ¶ added in v0.14.0
func SaveCertificates(certs []*x509.Certificate, outFile string) error
SaveCertificates saves certificates as a PKCS#7 container, atomically replacing outFile.
func StreamLength ¶ added in v0.4.0
StreamLength returns sd's stream length.
func UpdateImagesByObjNr ¶ added in v0.9.0
UpdateImagesByObjNr replaces an XObject.
func UpdateImagesByPageNrAndId ¶ added in v0.9.0
UpdateImagesByPageNrAndId replaces the XObject referenced by pageNr and id.
func ValidateSignatures ¶ added in v0.10.0
func ValidateSignatures(ra io.ReaderAt, ctx *model.Context, all bool) ([]*model.SignatureValidationResult, error)
ValidateSignatures reports observed signature, certificate, timestamp and revocation evidence together with a local assessment.
func ValidateWatermarkModeParam ¶ added in v0.13.0
ValidateWatermarkModeParam validates the user supplied watermark/stamp mode parameter.
func WriteContext ¶
WriteContext generates a PDF file for the cross reference table contained in Context.
func WriteImage ¶ added in v0.1.16
func WriteImage(xRefTable *model.XRefTable, fileName string, sd *types.StreamDict, thumb bool, objNr int) (string, error)
WriteImage writes a PDF image object to disk.
func WriteIncrement ¶ added in v0.3.12
WriteIncrement writes a PDF increment..
func WriteReader ¶ added in v0.3.12
WriteReader consumes r's content by writing it to a file at path.
Types ¶
type AnnotListMaxLengths ¶ added in v0.8.1
type AnnotListMaxLengths struct {
ObjNr, ID, Rect, Content, Type int
}
type AnnotationList ¶ added in v0.13.0
type AnnotationList struct {
Header Header `json:"header"`
Annotations map[int][]AnnotationListEntry `json:"annotations"`
}
AnnotationList represents page annotations formatted for JSON output.
type AnnotationListEntry ¶ added in v0.13.0
type AnnotationListEntry struct {
Type string `json:"type"`
ObjNr int `json:"objNr"`
ID string `json:"id,omitempty"`
Rect [4]float64 `json:"rect"`
Content *string `json:"content"`
CustomTyp string `json:"customType,omitempty"`
}
AnnotationListEntry represents one page annotation formatted for JSON output.
type Bookmark ¶ added in v0.3.6
type Bookmark struct {
Title string `json:"title"`
PageFrom int `json:"page"`
PageThru int `json:"-"` // for extraction only; >= pageFrom and reaches until before pageFrom of the next bookmark.
Bold bool `json:"bold,omitempty"`
Italic bool `json:"italic,omitempty"`
Color *color.SimpleColor `json:"color,omitempty"`
Kids []Bookmark `json:"kids,omitempty"`
Parent *Bookmark `json:"-"`
}
Bookmark represents a PDF bookmark backed by an outline item.
func BookmarksForOutlineItem ¶ added in v0.4.0
func BookmarksForOutlineItem(ctx *model.Context, item *types.IndirectRef, parent *Bookmark) ([]Bookmark, error)
BookmarksForOutlineItem returns the bookmarks tree for an outline item.
type BookmarkTree ¶ added in v0.5.0
BookmarkTree contains exported bookmark metadata and the bookmark hierarchy.
func ExportBookmarks ¶ added in v0.5.0
func ExportBookmarks(ctx *model.Context, source string) (*BookmarkTree, error)
ExportBookmarks returns the bookmark tree for ctx.
type Font ¶ added in v0.3.5
Font is a Reader representing an embedded font.
func ExtractFont ¶ added in v0.4.0
ExtractFont extracts a font from fontObject.
func ExtractFormFonts ¶ added in v0.4.0
ExtractFormFonts extracts all form fonts. Unsupported resources are handled according to ctx.UnsupportedResourcePolicy.
type Header ¶ added in v0.5.0
type Header struct {
Source string `json:"source,omitempty"`
Version string `json:"version"`
Creation string `json:"creation"`
ID []string `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Author string `json:"author,omitempty"`
Creator string `json:"creator,omitempty"`
Producer string `json:"producer,omitempty"`
Subject string `json:"subject,omitempty"`
Keywords string `json:"keywords,omitempty"`
}
Header contains metadata written to exported bookmark JSON.
type ImageListMaxLengths ¶ added in v0.5.0
type ImageListMaxLengths struct {
PageNr, ObjNr, ID, Size, Filters int
}
ImageListMaxLengths contains the column widths for a formatted image list.
type Import ¶ added in v0.1.20
type Import struct {
PageDim *types.Dim // page dimensions in display unit.
PageSize string // one of A0,A1,A2,A3,A4(=default),A5,A6,A7,A8,Letter,Legal,Ledger,Tabloid,Executive,ANSIC,ANSID,ANSIE.
UserDim bool // true if one of dimensions or paperSize provided overriding the default.
DPI int // destination resolution to apply in dots per inch.
Pos types.Anchor // position anchor, one of tl,tc,tr,l,c,r,bl,bc,br,full.
Dx, Dy float64 // anchor offset.
Scale float64 // relative scale factor. 0 <= x <= 1
ScaleAbs bool // true for absolute scaling.
InpUnit types.DisplayUnit // input display unit.
Gray bool // true for rendering in Gray.
Sepia bool
BgColor *color.SimpleColor // background color
}
Import represents the command details for the command "ImportImage".
func DefaultImportConfig ¶ added in v0.1.20
func DefaultImportConfig() *Import
DefaultImportConfig returns the default configuration.
func ParseImportDetails ¶ added in v0.1.20
func ParseImportDetails(s string, u types.DisplayUnit) (*Import, error)
ParseImportDetails parses an Import command string into an internal structure.
type Metadata ¶ added in v0.3.5
type Metadata struct {
io.Reader // metadata
ObjNr int // metadata dict objNr
ParentObjNr int // container object number
ParentType string // container dict type
}
Metadata is a Reader representing a metadata dict.
type PDFImage ¶ added in v0.1.16
type PDFImage struct {
// contains filtered or unexported fields
}
PDFImage represents a XObject of subtype image.
type PDFInfo ¶ added in v0.5.0
type PDFInfo struct {
FileName string `json:"source,omitempty"`
Version string `json:"version"`
PageCount int `json:"pageCount"`
PageBoundaries []model.PageBoundaries `json:"-"`
Boundaries map[string]model.PageBoundaries `json:"pageBoundaries,omitempty"`
PageDimensions map[types.Dim]bool `json:"-"`
Dimensions []types.Dim `json:"pageSizes,omitempty"`
Title string `json:"title"`
Author string `json:"author"`
Subject string `json:"subject"`
Producer string `json:"producer"`
Creator string `json:"creator"`
CreationDate string `json:"creationDate"`
ModificationDate string `json:"modificationDate"`
PageMode string `json:"pageMode,omitempty"`
PageLayout string `json:"pageLayout,omitempty"`
ViewerPref *model.ViewerPreferences `json:"viewerPreferences,omitempty"`
Keywords []string `json:"keywords"`
Properties map[string]string `json:"properties"`
Tagged bool `json:"tagged"`
Hybrid bool `json:"hybrid"`
Linearized bool `json:"linearized"`
UsingXRefStreams bool `json:"usingXRefStreams"`
UsingObjectStreams bool `json:"usingObjectStreams"`
Watermarked bool `json:"watermarked"`
Thumbnails bool `json:"thumbnails"`
Form bool `json:"form"`
Signatures bool `json:"signatures"`
AppendOnly bool `json:"appendOnly"`
Outlines bool `json:"bookmarks"`
Names bool `json:"names"`
Encrypted bool `json:"encrypted"`
Permissions int `json:"permissions"`
Attachments []model.Attachment `json:"attachments,omitempty"`
Unit types.DisplayUnit `json:"-"`
UnitString string `json:"unit"`
Fonts []model.FontInfo `json:"fonts,omitempty"`
}
type PageConfiguration ¶ added in v0.8.1
type PageConfiguration struct {
PageDim *types.Dim // page dimensions in display unit; nil inherits each selected page's effective MediaBox.
PageSize string // one of A0,A1,A2,A3,A4(=default),A5,A6,A7,A8,Letter,Legal,Ledger,Tabloid,Executive,ANSIC,ANSID,ANSIE.
UserDim bool // true if one of dimensions or paperSize provided overriding the default.
InpUnit types.DisplayUnit // input display unit.
}
PageConfiguration represents the page config for the "pages insert" command.
func DefaultPageConfiguration ¶ added in v0.8.1
func DefaultPageConfiguration() *PageConfiguration
DefaultPageConfiguration returns the default configuration.
func ParsePageConfiguration ¶ added in v0.8.1
func ParsePageConfiguration(s string, u types.DisplayUnit) (*PageConfiguration, error)
ParsePageConfiguration parses a page configuration string into an internal structure.
func (PageConfiguration) String ¶ added in v0.8.1
func (p PageConfiguration) String() string
String returns the string value of p.
Source Files
¶
- annotation.go
- booklet.go
- bookmark.go
- certificate.go
- createAnnotations.go
- createRenditions.go
- createTestPDF.go
- crypto.go
- cut.go
- doc.go
- errors.go
- extract.go
- guard.go
- iccProfile.go
- image.go
- importImage.go
- info.go
- io.go
- keyword.go
- merge.go
- migrate.go
- nup.go
- optimize.go
- page.go
- parameter.go
- property.go
- read.go
- resize.go
- rotate.go
- sign.go
- stamp.go
- write.go
- writeImage.go
- writeObjects.go
- writeObjects_pdf.go
- writePages.go
- writeStats.go
- zoom.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package pkcs7 implements parsing and generation of some PKCS#7 structures.
|
Package pkcs7 implements parsing and generation of some PKCS#7 structures. |
|
Package validate implements validation against PDF 32000-1:2008.
|
Package validate implements validation against PDF 32000-1:2008. |