build

my $pdf = PDF::Make::Markup::Build->build($root, file_name => 'out');

Walks a parsed tree onto a PDF::Make::Builder and returns it, unsaved, so the caller decides where the bytes go.

NAME

PDF::Make::Markup::Build - compile a markup tree onto PDF::Make::Builder

DESCRIPTION

The only place that knows about both the markup and the builder. Everything it does is a builder call a hand-written script could have made, which is what keeps the markup honest: if the builder cannot do a thing, the markup does not offer it.

Content models

<doc>, <page>, <box>, <header> and <footer> hold blocks. Headings, <p>, <text> and the cells hold text and inline styling. <row> holds cells, <table> holds <tr>, and <tr> holds cells. Breaking one of those is an error with a position rather than a builder failure somewhere far from the template line that caused it.

What is not here yet

Inline styling inside a cell is refused rather than flattened: PDF::Make::Builder::Layout::Cell renders its own text and does not take the run list PDF::Make::Builder::Text understands. Lifting that is the next piece of work, and until then the error names the tag and where it is.

SEE ALSO

PDF::Make::Markup::Parse, PDF::Make::Markup::Style