使用枚举

使用枚举

Aspose.PDF FOSS for .NET 在其 API 中使用强类型枚举来配置文档行为、页面外观和转换格式。与其使用魔法字符串或整数,大多数配置界面——从 PDF 查看器打开文件的方式到以何种格式保存——都以枚举值表示。 Document 此页面介绍了在使用库时最常遇到的枚举类型。这是一次精选的介绍,而非完整目录;完整的枚举类型列表及每个成员值,请参见 API Reference.


页面显示与布局

PageMode 和 PageLayout 是 Document 上的属性,用于控制 PDF 查看器在首次打开文档时的呈现方式——是显示大纲、缩略图,还是特定的列布局。

using var doc = Document.Open("input.pdf");

// Show the outline (bookmarks) panel when the document opens
doc.PageMode = PageMode.UseOutlines;

// Display pages in two columns, first page on the left
doc.PageLayout = PageLayout.TwoColumnLeft;

doc.Save("output.pdf");

页面颜色模型

ColorType 描述页面的颜色模型——RGB、CMYK、灰度等。它在 Page 和 Color 中均可访问,便于您根据页面内容的实际渲染方式进行逻辑分支。

using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];

if (page.ColorType == ColorType.Grayscale)
{
    // Apply grayscale-specific handling, e.g. skip color-profile conversion
}

Alignment

多个类公开 HorizontalAlignment 和 VerticalAlignment 用于在页面上定位内容,而注释类则添加 TextAlignment 和 Justification 用于盒子内的文本特定对齐。例如,Table 直接公开两个对齐轴。

var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;

page.Paragraphs.Add(table);

FreeTextAnnotation (以及 Annotation 基类型) 额外公开 Justification 和 TextAlignment 用于注释内部的文本:

if (page.Annotations[1] is FreeTextAnnotation freeText)
{
    freeText.Justification = Justification.Center;
    freeText.Alignment = TextAlignment.Right;
}

加载和保存格式

LoadFormat 标识 LoadOptions 子类背后的源格式(例如,HtmlLoadOptions.LoadFormat 始终是 LoadFormat.HTML),而 SaveFormat 在调用 Document.Save 时选择输出格式。

var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);

doc.Save("output.html", SaveFormat.Html);

页面旋转

Rotation 描述页面的旋转角度,并通过 Page.Rotate 公开。

var page = doc.Pages[1];
page.Rotate = Rotation.on90;

技巧与最佳实践

  • 在两者都存在时,优先使用枚举重载而非基于字符串或整数的重载——它们可以在编译时捕获无效值。
  • 将 SaveFormat 与传递给 Document.Save 的文件扩展名匹配;不匹配会导致文件内容误导或扩展名不可用。
  • 使用与源格式对应的 LoadOptions 子类(例如针对 HTML 的 HtmlLoadOptions),而不是仅依赖格式自动检测。
  • 在定位表格或段落时同时设置 HorizontalAlignment 和 VerticalAlignment —— 将其中一个保留为默认值可能导致意外的布局。
  • 将 ColorType 视为描述性而非规定性:它报告页面的颜色内容当前是如何建模的,而不是可以切换以转换色彩空间的设置。

常见问题

问题原因修复
已保存的文件内容与其扩展名不匹配传递给 Document.Save 的 SaveFormat 值错误传入与目标文件扩展名匹配的 SaveFormat 值
加载的 HTML/XML/etc. 内容渲染不正确使用了通用的 LoadOptions 而不是特定格式的子类使用与源格式匹配的子类,例如 HtmlLoadOptions
页面上的表格或批注出现错位HorizontalAlignment/VerticalAlignment 保持默认值在将对象添加到 Paragraphs 之前,显式设置两个属性
PDF 打开时出现意外的查看器行为(没有大纲面板,列布局错误)Document.PageMode/Document.PageLayout 从未设置在调用 Document.Save 之前设置两个属性

FAQ

PageMode 与 PageLayout 有何区别?

PageMode 控制查看器打开时的 UI 状态(例如,大纲或缩略图面板是否可见),而 PageLayout 控制页面的排列方式(单页、单列、双列等)。

我如何知道该使用哪一个 SaveFormat 值?

选择与您想要的输出文件类型相匹配的 SaveFormat 值——例如,针对 HTML 输出使用 SaveFormat.Html,或使用 SaveFormat.Pdf 重新保存为 PDF。

我可以在同一个对象上同时设置 HorizontalAlignment 和 VerticalAlignment 吗?

可以。诸如 Table 的类会独立公开这两个属性,因此您可以将它们组合起来在任意轴上定位内容。

ColorType 能让我转换页面的色彩空间吗?

不。ColorType 报告当前与页面或颜色值关联的颜色模型;它并不执行转换。

我可以在哪里找到所有枚举及其每个值?

本页涵盖了最常用的枚举。有关完整集合(包括每个成员值),请参阅 API Reference.


API Reference 摘要

Enum描述
PageModePDF 查看器打开文档时的显示方式(大纲、缩略图、全屏等)
PageLayout文档显示时使用的页面布局(单页、列等)
ColorType页面颜色模型或颜色值(RGB、CMYK、灰度等)
HorizontalAlignment段落、表格或批注的水平对齐
VerticalAlignment段落、表格或批注的垂直对齐
TextAlignment批注文本框的水平文本对齐
Justification自由文本批注内容的两端对齐
LoadFormatLoadOptions 子类使用的源格式选择器
SaveFormat由 Document.Save 使用的输出格式选择器
Rotation页面旋转角度,通过 Page.Rotate 暴露

另请参阅

 中文