# DESCRIPTION This module helps to create Heading Styles in [OpenOffice::OODoc](https://metacpan.org/pod/OpenOffice%3A%3AOODoc) documents. Instead of blindly creating new styles at will, one can call `establishHeadingStyle` that will honour any exisiting style, but will create a new one if needed. # METHODS ## establishHeadingStyle returns an OpenOffice::OODoc Heading Style Element for a given level my $level = 2; my $style_definition = { paragraph => { top => '0.1390in', bottom => '0.0835in' }, text => { size => '115%', weight => 'bold' }, }; my $heading_style = $oodoc_style ->establishHeadingStyle( $level, $style_definition ); If the style was not already present in the 'Styles' part of the document, it will be created and added into the document. The style-definition is an optional argument. If not provided, it will use what is found in `HEADING_DEFINITIONS` package HashRef. That is pre-populated with the defaults from Libre Office. See below. A newly created heading style inherrits from the `Heading` style and will apply font settings like Libre Office does: relative `font-size`, `font-weight` and `font-style` and more. CAVEAT: `$level` will be treated turned into integer values. This means that if it does not start with a number will be treated as "Heading 0" styles and decimals will be truncated. See `int` ## createHeadingStyle Creates a new Heading Style in the 'styles' part for a given level. It accepts an optional style-definition HashRef like the above. # MORE... ## Heading Style Definitions This module does some convenience mapping between params and that what [OpenOffice::OODoc](https://metacpan.org/pod/OpenOffice%3A%3AOODoc) internally uses in their xml. A heading style for this module look like the following hash structure: paragraph => { top => '9.9999in', bottom => '9.9999mm', }, text => { size => 'huge', weight => 'super-heavy', style => 'strike-through', family => 'fantasy', name => 'Noteworthy', font_style => 'Condensed', }, - top the marging at the top of the heading, for example:'0.1665in'. - bottom the margin at the bottom of the heading, for example '0.0835in'. - size the relative size of the 'parent Heading' style, like: '130%'. - weight the font weight of the heading style, for example 'bold'. - style the font styling for the heading, like 'italics'. - name the name of the font to use, note that not all fonts are portable - family the main family it is part of, like 'sans' and 'serif' item font\_style the font it's own style name, like 'narow'. 'light', or 'heavy' ## $$HEADING\_DEFINITIONS This variable should hold a HashRef to a list of Heading Style Definitions. The keys should be `Heading 1` through `Heading 6` when dealing with HTML tags. In Libre Office, there are 10 diferent styles. You can set this HashRef so `createHeadingStyle` has defaults to pick from if not provided when calling that method.