Interfaces to create formatters are dependent on the specific formatter class being instantiated. The interfaces described below are the required interfaces which all formatters must support once initialized.
One data element is defined at the module level:
push_font()
method described below, or as the new value to any
other push_property()
method. Pushing the AS_IS
value allows the corresponding pop_property()
method to
be called without having to track whether the property was changed.
The following attributes are defined for formatter instance objects:
blanklines
before the next paragraph.
send_line_break()
method.
add_flowing_data()
is considered as well when the whitespace
collapse is performed. The data which is passed to this method is
expected to be word-wrapped by the output device. Note that any
word-wrapping still must be performed by the writer object due to the
need to rely on device and font information.
data
.
format
value is a string, it is interpreted as a
format specification for counter
, which should be an integer.
The result of this formatting becomes the value of the label; if
format
is not a string it is used as the label value directly.
The label value is passed as the only argument to the writer's
send_label_data()
method. Interpretation of non-string label
values is dependent on the associated writer.
Format specifications are strings which, in combination with a counter
value, are used to compute label values. Each character in the format
string is copied to the label value, with some characters recognized
to indicate a transform on the counter value. Specifically, the
character ``1
'' represents the counter value formatter as an
arabic number, the characters ``A
'' and ``a
'' represent
alphabetic representations of the counter value in upper and lower
case, respectively, and ``I
'' and ``i
'' represent the
counter value in Roman numerals, in upper and lower case. Note that
the alphabetic and roman transforms require that the counter value be
greater than zero.
add_flowing_data()
to the associated writer object. This
should be called before any direct manipulation of the writer object.
AS_IS
if no change is desired. If the alignment value is
changed from the previous setting, the writer's new_alignment()
method is called with the align
value.
AS_IS
are set to the values passed in
while others are maintained at their current settings. The writer's
new_font()
method is called with the fully resolved font
specification.
margin
with the new indentation. The initial
margin level is 0
. Changed values of the logical tag must be
true values; false values other than AS_IS
are not sufficient
to change the margin.
AS_IS
values, is passed to the writer's
new_styles()
method.
= 1
])
n
style specifications passed to
push_style()
. A tuple representing the revised stack,
including AS_IS
values, is passed to the writer's
new_styles()
method.
= 1
])
flag
argument can be set to false if
the writer manipulations produced a hard line break at the end of the
output.