:bottom-right-corner {:text "this is in the corner!"}}}
```
`:margin` sets page margins and can either a string containing a raw CSS `margin` definition, a map containing `:left`,
`:top`, `:right`, `:bottom` attributes, or a keyword to specify a predefined page margin:
*`:normal` - `"1.0in"`
*`:narrow` - `"0.5in"`
*`:moderate` - `"1.0in 0.75in"`
*`:wide` - `"1.0in 2.0in"`
`:size` and `:orientation` together set the [@page size](https://developer.mozilla.org/en-US/docs/Web/CSS/@page/size)
property. By default this will be `:size :letter` and `:orientation :portrait`.
`:margin-box` is a map containing definitions for your headers/footers. The keys of the map should correspond to the
margin box names listed [here](https://www.w3.org/TR/css3-page/#margin-boxes) (if you make a typo, you won't get an
error, but the margin box you typo'd also won't be visible anywhere, so be careful). The values should be maps that
allow you to specify the content. These can take a few different formats allowing you a good amount of flexibility:
*`{:text "this is in the corner!"}` The simplest format, allows you to place some aribtrary constant text value in a margin box.
*`{:paging [:page " of " :pages]}` Similar to `:text`, it allows you to write out a simple line of text, but the text is specified as a vector of values that are all concatenated together where the values `:page` and `:pages` are replaced with the current page number and total number of pages respectively.
*`{:element "your-element-id-here"}` The string here should correspond to an element located anywhere in your HTML that has the same element ID. This element will be turned into a running element, which is then taken out of the flow of the rest of the HTML and will be rendered on to each page at that margin box location instead. This format is really helpful when you want to include complex elements in your margin boxes, as it allows you to set any arbitrary HTML as the content.
*`{:content "\"Page \" counter(page)"}` Can be used to emit a raw value into the CSS `content` property for that margin box. You'll probably want to use this format the least often, but it can sometimes be useful.
#### `:styles`
> **NOTE** This property is likely to get somewhat of an overhaul in the near future to allow for more flexibility and control over basic styling. Please keep this in mind when upgrading to new versions of clj-htmltopdf.
Allows control over what (non-@page) CSS styles are included in your HTML. Can be a filename or vector of filenames,
a map of CSS styles, or a boolean to toggle on or off default basic style inclusion. The default value is `true`.
When set to `true`, the following basic styles are set in your HTML:
When set to a map, the map should include CSS styles for the HTML `<body>` tag only, and it will be merged with the
default styles shown above. Two additional keys can be set in this map:
*`:styles` a single file or vector of filenames pointing to any additional CSS stylesheets to be included.
*`:fonts` a sequence of maps of the form `{:font-family "font-family-name-here" :src "/path/to/custom-font.ttf"}` which allows you to use custom fonts in other CSS style definitions using the `:font-family` name specified here.
If you want to include your own custom CSS styles without the base `htmltopdf-base.css` stylesheet being included nor
any other base styles being injected, then you can specify either a single CSS filename or a vector of multiple CSS
files to be included in your HTML. Alternatively, if you know that your HTML will already include links to the external
CSS files you want to include, then you can just specify `nil` or `false` for the `:styles` option to get the same
behaviour.
#### `:watermark`
Either a map containing various properties for rendering text or image based watermarks onto all pages of the PDF, or a
function that will be called for each page that allows you to implement custom watermark rendering.
For simple text watermarks, the map can use any of the following:
```clojure
{:text "My Watermark Text"
:font "helvetica-bold"
:font-size 36.0
:color [255 0 0]
:rotation 45.0
:x :center
:y :center
:opacity 0.5}
```
`:font` is limited at the moment to be one of the built-in PDFbox supported fonts: times-roman, times-bold, times-italic, times-bolditalic, helvetica, helvetica-bold, helvetica-oblique, helvetica-boldoblique, courier, courier-bold, courier-oblique, courier-boldoblique
`:x` and `:y` can either be an X/Y coordinate (relative to the origin 0,0 at the bottom left of the page), or `:center`
which will center the text on that axis.
For simple image watermarks, the map uses most of the same properties:
```clojure
{:image "/path/to/image-file"
:rotation 45.0
:x :center
:y :center
:scale-x 2.0
:scale-y 2.0
:opacity 0.5}
```
Finally, as mentioned, you can specify a function to implement your own watermark rendering.
[:p "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."]
[:p "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."]
[:h3 "Sub Title"]
[:p "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."]