FOFormatter

case class FOFormatter(renderChild: (FOFormatter, Element) => String, currentElement: Element, parents: List[Element], pathTranslator: PathTranslator, path: Path, styles: StyleDeclarationSet, indentation: Indentation, messageFilter: MessageFilter) extends TagFormatter[FOFormatter] with FOProperties

API for renderers that produce XSL-FO output.

Value parameters:
currentElement

the active element currently being rendered

indentation

the indentation mechanism for this formatter

messageFilter

the filter to apply before rendering runtime messages

parents

the stack of parent elements of this formatter in recursive rendering, with the root element being the last in the list

path

the virtual path of the document getting rendered, used for generating unique ids

pathTranslator

translates paths of input documents to the corresponding output path

renderChild

the function to use for rendering child elements

styles

the styles to apply when writing the attributes of an element

Companion:
object
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Type members

Types

Value members

Concrete methods

def attributes(tag: String, element: Element, attrs: Seq[(String, String)]): String
def block(styleHint: Element, content: Seq[Span], attr: (String, String)*): String

Renders an FO block element and the specified nested spans on the same line.

Renders an FO block element and the specified nested spans on the same line.

def block(styleHint: Element, attr: (String, String)*): String

Renders an empty FO block element.

Renders an empty FO block element.

def blockContainer(styleHint: Element, content: Seq[Block], attr: (String, String)*): String

Renders an FO block element, containing nested blocks. The content will be rendered indented one level to the right.

Renders an FO block element, containing nested blocks. The content will be rendered indented one level to the right.

def blockWithWS(styleHint: Element, content: Seq[Span], attr: (String, String)*): String

Renders an FO block element and the specified nested spans, preserving all whitespace within the text elements of those spans.

Renders an FO block element and the specified nested spans, preserving all whitespace within the text elements of those spans.

def bookmark(bookmark: NavigationItem): String

Renders an FO bookmark element and all of its nested bookmarks.

Renders an FO bookmark element and all of its nested bookmarks.

def bookmarkTitle(title: BookmarkTitle): String

Renders an FO bookmark-title element.

Renders an FO bookmark-title element.

def bookmarkTree(tree: NavigationList): String

Renders an FO bookmark-tree element and all of its nested bookmarks.

Renders an FO bookmark-tree element and all of its nested bookmarks.

def buildId(path: Path): String

Generates an id that is unique within the entire document tree for the specified path of the target document and its local reference.

Generates an id that is unique within the entire document tree for the specified path of the target document and its local reference.

def buildLocalId(ref: String): String

Generates an id that is unique within the entire document tree for the specified local reference.

Generates an id that is unique within the entire document tree for the specified local reference.

def externalGraphic(styleHint: Element, src: String, width: Option[Length], height: Option[Length]): String

Renders an FO external-graphic element.

Renders an FO external-graphic element.

def footnote(styleHint: Element, label: String, body: Seq[Block], options: Options): String

Renders an FO footnote element, with the body indented one level to the right.

Renders an FO footnote element, with the body indented one level to the right.

def inline(styleHint: Element, content: Seq[Span], attr: (String, String)*): String

Renders an FO inline element and the specified nested spans on the same line.

Renders an FO inline element and the specified nested spans on the same line.

def internalLinkTarget(element: Element): String

Renders an FO block or inline element for this internal link target, depending on whether it is inside a BlockContainer or SpanContainer.

Renders an FO block or inline element for this internal link target, depending on whether it is inside a BlockContainer or SpanContainer.

def listBlock(styleHint: Element, content: Seq[ListItem], attr: (String, String)*): String

Renders an FO list-block element, and the specified list items. The content will be rendered indented one level to the right.

Renders an FO list-block element, and the specified list items. The content will be rendered indented one level to the right.

def listItem(styleHint: Element, label: Seq[Span], body: Seq[Block], attr: (String, String)*): String

Renders an FO list-item element with the specified label and body. The content will be rendered indented one level to the right.

Renders an FO list-item element with the specified label and body. The content will be rendered indented one level to the right.

def listItemBody(styleHint: Element, content: Seq[Block], attr: (String, String)*): String

Renders an FO list-item-body element, with the content indented one level to the right.

Renders an FO list-item-body element, with the content indented one level to the right.

def listItemLabel(styleHint: Element, content: Block, attr: (String, String)*): String

Renders an FO list-item-label element, with the content indented one level to the right.

Renders an FO list-item-label element, with the content indented one level to the right.

def rawText(styleHint: Element, content: String, attr: (String, String)*): String

Renders an FO inline element and the specified text, treating it as "raw", pre-rendered XSL-FO output, so that no escaping of special character will be performed. Renders only the text itself in case there are no attributes associated with the text.

Renders an FO inline element and the specified text, treating it as "raw", pre-rendered XSL-FO output, so that no escaping of special character will be performed. Renders only the text itself in case there are no attributes associated with the text.

def text(styleHint: Element, content: String, attr: (String, String)*): String

Renders an FO inline element and the specified text. Renders only the text itself in case there are no attributes associated with the text.

Renders an FO inline element and the specified text. Renders only the text itself in case there are no attributes associated with the text.

def textBlockWithWS(styleHint: Element, content: String, attr: (String, String)*): String

Renders an FO block element and the specified text, preserving all whitespace. Renders only the text itself in case there are no attributes associated with the text.

Renders an FO block element and the specified text, preserving all whitespace. Renders only the text itself in case there are no attributes associated with the text.

def textWithWS(styleHint: Element, content: String, attr: (String, String)*): String

Renders an FO inline element and the specified text, preserving all whitespace. Renders only the text itself in case there are no attributes associated with the text.

Renders an FO inline element and the specified text, preserving all whitespace. Renders only the text itself in case there are no attributes associated with the text.

def withCitation(ref: String)(f: Citation => String): String

Obtains a Citation with the specified reference name and, if it exists, passes it to the provided render function.

Obtains a Citation with the specified reference name and, if it exists, passes it to the provided render function.

def withFootnote(ref: String)(f: Footnote => String): String

Obtains a Footnote with the specified reference name and, if it exists, passes it to the provided render function.

Obtains a Footnote with the specified reference name and, if it exists, passes it to the provided render function.

Inherited methods

def attribute(name: String, value: String): String

Renders the specified attribute including a preceding space character.

Renders the specified attribute including a preceding space character.

Inherited from:
TagFormatter
def attributes(attrs: Seq[(String, String)]): String

Renders the specified attributes (passed as name-value tuples), including a preceding space character.

Renders the specified attributes (passed as name-value tuples), including a preceding space character.

Inherited from:
TagFormatter
def child(element: Element): String

Renders the specified element on the current line.

Renders the specified element on the current line.

Inherited from:
BaseFormatter
def childPerLine(elements: Seq[Element]): String

Renders the specified elements, each of them on a new line using the current level of indentation.

Renders the specified elements, each of them on a new line using the current level of indentation.

Inherited from:
BaseFormatter
def children(elements: Seq[Element]): String

Renders the specified elements, all on the same line, without any separators.

Renders the specified elements, all on the same line, without any separators.

Inherited from:
BaseFormatter
def comment(content: String): String

Renders an HTML/XML comment.

Renders an HTML/XML comment.

Inherited from:
TagFormatter
def element(tagName: String, styleHint: StyleHint, content: Seq[Element], attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the style hint and content consisting of the provided child elements, all rendered on the same line.

Renders an element with the specified tag name, attributes derived from the style hint and content consisting of the provided child elements, all rendered on the same line.

Inherited from:
TagFormatter
def emptyElement(tagName: String): String

Renders an empty element with the specified tag name.

Renders an empty element with the specified tag name.

Inherited from:
TagFormatter
def emptyElement(tagName: String, styleHint: StyleHint, attrs: (String, String)*): String

Renders an empty element with the specified tag name and attributes derived from the style hint.

Renders an empty element with the specified tag name and attributes derived from the style hint.

Inherited from:
TagFormatter
def filterAttributes(tagName: String, attributes: Seq[(String, String)]): Seq[(String, String)]

Filters out all unsupported attributes for the specified tagName and return a new sequence containing only attributes valid for that tag.

Filters out all unsupported attributes for the specified tagName and return a new sequence containing only attributes valid for that tag.

Value parameters:
attributes

the attributes to filter as a sequence of key-name tuples

tagName

the name of tag to filter the attributes for

Returns:

a new sequence containing only attributes valid for that tag

Inherited from:
FOProperties
def forMessage(message: RuntimeMessage)(whenEnabled: String): String

Renders the specified string only when the given message has at least the minimum message level defined for this formatter instance.

Renders the specified string only when the given message has at least the minimum message level defined for this formatter instance.

Inherited from:
BaseFormatter
def indented(f: FOFormatter => String): String

Invokes the specified render function with a new formatter that is indented one level to the right of this formatter.

Invokes the specified render function with a new formatter that is indented one level to the right of this formatter.

Inherited from:
BaseFormatter
def indentedChildren(elements: Seq[Element]): String

Renders the specified elements, each of them on a new line with the indentation increased one level to the right.

Renders the specified elements, each of them on a new line with the indentation increased one level to the right.

Inherited from:
BaseFormatter
def indentedElement(tagName: String, styleHint: StyleHint, content: Seq[Element], attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the style hint and indented content consisting of the provided child elements.

Renders an element with the specified tag name, attributes derived from the style hint and indented content consisting of the provided child elements.

Inherited from:
TagFormatter
def optAttributes(attrs: (String, Option[String])*): Seq[(String, String)]

Filters empty values from the provided list of name-value pairs.

Filters empty values from the provided list of name-value pairs.

Inherited from:
TagFormatter
def productElementNames: Iterator[String]
Inherited from:
Product
def productIterator: Iterator[Any]
Inherited from:
Product
def rawElement(tagName: String, styleHint: StyleHint, content: String, attrs: (String, String)*): String

Renders an element with the specified tag name, attributes derived from the style hint and content based on the provided string that is interpreted as already rendered in the target format. That means that no character escaping will be performed on the provided content.

Renders an element with the specified tag name, attributes derived from the style hint and content based on the provided string that is interpreted as already rendered in the target format. That means that no character escaping will be performed on the provided content.

Inherited from:
TagFormatter
def text(str: String): String

Renders the specified string on the same line, with all special XML/HTML characters converted to entities.

Renders the specified string on the same line, with all special XML/HTML characters converted to entities.

Inherited from:
TagFormatter
def textElement(tagName: String, styleHint: StyleHint, txt: String, attrs: (String, String)*): String

Renders a text element with the specified tag name, attributes derived from the style hint and content based on the provided text content that gets rendered with all special XML/HTML characters converted to entities.

Renders a text element with the specified tag name, attributes derived from the style hint and content based on the provided text content that gets rendered with all special XML/HTML characters converted to entities.

Inherited from:
TagFormatter
def withMinIndentation(minIndent: Int)(f: FOFormatter => String): String

Invokes the specified render function with a formatter that has at least the specified minimum level of indentation. If this instance already has an indentation equal or greater to this value, the current level of indentation will be kept.

Invokes the specified render function with a formatter that has at least the specified minimum level of indentation. If this instance already has an indentation equal or greater to this value, the current level of indentation will be kept.

Inherited from:
BaseFormatter
def withoutIndentation(f: FOFormatter => String): String

Invokes the specified render function with a new formatter that has all indentation disabled.

Invokes the specified render function with a new formatter that has all indentation disabled.

This is usually only required when rendering literal elements or source code where rendered whitespace would be significant.

Inherited from:
BaseFormatter

Inherited fields

val newLine: String

A newline character followed by whitespace matching the indentation level of this instance.

A newline character followed by whitespace matching the indentation level of this instance.

Inherited from:
BaseFormatter