Back to godoc.org

Package api

v0.3.6
Latest Go to latest

The latest major version is .

Published: today | License: Apache-2.0 | Module: github.com/pdfcpu/pdfcpu

Overview

Package api lets you integrate pdfcpu's operations into your Go backend.

There are two api layers supporting all pdfcpu operations:

1) The file based layer (used by pdfcpu's cli)
2) The io.ReadSeeker/io.Writer based layer for backend integration.

For any pdfcpu command there are two functions.

The file based function always calls the io.ReadSeeker/io.Writer based function:

func CommandFile(inFile, outFile string, conf *pdf.Configuration) error
func Command(rs io.ReadSeeker, w io.Writer, conf *pdf.Configuration) error

eg. for optimization:

func OptimizeFile(inFile, outFile string, conf *pdf.Configuration) error
func Optimize(rs io.ReadSeeker, w io.Writer, conf *pdf.Configuration) error

Index

Examples

func AddAttachments

func AddAttachments(rs io.ReadSeeker, w io.Writer, files []string, coll bool, conf *pdfcpu.Configuration) error

AddAttachments embeds files into a PDF context read from rs and writes the result to w. file is either a file name or a file name and a description separated by a comma.

func AddAttachmentsFile

func AddAttachmentsFile(inFile, outFile string, files []string, coll bool, conf *pdfcpu.Configuration) (err error)

AddAttachmentsFile embeds files into a PDF context read from inFile and writes the result to outFile.

Example

Code:

// Attach 3 files to in.pdf.
AddAttachmentsFile("in.pdf", "", []string{"img.jpg", "attach.pdf", "test.zip"}, false, nil)

func AddImageWatermarksFile

func AddImageWatermarksFile(inFile, outFile string, selectedPages []string, onTop bool, fileName, desc string, conf *pdfcpu.Configuration) error

AddImageWatermarksFile adds image stamps/watermarks to all selected pages of inFile and writes the result to outFile.

func AddKeywords

func AddKeywords(rs io.ReadSeeker, w io.Writer, files []string, conf *pdf.Configuration) error

AddKeywords embeds files into a PDF context read from rs and writes the result to w.

func AddKeywordsFile

func AddKeywordsFile(inFile, outFile string, files []string, conf *pdf.Configuration) (err error)

AddKeywordsFile embeds files into a PDF context read from inFile and writes the result to outFile.

func AddPDFWatermarksFile

func AddPDFWatermarksFile(inFile, outFile string, selectedPages []string, onTop bool, fileName, desc string, conf *pdfcpu.Configuration) error

AddPDFWatermarksFile adds PDF stamps/watermarks to all selected pages of inFile and writes the result to outFile.

func AddProperties

func AddProperties(rs io.ReadSeeker, w io.Writer, properties map[string]string, conf *pdf.Configuration) error

AddProperties embeds files into a PDF context read from rs and writes the result to w.

func AddPropertiesFile

func AddPropertiesFile(inFile, outFile string, properties map[string]string, conf *pdf.Configuration) (err error)

AddPropertiesFile embeds files into a PDF context read from inFile and writes the result to outFile.

func AddTextWatermarksFile

func AddTextWatermarksFile(inFile, outFile string, selectedPages []string, onTop bool, text, desc string, conf *pdfcpu.Configuration) error

AddTextWatermarksFile adds text stamps/watermarks to all selected pages of inFile and writes the result to outFile.

func AddWatermarks

func AddWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, wm *pdfcpu.Watermark, conf *pdfcpu.Configuration) error

AddWatermarks adds watermarks to all pages selected in rs and writes the result to w. Called by AddWatermarksFile or manually by passing in wm created by calling TextWatermark, ImageWatermark or PDFWatermark.

func AddWatermarksFile

func AddWatermarksFile(inFile, outFile string, selectedPages []string, wm *pdfcpu.Watermark, conf *pdfcpu.Configuration) (err error)

AddWatermarksFile adds watermarks to all selected pages of inFile and writes the result to outFile. Called by: AddTextWatermarksFile, AddImageWatermarksFile, AddPDFWatermarksFile UpdateTextWatermarksFile, UpdateImageWatermarksFile, UpdatePDFWatermarksFile

Example

Code:

// Unique abbreviations are accepted for all watermark descriptor parameters.
// eg. sc = scalefactor or rot = rotation

// Add a "Demo" watermark to all pages of in.pdf along the diagonal running from lower left to upper right.
onTop := false
wm, _ := pdfcpu.ParseTextWatermarkDetails("Demo", "", onTop)
AddWatermarksFile("in.pdf", "", nil, wm, nil)

// Stamp all odd pages of in.pdf in red "Confidential" in 48 point Courier
// using a rotation angle of 45 degrees and an absolute scalefactor of 1.0.
onTop = true
wm, _ = pdfcpu.ParseTextWatermarkDetails("Confidential", "font:Courier, points:48, col: 1 0 0, rot:45, sc:1 abs, ", onTop)
AddWatermarksFile("in.pdf", "", []string{"odd"}, wm, nil)

// Add image stamps to in.pdf using absolute scaling and a negative rotation of 90 degrees.
onTop = true
wm, _ = pdfcpu.ParseImageWatermarkDetails("image.png", "scalefactor:.5 a, rot:-90", onTop)
AddWatermarksFile("in.pdf", "", nil, wm, nil)

// Add a PDF stamp to all pages of in.pdf using the 2nd page of stamp.pdf, use absolute scaling of 0.5
// and rotate along the 2nd diagonal running from upper left to lower right corner.
onTop = true
wm, _ = pdfcpu.ParsePDFWatermarkDetails("stamp.pdf:2", "sc:.5 abs, diagonal:2", onTop)
AddWatermarksFile("in.pdf", "", nil, wm, nil)

func ChangeOwnerPasswordFile

func ChangeOwnerPasswordFile(inFile, outFile string, pwOld, pwNew string, conf *pdfcpu.Configuration) error

ChangeOwnerPasswordFile reads inFile, changes the user password and writes the result to outFile. A configuration containing the current passwords is required.

Example

Code:

// Changing the owner password for an AES-256 encrypted file.
conf := pdfcpu.NewAESConfiguration("upw", "opw", 256)
ChangeOwnerPasswordFile("in.pdf", "", "opw", "opwNew", conf)

func ChangeUserPasswordFile

func ChangeUserPasswordFile(inFile, outFile string, pwOld, pwNew string, conf *pdfcpu.Configuration) error

ChangeUserPasswordFile reads inFile, changes the user password and writes the result to outFile. A configuration containing the current passwords is required.

Example

Code:

// Changing the user password for an AES-256 encrypted file.
conf := pdfcpu.NewAESConfiguration("upw", "opw", 256)
ChangeUserPasswordFile("in.pdf", "", "upw", "upwNew", conf)

func Collect

func Collect(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *pdfcpu.Configuration) error

Collect creates a custom PDF page sequence for selected pages of rs and writes the result to w.

func CollectFile

func CollectFile(inFile, outFile string, selectedPages []string, conf *pdfcpu.Configuration) (err error)

CollectFile creates a custom PDF page sequence for inFile and writes the result to outFile.

func CreatePDFFile

func CreatePDFFile(xRefTable *pdf.XRefTable, outFile string, conf *pdf.Configuration) error

CreatePDFFile creates a PDF file for an xRefTable and writes it to outFile.

func DecryptFile

func DecryptFile(inFile, outFile string, conf *pdfcpu.Configuration) error

DecryptFile decrypts inFile and writes the result to outFile. A configuration containing the current passwords is required.

Example

Code:

// Decrypting an AES-256 encrypted file.
conf := pdfcpu.NewAESConfiguration("upw", "opw", 256)
DecryptFile("in.pdf", "", conf)

func DisableConfigDir

func DisableConfigDir()

DisableConfigDir disables the configuration directory. Any needed default configuration will be loaded from configuration.go Since the config dir also contains the user font dir, this also limits font usage to the default core font set No user fonts will be available.

func EncryptFile

func EncryptFile(inFile, outFile string, conf *pdfcpu.Configuration) error

EncryptFile encrypts inFile and writes the result to outFile. A configuration containing the current passwords is required.

Example

Code:

// Encrypting a file using AES-256.
conf := pdfcpu.NewAESConfiguration("upw", "opw", 256)
EncryptFile("in.pdf", "", conf)

func EnsureDefaultConfigAt

func EnsureDefaultConfigAt(path string) error

EnsureDefaultConfigAt switches to the pdfcpu confif dir located at path. If path/pdfcpu is not existent, it will be created including config.yml

func ExtractAttachments

func ExtractAttachments(rs io.ReadSeeker, outDir string, fileNames []string, conf *pdfcpu.Configuration) error

ExtractAttachments extracts embedded files from a PDF context read from rs into outDir.

func ExtractAttachmentsFile

func ExtractAttachmentsFile(inFile, outDir string, fileNames []string, conf *pdfcpu.Configuration) error

ExtractAttachmentsFile extracts embedded files from a PDF context read from inFile into outDir.

Example

Code:

// Extract 1 attachment from in.pdf into outDir.
ExtractAttachmentsFile("in.pdf", "outDir", []string{"img.jpg"}, nil)

// Extract all attachments from in.pdf into outDir
ExtractAttachmentsFile("in.pdf", "outDir", nil, nil)

func ExtractContent

func ExtractContent(rs io.ReadSeeker, outDir, fileName string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractContent dumps "PDF source" files from rs into outDir for selected pages.

func ExtractContentFile

func ExtractContentFile(inFile, outDir string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractContentFile dumps "PDF source" files from inFile into outDir for selected pages.

Example

Code:

// Extract content for all pages in PDF syntax from in.pdf into outDir.
ExtractContentFile("in.pdf", "outDir", nil, nil)

func ExtractFonts

func ExtractFonts(rs io.ReadSeeker, outDir, fileName string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractFonts dumps embedded fontfiles from rs into outDir for selected pages.

func ExtractFontsFile

func ExtractFontsFile(inFile, outDir string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractFontsFile dumps embedded fontfiles from inFile into outDir for selected pages.

Example

Code:

// Extract embedded fonts for pages 1-3 from in.pdf into outDir.
ExtractFontsFile("in.pdf", "outDir", []string{"1-3"}, nil)

func ExtractImages

func ExtractImages(rs io.ReadSeeker, outDir, fileName string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractImages dumps embedded image resources from rs into outDir for selected pages.

func ExtractImagesFile

func ExtractImagesFile(inFile, outDir string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractImagesFile dumps embedded image resources from inFile into outDir for selected pages.

Example

Code:

// Extract embedded images from in.pdf into outDir.
ExtractImagesFile("in.pdf", "outDir", nil, nil)

func ExtractMetadata

func ExtractMetadata(rs io.ReadSeeker, outDir, fileName string, conf *pdfcpu.Configuration) error

ExtractMetadata dumps all metadata dict entries for rs into outDir.

func ExtractMetadataFile

func ExtractMetadataFile(inFile, outDir string, conf *pdfcpu.Configuration) error

ExtractMetadataFile dumps all metadata dict entries for inFile into outDir.

Example

Code:

// Extract all metadata from in.pdf into outDir.
ExtractMetadataFile("in.pdf", "outDir", nil)

func ExtractPages

func ExtractPages(rs io.ReadSeeker, outDir, fileName string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractPages generates single page PDF files from rs in outDir for selected pages.

func ExtractPagesFile

func ExtractPagesFile(inFile, outDir string, selectedPages []string, conf *pdfcpu.Configuration) error

ExtractPagesFile generates single page PDF files from inFile in outDir for selected pages.

Example

Code:

// Extract all even numbered pages from in.pdf into outDir.
ExtractPagesFile("in.pdf", "outDir", []string{"even"}, nil)

func GetPermissions

func GetPermissions(rs io.ReadSeeker, conf *pdfcpu.Configuration) (*int16, error)

GetPermissions returns the permissions for rs.

func GetPermissionsFile

func GetPermissionsFile(inFile string, conf *pdfcpu.Configuration) (*int16, error)

GetPermissionsFile returns the permissions for inFile.

func HasWatermarks

func HasWatermarks(rs io.ReadSeeker, conf *pdfcpu.Configuration) (bool, error)

HasWatermarks checks rs for watermarks.

func HasWatermarksFile

func HasWatermarksFile(inFile string, conf *pdfcpu.Configuration) (bool, error)

HasWatermarksFile checks inFile for watermarks.

func ImageWatermark

func ImageWatermark(fileName, desc string, onTop, update bool) (*pdfcpu.Watermark, error)

ImageWatermark returns an image watermark configuration.

func ImportImages

func ImportImages(rs io.ReadSeeker, w io.Writer, imgs []io.Reader, imp *pdfcpu.Import, conf *pdfcpu.Configuration) error

ImportImages appends PDF pages containing images to rs and writes the result to w. If rs == nil a new PDF file will be written to w.

func ImportImagesFile

func ImportImagesFile(imgFiles []string, outFile string, imp *pdfcpu.Import, conf *pdfcpu.Configuration) (err error)

ImportImagesFile appends PDF pages containing images to outFile which will be created if necessary.

Example

Code:

// Convert an image into a single page of out.pdf which will be created if necessary.
// The page dimensions will match the image dimensions.
// If out.pdf already exists, append a new page.
// Use the default import configuration.
ImportImagesFile([]string{"image.png"}, "out.pdf", nil, nil)

// Import images by creating an A3 page for each image.
// Images are page centered with 1.0 relative scaling.
// Import an image as a new page of the existing out.pdf.
imp, _ := pdfcpu.ParseImportDetails("form:A3, pos:c, s:1.0")
ImportImagesFile([]string{"a1.png", "a2.jpg", "a3.tiff"}, "out.pdf", imp, nil)

func Info

func Info(rs io.ReadSeeker, conf *pdfcpu.Configuration) ([]string, error)

Info returns information about rs.

func InfoFile

func InfoFile(inFile string, conf *pdfcpu.Configuration) ([]string, error)

InfoFile returns information about inFile.

func InsertPages

func InsertPages(rs io.ReadSeeker, w io.Writer, selectedPages []string, before bool, conf *pdfcpu.Configuration) error

InsertPages inserts a blank page before or after every page selected of rs and writes the result to w.

func InsertPagesFile

func InsertPagesFile(inFile, outFile string, selectedPages []string, before bool, conf *pdfcpu.Configuration) (err error)

InsertPagesFile inserts a blank page before or after every inFile page selected and writes the result to w.

Example

Code:

// Insert a blank page into in.pdf before page #3.
InsertPagesFile("in.pdf", "", []string{"3"}, true, nil)

// Insert a blank page into in.pdf after every page.
InsertPagesFile("in.pdf", "", nil, false, nil)

func InstallFonts

func InstallFonts(fileNames []string) error

InstallFonts installs true type fonts for embedding.

func ListAttachments

func ListAttachments(rs io.ReadSeeker, conf *pdfcpu.Configuration) ([]string, error)

ListAttachments returns a list of embedded file attachments of rs.

func ListAttachmentsFile

func ListAttachmentsFile(inFile string, conf *pdfcpu.Configuration) ([]string, error)

ListAttachmentsFile returns a list of embedded file attachments of inFile.

Example

Code:

// Output a list of attachments of in.pdf.
list, _ := ListAttachmentsFile("in.pdf", nil)
for _, s := range list {
	fmt.Println(s)
}

func ListFonts

func ListFonts() ([]string, error)

ListFonts returns a list of supported fonts.

func ListKeywords

func ListKeywords(rs io.ReadSeeker, conf *pdf.Configuration) ([]string, error)

ListKeywords returns the keyword list of rs.

func ListKeywordsFile

func ListKeywordsFile(inFile string, conf *pdf.Configuration) ([]string, error)

ListKeywordsFile returns the keyword list of inFile.

func ListPermissions

func ListPermissions(rs io.ReadSeeker, conf *pdfcpu.Configuration) ([]string, error)

ListPermissions returns a list of user access permissions.

func ListPermissionsFile

func ListPermissionsFile(inFile string, conf *pdfcpu.Configuration) ([]string, error)

ListPermissionsFile returns a list of user access permissions for inFile.

Example

Code:

// Output the current permissions of in.pdf.
list, _ := ListPermissionsFile("in.pdf", nil)
for _, s := range list {
	fmt.Println(s)
}

func ListProperties

func ListProperties(rs io.ReadSeeker, conf *pdf.Configuration) ([]string, error)

ListProperties returns the property list of rs.

func ListPropertiesFile

func ListPropertiesFile(inFile string, conf *pdf.Configuration) ([]string, error)

ListPropertiesFile returns the property list of inFile.

func Merge

func Merge(rsc []io.ReadSeeker, w io.Writer, conf *pdfcpu.Configuration) error

Merge merges a sequence of PDF streams and writes the result to w.

func MergeAppendFile

func MergeAppendFile(inFiles []string, outFile string, conf *pdfcpu.Configuration) (err error)

MergeAppendFile merges a sequence of inFiles and writes the result to outFile. This operation corresponds to file concatenation in the order specified by inFiles. If outFile already exists, inFiles will be appended.

Example

Code:

// Merge inFiles by concatenation in the order specified and write the result to out.pdf.
// If out.pdf already exists it will be preserved and serves as the beginning of the merge result.
inFiles := []string{"in1.pdf", "in2.pdf"}
MergeAppendFile(inFiles, "out.pdf", nil)

func MergeCreateFile

func MergeCreateFile(inFiles []string, outFile string, conf *pdfcpu.Configuration) error

MergeCreateFile merges a sequence of inFiles and writes the result to outFile. This operation corresponds to file concatenation in the order specified by inFiles. The first entry of inFiles serves as the destination context where all remaining files get merged into.

Example

Code:

// Merge inFiles by concatenation in the order specified and write the result to out.pdf.
// out.pdf will be overwritten.
inFiles := []string{"in1.pdf", "in2.pdf"}
MergeCreateFile(inFiles, "out.pdf", nil)

func NUp

func NUp(rs io.ReadSeeker, w io.Writer, imgFiles, selectedPages []string, nup *pdfcpu.NUp, conf *pdfcpu.Configuration) error

NUp rearranges PDF pages or images into page grids and writes the result to w. Either rs or imgFiles will be used.

func NUpFile

func NUpFile(inFiles []string, outFile string, selectedPages []string, nup *pdfcpu.NUp, conf *pdfcpu.Configuration) (err error)

NUpFile rearranges PDF pages or images into page grids and writes the result to outFile.

Example

Code:

// 4-Up in.pdf and write result to out.pdf.
nup, _ := pdfcpu.PDFNUpConfig(4, "")
inFiles := []string{"in.pdf"}
NUpFile(inFiles, "out.pdf", nil, nup, nil)

// 9-Up a sequence of images using format Tabloid w/o borders and no margins.
nup, _ = pdfcpu.ImageNUpConfig(9, "f:Tabloid, b:off, m:0")
inFiles = []string{"in1.png", "in2.jpg", "in3.tiff"}
NUpFile(inFiles, "out.pdf", nil, nup, nil)

// TestGridFromPDF
nup, _ = pdfcpu.PDFGridConfig(1, 3, "f:LegalL")
inFiles = []string{"in.pdf"}
NUpFile(inFiles, "out.pdf", nil, nup, nil)

// TestGridFromImages
nup, _ = pdfcpu.ImageGridConfig(4, 2, "d:500 500, m:20, b:off")
inFiles = []string{"in1.png", "in2.jpg", "in3.tiff"}
NUpFile(inFiles, "out.pdf", nil, nup, nil)

func Optimize

func Optimize(rs io.ReadSeeker, w io.Writer, conf *pdfcpu.Configuration) error

Optimize reads a PDF stream from rs and writes the optimized PDF stream to w.

func OptimizeContext

func OptimizeContext(ctx *pdfcpu.Context) error

OptimizeContext optimizes a PDF context.

func OptimizeFile

func OptimizeFile(inFile, outFile string, conf *pdfcpu.Configuration) (err error)

OptimizeFile reads inFile and writes the optimized PDF to outFile. If outFile is not provided then inFile gets overwritten which leads to the same result as when inFile equals outFile.

Example

Code:

conf := pdfcpu.NewDefaultConfiguration()

// Set passwords for encrypted files.
conf.UserPW = "upw"
conf.OwnerPW = "opw"

// Configure end of line sequence for writing.
conf.Eol = pdfcpu.EolLF

// Create an optimized version of in.pdf and write it to out.pdf.
OptimizeFile("in.pdf", "out.pdf", conf)

// Create an optimized version of inFile.
// If you want to modify the original file, pass an empty string for outFile.
// Use nil for a default configuration.
OptimizeFile("in.pdf", "", nil)

func PDFWatermark

func PDFWatermark(fileName, desc string, onTop, update bool) (*pdfcpu.Watermark, error)

PDFWatermark returns a PDF watermark configuration.

func PageCount

func PageCount(rs io.ReadSeeker, conf *pdfcpu.Configuration) (int, error)

PageCount returns rs's page count.

func PageCountFile

func PageCountFile(inFile string) (int, error)

PageCountFile returns inFile's page count.

func PageDims

func PageDims(rs io.ReadSeeker, conf *pdfcpu.Configuration) ([]pdfcpu.Dim, error)

PageDims returns a sorted slice of mediaBox dimensions for rs.

func PageDimsFile

func PageDimsFile(inFile string) ([]pdfcpu.Dim, error)

PageDimsFile returns a sorted slice of mediaBox dimensions for inFile.

func PagesForPageCollection

func PagesForPageCollection(pageCount int, pageSelection []string) ([]int, error)

PagesForPageCollection returns a slice of page numbers for a page collection. Any page number in any order any number of times allowed.

func PagesForPageRange

func PagesForPageRange(from, thru int) []int

PagesForPageRange returns a slice of page numbers for a page range.

func PagesForPageSelection

func PagesForPageSelection(pageCount int, pageSelection []string, ensureAllforNone bool) (pdf.IntSet, error)

PagesForPageSelection ensures a set of page numbers for an ascending page sequence where each page number may appear only once.

func ParsePageSelection

func ParsePageSelection(s string) ([]string, error)

ParsePageSelection ensures a correct page selection expression.

func ReadContext

func ReadContext(rs io.ReadSeeker, conf *pdfcpu.Configuration) (*pdfcpu.Context, error)

ReadContext uses an io.ReadSeeker to build an internal structure holding its cross reference table aka the Context.

func ReadContextFile

func ReadContextFile(inFile string) (*pdfcpu.Context, error)

ReadContextFile returns inFile's validated context.

func RemoveAttachments

func RemoveAttachments(rs io.ReadSeeker, w io.Writer, fileNames []string, conf *pdfcpu.Configuration) error

RemoveAttachments deletes embedded files from a PDF context read from rs and writes the result to w.

func RemoveAttachmentsFile

func RemoveAttachmentsFile(inFile, outFile string, files []string, conf *pdfcpu.Configuration) (err error)

RemoveAttachmentsFile deletes embedded files from a PDF context read from inFile and writes the result to outFile.

Example

Code:

// Remove 1 attachment from in.pdf.
RemoveAttachmentsFile("in.pdf", "", []string{"img.jpg"}, nil)

// Remove all attachments from in.pdf
RemoveAttachmentsFile("in.pdf", "", nil, nil)

func RemoveKeywords

func RemoveKeywords(rs io.ReadSeeker, w io.Writer, keywords []string, conf *pdf.Configuration) error

RemoveKeywords deletes embedded files from a PDF context read from rs and writes the result to w.

func RemoveKeywordsFile

func RemoveKeywordsFile(inFile, outFile string, keywords []string, conf *pdf.Configuration) (err error)

RemoveKeywordsFile deletes embedded files from a PDF context read from inFile and writes the result to outFile.

func RemovePages

func RemovePages(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *pdfcpu.Configuration) error

RemovePages removes selected pages from rs and writes the result to w.

func RemovePagesFile

func RemovePagesFile(inFile, outFile string, selectedPages []string, conf *pdfcpu.Configuration) (err error)

RemovePagesFile removes selected inFile pages and writes the result to outFile..

Example

Code:

// Remove pages 2 and 8 of in.pdf.
RemovePagesFile("in.pdf", "", []string{"2", "8"}, nil)

// Remove first 2 pages of in.pdf.
RemovePagesFile("in.pdf", "", []string{"-2"}, nil)

// Remove all pages >= 10 of in.pdf.
RemovePagesFile("in.pdf", "", []string{"10-"}, nil)

func RemoveProperties

func RemoveProperties(rs io.ReadSeeker, w io.Writer, properties []string, conf *pdf.Configuration) error

RemoveProperties deletes embedded files from a PDF context read from rs and writes the result to w.

func RemovePropertiesFile

func RemovePropertiesFile(inFile, outFile string, properties []string, conf *pdf.Configuration) (err error)

RemovePropertiesFile deletes embedded files from a PDF context read from inFile and writes the result to outFile.

func RemoveWatermarks

func RemoveWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *pdfcpu.Configuration) error

RemoveWatermarks removes watermarks from all pages selected in rs and writes the result to w.

func RemoveWatermarksFile

func RemoveWatermarksFile(inFile, outFile string, selectedPages []string, conf *pdfcpu.Configuration) (err error)

RemoveWatermarksFile removes watermarks from all selected pages of inFile and writes the result to outFile.

Example

Code:

// Add a "Demo" stamp to all pages of in.pdf along the diagonal running from lower left to upper right.
onTop := true
wm, _ := pdfcpu.ParseTextWatermarkDetails("Demo", "", onTop)
AddWatermarksFile("in.pdf", "", nil, wm, nil)

// Update stamp for correction:
wm, _ = pdfcpu.ParseTextWatermarkDetails("Confidential", "", onTop)
wm.Update = true
AddWatermarksFile("in.pdf", "", nil, wm, nil)

// Add another watermark on top of page 1
wm, _ = pdfcpu.ParseTextWatermarkDetails("Footer stamp", "c:.5 1 1, pos:bc", onTop)
AddWatermarksFile("in.pdf", "", nil, wm, nil)

// Remove watermark on page 1
RemoveWatermarksFile("in.pdf", "", []string{"1"}, nil)

// Remove all watermarks
RemoveWatermarksFile("in.pdf", "", nil, nil)

func Rotate

func Rotate(rs io.ReadSeeker, w io.Writer, rotation int, selectedPages []string, conf *pdfcpu.Configuration) error

Rotate rotates selected pages of rs clockwise by rotation degrees and writes the result to w.

func RotateFile

func RotateFile(inFile, outFile string, rotation int, selectedPages []string, conf *pdfcpu.Configuration) (err error)

RotateFile rotates selected pages of inFile clockwise by rotation degrees and writes the result to outFile.

Example

Code:

// Rotate all pages of in.pdf, clockwise by 90 degrees and write the result to out.pdf.
RotateFile("in.pdf", "out.pdf", 90, nil, nil)

// Rotate the first page of in.pdf by 180 degrees.
// If you want to modify the original file, pass an empty string as outFile.
RotateFile("in.pdf", "", 180, []string{"1"}, nil)

func SetPermissions

func SetPermissions(rs io.ReadSeeker, w io.Writer, conf *pdfcpu.Configuration) error

SetPermissions sets user access permissions. inFile has to be encrypted. A configuration containing the current passwords is required.

func SetPermissionsFile

func SetPermissionsFile(inFile, outFile string, conf *pdfcpu.Configuration) (err error)

SetPermissionsFile sets inFile's user access permissions. inFile has to be encrypted. A configuration containing the current passwords is required.

Example

Code:

// Setting all permissions for the AES-256 encrypted in.pdf.
conf := pdfcpu.NewAESConfiguration("upw", "opw", 256)
conf.Permissions = pdfcpu.PermissionsAll
SetPermissionsFile("in.pdf", "", conf)

// Restricting permissions for the AES-256 encrypted in.pdf.
conf = pdfcpu.NewAESConfiguration("upw", "opw", 256)
conf.Permissions = pdfcpu.PermissionsNone
SetPermissionsFile("in.pdf", "", conf)

func Split

func Split(rs io.ReadSeeker, outDir, fileName string, span int, conf *pdfcpu.Configuration) error

Split generates a sequence of PDF files in outDir for the PDF stream read from rs obeying given split span. If span == 1 splitting results in single page PDFs. If span == 0 we split along given bookmarks (level 1 only). Default span: 1

func SplitFile

func SplitFile(inFile, outDir string, span int, conf *pdfcpu.Configuration) error

SplitFile generates a sequence of PDF files in outDir for inFile obeying given split span. If span == 1 splitting results in single page PDFs. If span == 0 we split along given bookmarks (level 1 only). Default span: 1

Example

Code:

// Create single page PDFs for in.pdf in outDir using the default configuration.
SplitFile("in.pdf", "outDir", 1, nil)

// Create dual page PDFs for in.pdf in outDir using the default configuration.
SplitFile("in.pdf", "outDir", 2, nil)

// Create a sequence of PDFs representing bookmark secions.
SplitFile("in.pdf", "outDir", 0, nil)

func TextWatermark

func TextWatermark(text, desc string, onTop, update bool) (*pdfcpu.Watermark, error)

TextWatermark returns a text watermark configuration.

func Trim

func Trim(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *pdfcpu.Configuration) error

Trim generates a trimmed version of rs containing all selected pages and writes the result to w.

func TrimFile

func TrimFile(inFile, outFile string, selectedPages []string, conf *pdfcpu.Configuration) (err error)

TrimFile generates a trimmed version of inFile containing all selected pages and writes the result to outFile.

Example

Code:

// Create a trimmed version of in.pdf containing odd page numbers only.
TrimFile("in.pdf", "outFile", []string{"odd"}, nil)

// Create a trimmed version of in.pdf containing the first two pages only.
// If you want to modify the original file, pass an empty string for outFile.
TrimFile("in.pdf", "", []string{"1-2"}, nil)

func UpdateImageWatermarksFile

func UpdateImageWatermarksFile(inFile, outFile string, selectedPages []string, onTop bool, fileName, desc string, conf *pdfcpu.Configuration) error

UpdateImageWatermarksFile adds image stamps/watermarks to all selected pages of inFile and writes the result to outFile.

func UpdatePDFWatermarksFile

func UpdatePDFWatermarksFile(inFile, outFile string, selectedPages []string, onTop bool, fileName, desc string, conf *pdfcpu.Configuration) error

UpdatePDFWatermarksFile adds PDF stamps/watermarks to all selected pages of inFile and writes the result to outFile.

func UpdateTextWatermarksFile

func UpdateTextWatermarksFile(inFile, outFile string, selectedPages []string, onTop bool, text, desc string, conf *pdfcpu.Configuration) error

UpdateTextWatermarksFile adds text stamps/watermarks to all selected pages of inFile and writes the result to outFile.

func Validate

func Validate(rs io.ReadSeeker, conf *pdfcpu.Configuration) error

Validate validates a PDF stream read from rs.

func ValidateContext

func ValidateContext(ctx *pdfcpu.Context) error

ValidateContext validates a PDF context.

func ValidateFile

func ValidateFile(inFile string, conf *pdfcpu.Configuration) error

ValidateFile validates inFile.

Example

Code:

// Use the default configuration to validate in.pdf.
ValidateFile("in.pdf", nil)

func WatermarkContext

func WatermarkContext(ctx *pdfcpu.Context, selectedPages pdfcpu.IntSet, wm *pdfcpu.Watermark) error

WatermarkContext applies wm for selected pages to ctx.

func WriteContext

func WriteContext(ctx *pdfcpu.Context, w io.Writer) error

WriteContext writes a PDF context to w.

func WriteContextFile

func WriteContextFile(ctx *pdfcpu.Context, outFile string) error

WriteContextFile writes a PDF context to outFile.

type ReadSeekerCloser

type ReadSeekerCloser interface {
	io.ReadSeeker
	io.Closer
}

ReadSeekerCloser combines io.ReadSeeker and io.Closer

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier