Document
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() → int | PageCount 返回文档中的页数。 |
Pages() → []*Page | Pages 返回文档中所有页面的实时视图。 |
Page(n: int) → (*Page, error) | Page 返回给定 1 起始编号的页面的实时视图。 |
Append(others: ...*Document) | Append 将其他文档的所有页面添加到此文档中,并合并它们的对象。 |
RemoveUnusedObjects() → int | RemoveUnusedObjects 删除文档中未从任何页面可达的对象。 |
SetPassword(userPassword: string) | SetPassword 将文档配置为在保存时加密。 |
SetPermissions(p: Permissions) | SetPermissions 配置查看器在加密文档上允许的操作(打印、复制、修改等)。 |
Permissions() → (Permissions, bool) | Permissions 返回当前在该文档上配置的查看器权限设置,以及一个布尔值,指示该文档是否已配置加密。 |
RemoveEncryption() | RemoveEncryption 清除任何先前配置的加密(密码和权限),因此下一次保存会生成纯文本 PDF。 |
ChangePassword(newUserPassword: string) → error | ChangePassword 在下一次保存时使用新密码重新加密文档,保持当前的加密算法和权限。 |
SetEncryption(opts: EncryptionOptions) | SetEncryption 从一个 EncryptionOptions 结构体一次性配置所有与加密相关的设置。 |
WriteTo(w: io.Writer) → (int64, error) | WriteTo 将文档写入 w。 |
Save(outputPath: string) → error | Save 将文档写入 outputPath。 |
AddBlankPage(width: float64) → error | AddBlankPage 在文档末尾追加一个空白页。 |
AddBlankPageFromFormat(format: PageFormat) → error | AddBlankPageFromFormat 使用预定义的页面格式追加一个空白页。 |
InsertBlankPage(position: int, width: float64) → error | InsertBlankPage 在给定的基于1的索引位置插入一个空白页。 |
InsertBlankPageFromFormat(position: int, format: PageFormat) → error | InsertBlankPageFromFormat 在给定位置插入一个空白页,使用预定义的页面格式。 |
Rotate(angle: RotationAngle, pageNums: ...int) → error | Rotate 将选定的页面顺时针旋转指定角度(Rotate90、Rotate180 或 Rotate270)。 |
SetRotation(angle: RotationAngle, pageNums: ...int) → error | SetRotation 将选定的页面设置为精确角度(Rotate0、Rotate90、Rotate180 或 Rotate270),并替换任何已有的旋转。 |
Reorder(order: []int) → error | Reorder 根据 order 重新排列页面,order 是基于 1 的页码切片。 |
DeletePage(n: int) → error | DeletePage 删除给定的以1为基数的页码对应的页面。 |
DeletePages(pageNums: ...int) → error | DeletePages 删除给定的以1为基数的页码对应的多个页面。 |
Split() → ([]*Document, error) | Split 将文档的每一页返回为单独的 *Document。 |
Extract(ranges: ...PageRange) → (*Document, error) | Extract 返回一个仅包含指定范围内页面的新 Document。 |
EmbeddedFiles() → *EmbeddedFiles | EmbeddedFiles 返回文档级嵌入文件集合。 |
Flatten() → error | Flatten 将文档的交互式表单字段烘焙为静态页面内容,并移除 AcroForm,因此结果渲染相同,但不再可填写。 |
NewFlow(opts: FlowOptions) → *Flow | NewFlow 创建一个流,该流渲染到文档 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() → *Form | Form 返回文档的 AcroForm。 |
CreateForm(width: float64) → *XForm | CreateForm 创建一个给定尺寸(点)的空 Form XObject。 |
ImportForm(form: *XForm) → (*XForm, error) | ImportForm 将 Form XObject(以及其完整的资源图:字体、图像、嵌套表单,…)从另一个文档复制到此文档中,返回一个可使用 Page.AddForm 放置的新 XForm。 |
ConvertToGrayscale() → error | ConvertToGrayscale 在原位将文档转换为灰度:内容流中设置的每种设备颜色(文本、矢量图形)、每个光栅图像、阴影以及批注颜色都映射为其亮度灰色。 |
SaveHTML(outputPath: string, opts: ...HTMLSaveOptions) → error | SaveHTML 将文档写入 HTML 文件——默认情况下为自包含;使用 ResourceDir/ResourceWriter 时,较大的部分会变为外部文件;使用 SplitPages 时,每页会生成各自的 |
WriteHTML(w: io.Writer, opts: ...HTMLSaveOptions) → error | WriteHTML 将文档写入单个自包含的 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() → *JavaScriptCollection | JavaScript 返回文档级别的 JavaScript 集合。 |
SaveLinearized(outputPath: string) → error | SaveLinearized 将文档写入 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() → *NamedDestinations | NamedDestinations 返回文档的 named-destination 集合。 |
OpenAction() → Action | OpenAction 返回查看器在打开文档时运行的动作(/Catalog/OpenAction,依据 ISO 32000-1 第12.3.2节 / 第12.6.1节),如果未设置则返回 nil。 |
SetOpenAction(act: Action) | SetOpenAction 设置文档打开时运行的动作。 |
RemoveOpenAction() | RemoveOpenAction 清除任何 /Catalog/OpenAction。 |
AddLayer(name: string) → *Layer | AddLayer 创建一个名为 name 的新图层(OCG),并在文档的可选内容属性中注册它。 |
Layers() → []*Layer | Layers 返回文档的图层(OCG),按 /OCProperties/OCGs 顺序。 |
Outlines() → *OutlineItemCollection | Outlines 返回文档的根大纲集合。 |
SetPageLabels(ranges: []PageLabelRange) → error | SetPageLabels 安装文档的 /PageLabels 编号树,以便 PDF 查看器在导航窗格和页码指示中显示诸如 “i, ii, 1, 2, …” 的标签。 |
ClearPageLabels() | ClearPageLabels 删除文档的 /PageLabels 条目。 |
Paragraphs() → ([]PageMarkup, error) | Paragraphs 返回每页的结构化文本。 |
ConvertToPDFA(format: PDFAFormat) → (*PDFAValidationReport, error) | ConvertToPDFA 将文档调整为符合 PDF/A “b” 级合规性配置文件,并返回描述剩余违规情况的验证报告。 |
ValidateRedactions() → error | ValidateRedactions 对每个至少包含一个 RedactAnnotation 的页面执行预检查的可解析性试运行。 |
ApplyRedactions() → error | ApplyRedactions 在每个 /Redact 注释的 /QuadPoints(如果 /QuadPoints 为空则为 /Rect)内部破坏性地移除内容(文本字形、图像 XObject、路径)。 |
RenderImage(pageNum: int, opts: RenderOptions) → (image.Image, error) | RenderImage 将基于1的页码渲染为图像。 |
RenderTIFF(w: io.Writer, opts: RenderOptions, pageNums: ...int) → error | RenderTIFF 将文档渲染为单个多页 TIFF,写入 w。 |
ReplaceText(old: string, opts: ...ReplaceOptions) → (int, error) | ReplaceText 在所有页面中将所有 old 替换为 replacement,并返回替换的总次数。 |
Sign(opts: SignOptions) → error | Sign 配置在下次 Save/WriteTo 上应用的数字签名。 |
VerifySignatures() → ([]SignatureVerification, error) | VerifySignatures 验证文档中的每个数字签名,并按文档顺序为每个签名字段返回一个结果。 |
AddStamp(s: Stamp, pageNums: ...int) → error | AddStamp 在给定的基于 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) → error | AddSVGWatermark 将 SVG 水印应用于所有页面(当 pageNums 为空时)或指定的基于 1 的页码。 |
AddSVGWatermarkFromStream(r: io.Reader, pageNums: ...int) → error | AddSVGWatermarkFromStream 是 AddSVGWatermark 的 io.Reader 变体。 |
SetSVGFontResolver(fn: SVGFontResolver) | SetSVGFontResolver 安装一个自定义解析器。 |
AddSVGObjectWatermark(svg: *SVG, pageNums: ...int) → error | AddSVGObjectWatermark 使用预解析的 *SVG 作为水印内容。 |
TaggedContent() → *TaggedContent | TaggedContent 返回文档的标记内容外观,在第一次调用时创建结构树以及 /MarkInfo、/ViewerPreferences 和 /StructTreeRoot 目录条目。 |
ExtractText(opts: ...TextExtractOptions) → ([]string, error) | ExtractText 返回每页的文本内容(每页一个条目,0 索引)。 |
AddTextWatermark(text: string, style: TextStyle, pageNums: ...int) → error | AddTextWatermark 为文档的选定页面添加文本水印。 |
ExtractTextWithLayout() → ([][]TextLine, error) | ExtractTextWithLayout 返回每页的结构化文本行。 |
SearchText(query: string, opts: ...SearchOptions) → ([]TextMatch, error) | SearchText 在文档的所有页面中查找 query 的每一次出现,按阅读顺序逐页返回匹配项。 |
GenerateTOC(opts: ...TOCOptions) → (int, error) | GenerateTOC 从文档的大纲(书签)树构建目录,并将其作为新页面插入文档的前部。 |
ValidatePDFA(format: PDFAFormat) → *PDFAValidationReport | ValidatePDFA 根据 PDF/A “b” 级合规性配置文件检查文档,并返回违规报告。 |
ValidatePDFUA() → *PDFUAValidationReport | ValidatePDFUA 根据 PDF/UA-1(ISO 14289-1,通用可访问性)的子集检查文档,并返回违规报告。 |
CreateTilingPattern(width: float64) → *TilingPattern | CreateTilingPattern 创建一个空的平铺图案,其单元格大小为 width×height 点。 |
XMP() → (XMPMetadata, error) | XMP 返回从 /Catalog/Metadata 流中解析的文档 XMP 元数据。 |
XMPRaw() → ([]byte, error) | XMPRaw 返回来自 /Catalog/Metadata 的 XMP 包的原始字节,如果文档没有 XMP 流则返回 nil。 |
SetXMP(meta: XMPMetadata) → error | SetXMP 将 meta 序列化为标准 XMP 包,并将其存储为 /Catalog/Metadata 流(未压缩,/Type /Metadata /Subtype /XML,符合 ISO 32000-1 §14.3.2)。 |
SetXMPRaw(data: []byte) → error | SetXMPRaw 将数据原样存储为 /Catalog/Metadata 流——为生成自定义 XMP 包的调用者提供的后门。 |
ClearXMP() | ClearXMP 删除 /Catalog/Metadata 条目。 |
SyncInfoToXMP() → error | SyncInfoToXMP 从文档当前的 /Info 字典构建 XMP 包并安装它,从而使两个元数据存储保持一致(ISO 32000-1 §14.3.2 推荐在两者均存在时保持一致性)。 |