Document

Overview

Document is a type in Aspose.PDF FOSS for Go.

Document is a PDF document.

This type provides 71 methods for working with Document objects in Go programs. Available methods include: AddBlankPage, AddBlankPageFromFormat, AddSVGObjectWatermark, AddSVGWatermark, AddSVGWatermarkFromStream, AddStamp, AddTextWatermark, Append, ApplyRedactions, Booklet, ChangePassword, ClearInfo, and 59 additional methods. All public members are accessible to any Go application after installing the Aspose.PDF FOSS for Go package.

Methods

SignatureDescription
PageCount()intPageCount returns the number of pages in the document.
Pages()[]*PagePages returns a live view of all pages in the document.
Page(n: int)(*Page, error)Page returns a live view of the page at the given 1-based number.
Append(others: ...*Document)Append adds all pages from others to this document, merging their objects.
RemoveUnusedObjects()intRemoveUnusedObjects removes objects from the document that are not reachable from any page.
SetPassword(userPassword: string)SetPassword configures the document to be encrypted when saved.
SetPermissions(p: Permissions)SetPermissions configures what operations a viewer allows on the encrypted document (printing, copying, modifying, etc.).
Permissions()(Permissions, bool)Permissions returns the viewer-permission settings currently configured on this document, plus a boolean indicating whether the document is configured for encryption at all.
RemoveEncryption()RemoveEncryption clears any previously configured encryption (passwords and permissions) so the next Save produces a plaintext PDF.
ChangePassword(newUserPassword: string)errorChangePassword re-encrypts the document with new passwords on the next Save, keeping the current encryption algorithm and permissions.
SetEncryption(opts: EncryptionOptions)SetEncryption configures every encryption-related setting at once from an EncryptionOptions struct.
WriteTo(w: io.Writer)(int64, error)WriteTo writes the document to w.
Save(outputPath: string)errorSave writes the document to outputPath.
AddBlankPage(width: float64)errorAddBlankPage appends a blank page to the end of the document.
AddBlankPageFromFormat(format: PageFormat)errorAddBlankPageFromFormat appends a blank page using a predefined page format.
InsertBlankPage(position: int, width: float64)errorInsertBlankPage inserts a blank page at the given 1-based position.
InsertBlankPageFromFormat(position: int, format: PageFormat)errorInsertBlankPageFromFormat inserts a blank page at the given position using a predefined page format.
Rotate(angle: RotationAngle, pageNums: ...int)errorRotate rotates selected pages clockwise by angle (Rotate90, Rotate180, or Rotate270).
SetRotation(angle: RotationAngle, pageNums: ...int)errorSetRotation sets selected pages to exactly angle (Rotate0, Rotate90, Rotate180, or Rotate270), replacing any existing rotation.
Reorder(order: []int)errorReorder rearranges pages according to order, a slice of 1-based page numbers.
DeletePage(n: int)errorDeletePage removes the page at the given 1-based number.
DeletePages(pageNums: ...int)errorDeletePages removes the pages at the given 1-based page numbers.
Split()([]*Document, error)Split returns each page of the document as a separate *Document.
Extract(ranges: ...PageRange)(*Document, error)Extract returns a new Document containing only the pages in the specified ranges.
Flatten()errorFlatten bakes the document’s interactive form fields into static page content and removes the AcroForm, so the result renders identically but is no longer fillable.
LoadFont(path: string)(Font, error)LoadFont reads a TTF file, parses it, embeds it into the document, and returns a Font that can be used in TextStyle.Font.
LoadFontFromStream(r: io.Reader)(Font, error)LoadFontFromStream is like LoadFont but reads from an io.Reader.
LoadFontByName(family: string, bold: bool)(Font, error)LoadFontByName resolves a font by family name (with an optional bold / italic style) through the FontRepository — the folders and files registered with AddFontFolder / AddFontFile first, then the operating system’s font directories — embeds the matched face into the document, and returns a Font usable in TextStyle.Font.
SubsetFonts()(int, error)SubsetFonts shrinks every embedded TTF (loaded via LoadFont) to only the glyphs actually drawn, replacing each /FontFile2 with a rebuilt subset program and switching the CIDFont’s /CIDToGIDMap from /Identity to a stream that maps the original glyph IDs (still used verbatim as CIDs in content streams) to the compact subset glyph IDs.
Form()*FormForm returns the document’s AcroForm.
ExtractImages()([][]Image, error)ExtractImages returns images from all pages (one slice per page).
ImageInfos()([][]ImageInfo, error)ImageInfos returns image metadata for all pages (one slice per page) without decoding pixel data.
OptimizeImages(opts: OptimizeImageOptions)(int, error)OptimizeImages optimizes all images in the document to reduce file size.
NUp(opts: NUpOptions)(*Document, error)NUp returns a new Document that imposes this document’s pages onto larger sheets in a Rows×Cols grid (e.g.
Booklet(opts: BookletOptions)(*Document, error)Booklet returns a new Document that imposes this document’s pages two-up, reordered for saddle-stitch binding: print double-sided, fold the stack in half, and the pages read in order.
JavaScript()*JavaScriptCollectionJavaScript returns the document-level JavaScript collection.
Info()(DocumentInfo, error)Info returns the Info-dictionary metadata from this document.
SetInfo(info: DocumentInfo)SetInfo replaces the document’s Info dictionary with the given metadata.
ClearInfo()ClearInfo removes the Info dictionary entirely.
NamedDestinations()*NamedDestinationsNamedDestinations returns the document’s named-destination collection.
OpenAction()ActionOpenAction returns the action the viewer runs when the document is opened (/Catalog/OpenAction per ISO 32000-1 §12.3.2 / §12.6.1), or nil when none is set.
SetOpenAction(act: Action)SetOpenAction sets the action run when the document opens.
RemoveOpenAction()RemoveOpenAction clears any /Catalog/OpenAction.
Outlines()*OutlineItemCollectionOutlines returns the document’s root outline collection.
SetPageLabels(ranges: []PageLabelRange)errorSetPageLabels installs the document’s /PageLabels number tree so PDF viewers display labels like “i, ii, 1, 2, …” in the navigation pane and page indicators.
ClearPageLabels()ClearPageLabels removes the document’s /PageLabels entry.
ValidateRedactions()errorValidateRedactions performs a pre-flight dry-run parseability check on every page that has at least one RedactAnnotation.
ApplyRedactions()errorApplyRedactions destructively removes content (text glyphs, image XObjects, paths) inside every /Redact annotation’s /QuadPoints (or /Rect if /QuadPoints is empty).
RenderImage(pageNum: int, opts: RenderOptions)(image.Image, error)RenderImage renders the 1-based page number to an image.
RenderTIFF(w: io.Writer, opts: RenderOptions, pageNums: ...int)errorRenderTIFF renders the document to a single multi-page TIFF written to w.
ReplaceText(old: string, opts: ...ReplaceOptions)(int, error)ReplaceText replaces every occurrence of old with replacement across all pages, returning the total number of replacements.
Sign(opts: SignOptions)errorSign configures a digital signature applied on the next Save/WriteTo.
VerifySignatures()([]SignatureVerification, error)VerifySignatures verifies every digital signature in the document and returns one result per signature field, in document order.
AddStamp(s: Stamp, pageNums: ...int)errorAddStamp draws a stamp onto the given 1-based pages (all pages when none are given) — convenient for watermarks, headers, footers, and page numbers.
LoadSVG(path: string)(*SVG, error)LoadSVG reads and parses an SVG file once, returning a *SVG that can be passed to Page.AddSVGObject or Document.AddSVGObjectWatermark multiple times without re-parsing.
LoadSVGFromStream(r: io.Reader)(*SVG, error)LoadSVGFromStream is the io.Reader variant of LoadSVG.
AddSVGWatermark(path: string, pageNums: ...int)errorAddSVGWatermark applies an SVG watermark to all pages (when pageNums is empty) or to the specified 1-based page numbers.
AddSVGWatermarkFromStream(r: io.Reader, pageNums: ...int)errorAddSVGWatermarkFromStream is the io.Reader variant of AddSVGWatermark.
SetSVGFontResolver(fn: SVGFontResolver)SetSVGFontResolver installs a custom resolver.
AddSVGObjectWatermark(svg: *SVG, pageNums: ...int)errorAddSVGObjectWatermark uses a pre-parsed *SVG for the watermark content.
ExtractText()([]string, error)ExtractText returns the text content of each page.
AddTextWatermark(text: string, style: TextStyle, pageNums: ...int)errorAddTextWatermark adds a text watermark to selected pages of the document.
ExtractTextWithLayout()([][]TextLine, error)ExtractTextWithLayout returns structured text lines for each page.
SearchText(query: string, opts: ...SearchOptions)([]TextMatch, error)SearchText finds every occurrence of query across all pages of the document, returning matches page by page in reading order.
GenerateTOC(opts: ...TOCOptions)(int, error)GenerateTOC builds a table of contents from the document’s outline (bookmark) tree and inserts it as new page(s) at the front of the document.
XMP()(XMPMetadata, error)XMP returns the document’s XMP metadata parsed from the /Catalog/Metadata stream.
XMPRaw()([]byte, error)XMPRaw returns the raw bytes of the XMP packet from /Catalog/Metadata, or nil when the document has no XMP stream.
SetXMP(meta: XMPMetadata)errorSetXMP serialises meta into a standard XMP packet and stores it as the /Catalog/Metadata stream (uncompressed, /Type /Metadata /Subtype /XML per ISO 32000-1 §14.3.2).
SetXMPRaw(data: []byte)errorSetXMPRaw stores data verbatim as the /Catalog/Metadata stream — an escape hatch for callers that produce their own XMP packet.
ClearXMP()ClearXMP removes the /Catalog/Metadata entry.
SyncInfoToXMP()errorSyncInfoToXMP builds an XMP packet from the document’s current /Info dictionary and installs it, so the two metadata stores agree (ISO 32000-1 §14.3.2 recommends consistency when both are present).

See Also