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