34.1. formatter —通用输出格式

该模块支持两个接口定义,每个接口定义都有多个实现。 * formatter 接口由htmllib模块的HTMLParser类使用,而 writer *接口则是 formatter 接口所必需的。

格式化程序对象将格式化事件的抽象流程转换为写入器对象上的特定输出事件。格式化程序 Management 几种堆栈结构,以允许更改和恢复 writer 对象的各种属性;作者无需处理相对变化,也无需进行任何“变回”操作。可以pass格式化程序对象控制的特定编写器属性为水平对齐,字体和左边界缩进。提供了一种机制,该机制还支持向 Writer 提供任意,非排他的样式设置。附加接口有助于格式化不可逆的事件,例如段落分隔。

编写器对象封装设备接口。支持抽象设备(例如文件格式)以及物理设备。所提供的实现均适用于抽象设备。该接口提供了用于设置格式化程序对象 Management 的属性以及将数据插入输出中的可用机制。

34.1.1. 格式化程序接口

创建格式化程序的接口取决于要实例化的特定格式化程序类。下述接口是所有格式化程序初始化后必须支持的必需接口。

在模块级别定义了一个数据元素:

为格式化程序实例对象定义了以下属性:

格式规范是字符串,将其与计数器值结合使用以计算标签值。格式字符串中的每个字符都将复制到标签值,同时识别出一些字符以指示对计数器值的转换。具体来说,字符'1'代表阿拉伯数字形式的计数器值格式器,字符'A''a'分别以大写和小写字母表示计数器值的字母表示,'I''i'代表罗马数字的计数器值的大写字母和大写字母。小写。请注意,字母和罗马变换要求计数器值大于零。

34.1.2. 格式化程序实现

该模块提供了两种格式对象的实现。大多数应用程序可以使用这些类之一,而无需修改或子类化。

34.1.3. Writer 界面

创建编写器的接口取决于要实例化的特定编写器类。下述接口是所有编写器初始化后必须支持的必需接口。请注意,尽管大多数应用程序都可以将AbstractFormatter类用作格式化程序,但通常必须由该应用程序提供 writer。

34.1.4. Writer 实现

此模块提供了 writer 对象接口的三种实现方式作为示例。大多数应用程序将需要从NullWriter类派生新的 writer 类。

首页