FOFormatter

laika.render.FOFormatter
See theFOFormatter companion object
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.

Attributes

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
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Types

Value members

Concrete methods

def attributes(tag: String, element: Element, attrs: Seq[(String, String)]): String

Renders all attributes derived from the style hint and the explicitly provided attributes.

Renders all attributes derived from the style hint and the explicitly provided attributes.

Attributes

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.

Attributes

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

Renders an empty FO block element.

Renders an empty FO block element.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

def bookmarkTitle(title: BookmarkTitle): String

Renders an FO bookmark-title element.

Renders an FO bookmark-title element.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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

Renders the specified element on the current line.

Renders the specified element on the current line.

Attributes

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.

Attributes

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.

Attributes

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

Renders an HTML/XML comment.

Renders an HTML/XML comment.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

Inherited from:
TagFormatter
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

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.

Attributes

Inherited from:
BaseFormatter