Document

概述

Document 是 Aspose.PDF 为 Go 提供的 FOSS 中的一种类型。

Document 是一个 PDF 文档。

此类型为在 Go 程序中处理 Document 对象提供了 88 种方法。可用的方法包括:AddBlankPage、AddBlankPageFromFormat、AddLayer、AddSVGObjectWatermark、AddSVGWatermark、AddSVGWatermarkFromStream、AddStamp、AddTextWatermark、Append、ApplyRedactions、Booklet、ChangePassword,以及另外 76 种方法。安装 Aspose.PDF 为 Go 提供的 FOSS 包后,所有公共成员均可被任何 Go 应用访问。

方法

签名描述
PageCount() → intPageCount 返回文档中的页数。
Pages() → []*PagePages 返回文档中所有页面的实时视图。
Page(n: int) → (*Page, error)Page 返回给定 1 起始编号的页面的实时视图。
Append(others: ...*Document)Append 将其他文档的所有页面添加到此文档中,并合并它们的对象。
RemoveUnusedObjects() → intRemoveUnusedObjects 删除文档中未从任何页面可达的对象。
SetPassword(userPassword: string)SetPassword 将文档配置为在保存时加密。
SetPermissions(p: Permissions)SetPermissions 配置查看器在加密文档上允许的操作(打印、复制、修改等)。
Permissions() → (Permissions, bool)Permissions 返回当前在该文档上配置的查看器权限设置,以及一个布尔值,指示该文档是否已配置加密。
RemoveEncryption()RemoveEncryption 清除任何先前配置的加密(密码和权限),因此下一次保存会生成纯文本 PDF。
ChangePassword(newUserPassword: string) → errorChangePassword 在下一次保存时使用新密码重新加密文档,保持当前的加密算法和权限。
SetEncryption(opts: EncryptionOptions)SetEncryption 从一个 EncryptionOptions 结构体一次性配置所有与加密相关的设置。
WriteTo(w: io.Writer) → (int64, error)WriteTo 将文档写入 w。
Save(outputPath: string) → errorSave 将文档写入 outputPath。
AddBlankPage(width: float64) → errorAddBlankPage 在文档末尾追加一个空白页。
AddBlankPageFromFormat(format: PageFormat) → errorAddBlankPageFromFormat 使用预定义的页面格式追加一个空白页。
InsertBlankPage(position: int, width: float64) → errorInsertBlankPage 在给定的基于1的索引位置插入一个空白页。
InsertBlankPageFromFormat(position: int, format: PageFormat) → errorInsertBlankPageFromFormat 在给定位置插入一个空白页,使用预定义的页面格式。
Rotate(angle: RotationAngle, pageNums: ...int) → errorRotate 将选定的页面顺时针旋转指定角度(Rotate90、Rotate180 或 Rotate270)。
SetRotation(angle: RotationAngle, pageNums: ...int) → errorSetRotation 将选定的页面设置为精确角度(Rotate0、Rotate90、Rotate180 或 Rotate270),并替换任何已有的旋转。
Reorder(order: []int) → errorReorder 根据 order 重新排列页面,order 是基于 1 的页码切片。
DeletePage(n: int) → errorDeletePage 删除给定的以1为基数的页码对应的页面。
DeletePages(pageNums: ...int) → errorDeletePages 删除给定的以1为基数的页码对应的多个页面。
Split() → ([]*Document, error)Split 将文档的每一页返回为单独的 *Document。
Extract(ranges: ...PageRange) → (*Document, error)Extract 返回一个仅包含指定范围内页面的新 Document。
EmbeddedFiles() → *EmbeddedFilesEmbeddedFiles 返回文档级嵌入文件集合。
Flatten() → errorFlatten 将文档的交互式表单字段烘焙为静态页面内容,并移除 AcroForm,因此结果渲染相同,但不再可填写。
NewFlow(opts: FlowOptions) → *FlowNewFlow 创建一个流,该流渲染到文档 d 中。
LoadFont(path: string) → (Font, error)LoadFont 读取 TTF 文件,解析它,将其嵌入文档,并返回一个可以在 TextStyle.Font 中使用的 Font。
LoadFontFromStream(r: io.Reader) → (Font, error)LoadFontFromStream 类似于 LoadFont,但从 io.Reader 读取。
LoadFontByName(family: string, bold: bool) → (Font, error)LoadFontByName 通过 FontRepository 按字体族名称(可选粗体/斜体样式)解析字体——首先在 AddFontFolder / AddFontFile 注册的文件夹和文件中查找,然后在操作系统的字体目录中查找——将匹配的字体嵌入文档,并返回可在 TextStyle.Font 中使用的 Font。
SubsetFonts() → (int, error)SubsetFonts 将每个嵌入的 TTF(通过 LoadFont 加载)缩小至仅实际绘制的字形,使用重新构建的子集程序替换每个 /FontFile2,并将 CIDFont 的 /CIDToGIDMap 从 /Identity 切换为一个流,该流将原始字形 ID(在内容流中仍作为 CID 直接使用)映射到紧凑的子集字形 ID。
Form() → *FormForm 返回文档的 AcroForm。
CreateForm(width: float64) → *XFormCreateForm 创建一个给定尺寸(点)的空 Form XObject。
ImportForm(form: *XForm) → (*XForm, error)ImportForm 将 Form XObject(以及其完整的资源图:字体、图像、嵌套表单,…)从另一个文档复制到此文档中,返回一个可使用 Page.AddForm 放置的新 XForm。
ConvertToGrayscale() → errorConvertToGrayscale 在原位将文档转换为灰度:内容流中设置的每种设备颜色(文本、矢量图形)、每个光栅图像、阴影以及批注颜色都映射为其亮度灰色。
SaveHTML(outputPath: string, opts: ...HTMLSaveOptions) → errorSaveHTML 将文档写入 HTML 文件——默认情况下为自包含;使用 ResourceDir/ResourceWriter 时,较大的部分会变为外部文件;使用 SplitPages 时,每页会生成各自的 _p.html。
WriteHTML(w: io.Writer, opts: ...HTMLSaveOptions) → errorWriteHTML 将文档写入单个自包含的 HTML 文件到 w:每页包含一个位于文本层下方的光栅背景(在 HTMLModeFaithful 中为透明,在 HTMLModeText 中可见)以及链接批注覆盖层。
ExtractImages() → ([][]Image, error)ExtractImages 返回所有页面的图像(每页一个切片)。
ImageInfos() → ([][]ImageInfo, error)ImageInfos 返回所有页面的图像元数据(每页一个切片),且不解码像素数据。
OptimizeImages(opts: OptimizeImageOptions) → (int, error)OptimizeImages 优化文档中的所有图像以减小文件大小。
NUp(opts: NUpOptions) → (*Document, error)NUp 返回一个新的 Document,该文档将此文档的页面以 Rows×Cols 网格排列到更大的纸张上(例如.
Booklet(opts: BookletOptions) → (*Document, error)Booklet 返回一个新的 Document,该 Document 将此文档的页面以两页并排的方式排列,并重新排序以适用于骑马订装:双面打印,将纸张堆叠对折,页面按顺序阅读。
JavaScript() → *JavaScriptCollectionJavaScript 返回文档级别的 JavaScript 集合。
SaveLinearized(outputPath: string) → errorSaveLinearized 将文档写入 outputPath,生成线性化(“fast web view”)PDF(ISO 32000-1 Annex F):第一页的对象和提示表位于文件前部,使查看器能够在整个文件下载完毕之前渲染第 1 页。
WriteToLinearized(w: io.Writer) → (int64, error)WriteToLinearized 将文档以线性化 PDF 的形式写入 w(实现了 io.WriterTo 风格的合约)。
Info() → (DocumentInfo, error)Info 返回此文档的 Info-dictionary 元数据。
SetInfo(info: DocumentInfo)SetInfo 用给定的元数据替换文档的 Info dictionary。
ClearInfo()ClearInfo 完全删除 Info dictionary。
NamedDestinations() → *NamedDestinationsNamedDestinations 返回文档的 named-destination 集合。
OpenAction() → ActionOpenAction 返回查看器在打开文档时运行的动作(/Catalog/OpenAction,依据 ISO 32000-1 第12.3.2节 / 第12.6.1节),如果未设置则返回 nil。
SetOpenAction(act: Action)SetOpenAction 设置文档打开时运行的动作。
RemoveOpenAction()RemoveOpenAction 清除任何 /Catalog/OpenAction。
AddLayer(name: string) → *LayerAddLayer 创建一个名为 name 的新图层(OCG),并在文档的可选内容属性中注册它。
Layers() → []*LayerLayers 返回文档的图层(OCG),按 /OCProperties/OCGs 顺序。
Outlines() → *OutlineItemCollectionOutlines 返回文档的根大纲集合。
SetPageLabels(ranges: []PageLabelRange) → errorSetPageLabels 安装文档的 /PageLabels 编号树,以便 PDF 查看器在导航窗格和页码指示中显示诸如 “i, ii, 1, 2, …” 的标签。
ClearPageLabels()ClearPageLabels 删除文档的 /PageLabels 条目。
Paragraphs() → ([]PageMarkup, error)Paragraphs 返回每页的结构化文本。
ConvertToPDFA(format: PDFAFormat) → (*PDFAValidationReport, error)ConvertToPDFA 将文档调整为符合 PDF/A “b” 级合规性配置文件,并返回描述剩余违规情况的验证报告。
ValidateRedactions() → errorValidateRedactions 对每个至少包含一个 RedactAnnotation 的页面执行预检查的可解析性试运行。
ApplyRedactions() → errorApplyRedactions 在每个 /Redact 注释的 /QuadPoints(如果 /QuadPoints 为空则为 /Rect)内部破坏性地移除内容(文本字形、图像 XObject、路径)。
RenderImage(pageNum: int, opts: RenderOptions) → (image.Image, error)RenderImage 将基于1的页码渲染为图像。
RenderTIFF(w: io.Writer, opts: RenderOptions, pageNums: ...int) → errorRenderTIFF 将文档渲染为单个多页 TIFF,写入 w。
ReplaceText(old: string, opts: ...ReplaceOptions) → (int, error)ReplaceText 在所有页面中将所有 old 替换为 replacement,并返回替换的总次数。
Sign(opts: SignOptions) → errorSign 配置在下次 Save/WriteTo 上应用的数字签名。
VerifySignatures() → ([]SignatureVerification, error)VerifySignatures 验证文档中的每个数字签名,并按文档顺序为每个签名字段返回一个结果。
AddStamp(s: Stamp, pageNums: ...int) → errorAddStamp 在给定的基于 1 的页码上绘制印章(如果未指定则对所有页)——方便用于水印、页眉、页脚和页码。
LoadSVG(path: string) → (*SVG, error)LoadSVG 读取并解析一次 SVG 文件,返回一个 *SVG,可多次传递给 Page.AddSVGObject 或 Document.AddSVGObjectWatermark 而无需重新解析。
LoadSVGFromStream(r: io.Reader) → (*SVG, error)LoadSVGFromStream 是 LoadSVG 的 io.Reader 变体。
AddSVGWatermark(path: string, pageNums: ...int) → errorAddSVGWatermark 将 SVG 水印应用于所有页面(当 pageNums 为空时)或指定的基于 1 的页码。
AddSVGWatermarkFromStream(r: io.Reader, pageNums: ...int) → errorAddSVGWatermarkFromStream 是 AddSVGWatermark 的 io.Reader 变体。
SetSVGFontResolver(fn: SVGFontResolver)SetSVGFontResolver 安装一个自定义解析器。
AddSVGObjectWatermark(svg: *SVG, pageNums: ...int) → errorAddSVGObjectWatermark 使用预解析的 *SVG 作为水印内容。
TaggedContent() → *TaggedContentTaggedContent 返回文档的标记内容外观,在第一次调用时创建结构树以及 /MarkInfo、/ViewerPreferences 和 /StructTreeRoot 目录条目。
ExtractText(opts: ...TextExtractOptions) → ([]string, error)ExtractText 返回每页的文本内容(每页一个条目,0 索引)。
AddTextWatermark(text: string, style: TextStyle, pageNums: ...int) → errorAddTextWatermark 为文档的选定页面添加文本水印。
ExtractTextWithLayout() → ([][]TextLine, error)ExtractTextWithLayout 返回每页的结构化文本行。
SearchText(query: string, opts: ...SearchOptions) → ([]TextMatch, error)SearchText 在文档的所有页面中查找 query 的每一次出现,按阅读顺序逐页返回匹配项。
GenerateTOC(opts: ...TOCOptions) → (int, error)GenerateTOC 从文档的大纲(书签)树构建目录,并将其作为新页面插入文档的前部。
ValidatePDFA(format: PDFAFormat) → *PDFAValidationReportValidatePDFA 根据 PDF/A “b” 级合规性配置文件检查文档,并返回违规报告。
ValidatePDFUA() → *PDFUAValidationReportValidatePDFUA 根据 PDF/UA-1(ISO 14289-1,通用可访问性)的子集检查文档,并返回违规报告。
CreateTilingPattern(width: float64) → *TilingPatternCreateTilingPattern 创建一个空的平铺图案,其单元格大小为 width×height 点。
XMP() → (XMPMetadata, error)XMP 返回从 /Catalog/Metadata 流中解析的文档 XMP 元数据。
XMPRaw() → ([]byte, error)XMPRaw 返回来自 /Catalog/Metadata 的 XMP 包的原始字节,如果文档没有 XMP 流则返回 nil。
SetXMP(meta: XMPMetadata) → errorSetXMP 将 meta 序列化为标准 XMP 包,并将其存储为 /Catalog/Metadata 流(未压缩,/Type /Metadata /Subtype /XML,符合 ISO 32000-1 §14.3.2)。
SetXMPRaw(data: []byte) → errorSetXMPRaw 将数据原样存储为 /Catalog/Metadata 流——为生成自定义 XMP 包的调用者提供的后门。
ClearXMP()ClearXMP 删除 /Catalog/Metadata 条目。
SyncInfoToXMP() → errorSyncInfoToXMP 从文档当前的 /Info 字典构建 XMP 包并安装它,从而使两个元数据存储保持一致(ISO 32000-1 §14.3.2 推荐在两者均存在时保持一致性)。

另请参阅

 中文