www.cloudformatter.com

cloudformatter format requests: 6,325,428    pages delivered: 14,382,012

Pass-Through XSL FO Styling

xportability LLC

Pass-Through XSL FO Styling

http://www.cloudformatter.com

Note:

We implemented the spacialized attribute fostyle to carry this information. Because the browser just ignores this, you must be careful to structure it correctly for processing. The proper structure is name: value; noting that the ":" after name is followed by a space and the ";" between items is also followed by a space.

In some instances you may wish to pass through XSL FO attributes that are not supported in HTML. This is an example, while the text in the HTML has a brown color applied, we have applied a CMYK color for the PDF generation through the use of the fostyle attribute. All fostyle attributes are applied after HTML css and also after direct attributes and override those in the HTML. This paragraph also has text-align justify in the HTML and font-stretch, font-size-adjust and hyphenate in the PDF output. The fostyle attribute is attached right in the HTML, just like style and uses the same structure internally as style.

The code for the paragraph above looks like this:

<p style="color: brown; text-align:justify;"
    fostyle="text-align-last: left; 
    font-stretch: wider; 
    font-size-adjust: 0.6; 
    hyphenate: true; 
    color: rgb-icc (255, 255, 0, #CMYK, .1, .2, .7, .5);">In some instances ...

Keeps of Various Kinds

Another common use for passing through custom elements is for properties that have specific meaning in a pagination situation like "keeps". There are several forms of keeps that can help you organize content so it is glued together as you like it.

The following are the most commonly used keeps:

  • keep-together.within-page: set to "always" and used to keep a block of content always together in a single page
  • keep-with-next.within-page: set to "always" and used to keep a block of content glued to the next one always together in a single page
  • keep-with-previous.within-page: set to "always" and used to keep a block of content glued to the previous one always together in a single page
  • keep-together.within-line: set to "always" and used to keep a span of content glued always together in a single line

The following shows some demonstrations of these capabilities.

Keeping Together Within a Page

This paragraph, the instructions and the following three para's of LoremIpsum text are surrounded by a <div> with keep-together.within-page as always, like this:

<div fostyle="keep-together.within-page: always;">
    <p>This paragraph, the instructions and the following five para's of LoremIpsum text are surrounded 
    by a <div> with "keep-together.within-page" as "always", like this:</p>...

Tempor erat sadipscing et in hendrerit et dolor duo est iriure et nulla te labore consetetur invidunt takimata. Sea et tempor consequat diam et sed et iusto eirmod exerci. In ipsum et dolor duo accusam est erat aliquyam vulputate duo dolor dolore invidunt. Sit no ut voluptua dolore voluptua. Molestie sed adipiscing eleifend ipsum kasd sea et nulla no elitr sed dolor invidunt magna sea et ut ea. Possim tempor rebum vero dolores esse eirmod amet gubergren sed sed ea labore. Amet sadipscing dolor consequat justo vel accusam. Rebum no accusam amet ut tempor amet duo ex.

Feugiat in ut voluptua. Amet lorem eum sadipscing. Invidunt magna sed sit ipsum volutpat lorem lorem ipsum qui aliquyam ut. Diam sanctus sit dolores. Sit duis iriure et euismod et vulputate sea duis amet sed lorem hendrerit. Dolore et kasd sed amet. Dolore dolores nonummy at ipsum dolores et dolor sed.

Eos dolores diam dolores dolor rebum quis at sed sea elitr invidunt diam. Consetetur lorem iriure nihil in sed diam takimata veniam diam kasd ipsum. Lobortis lobortis clita amet eu et ipsum ipsum ut veniam adipiscing sit diam justo et et feugiat diam lorem. Stet hendrerit molestie labore consetetur lorem labore amet lorem est odio et mazim. Ipsum dolores sed stet consetetur consequat nonumy. Magna molestie gubergren consequat justo ut aliquam ipsum eum dolores facilisis te lorem aliquyam. Sed dolor sed nonumy lorem esse zzril sanctus diam nonummy in luptatum aliquip gubergren dolores erat ea vulputate labore. Ea eos et ipsum euismod nam dolor gubergren esse nibh dolor elitr et vel aliquam kasd magna erat. Accumsan vero magna ipsum justo eros kasd.

Sed tempor quis sed et sed est accusam aliquip id augue. Laoreet possim dolor id nibh luptatum in eos sed sanctus. Odio luptatum consetetur erat labore ut duis tincidunt ea. Iusto kasd dolor et accumsan et amet eros lorem elitr. Wisi est ipsum lorem erat amet takimata. Velit amet et et iusto takimata euismod voluptua elit est consequat no dolores kasd sed lorem vero illum sed. Sadipscing commodo magna kasd rebum voluptua sed doming nonumy feugait est takimata tempor enim erat sadipscing nonumy vel. Sea amet dolor dolore sanctus clita. Lorem labore sed. Dolor sit illum accusam et. Rebum sanctus sea.

Erat wisi diam et rebum accusam labore. Ea elit stet est accusam est vel justo sea lorem aliquyam eos sed duo. Imperdiet gubergren et dolores aliquip sed sed et vel duo vero accusam. Hendrerit takimata volutpat clita ut sit eum sit dolores sed. Et ipsum justo est vero diam magna eros sed magna clita sanctus facer est luptatum amet vero. Clita tempor dolor labore magna nihil dolor eleifend duo. Amet at diam aliquyam justo id amet ipsum eos et no accumsan clita.

Thus all of this content from the header through this paragraph is together on a single page.

Keep Heading with Para and Table

A common practice in print documents is keeping together headings and some of the following lines of a paragraph so no heading is orphaned at bottom of a page and at least a few lines of text from any paragraph stay together.

What follows this are a series of headings and LoremIpsum paragraphs. The headings all have "keep-with-next.within-page" as "always" which will at least glue them to the paragraph. The paragraphs all have widows of "3" and orphans of "3" which will attempt to glue together at least three lines of paragraph at the bottom and top of any page. The LoremIpsum paragraphs are randomly generated on refresh of the page so you can test various layouts just by refresing and printing again.

Heading

Aliquam sed sit voluptua takimata lorem dignissim et enim accusam. Dolores kasd eirmod diam lorem lorem sea labore ad tempor vero et stet sit. Ex labore erat sanctus et consetetur dolores sadipscing nonummy magna sit accumsan clita illum iriure et vero no. Nulla cum gubergren commodo et lorem ea diam magna sanctus. Erat delenit aliquyam ipsum clita eos. Lobortis dolore sadipscing wisi eos. Et tempor dolores dolor sed vero aliquyam dolor diam dignissim lorem.

Ut lorem ipsum nisl lorem esse. Eirmod facilisi tempor in gubergren clita gubergren esse dolor sed lobortis no nulla dolor. Labore invidunt qui eirmod takimata at est. Sadipscing clita aliquip veniam exerci ipsum justo kasd suscipit. Aliquip molestie stet amet iriure tempor quis rebum sadipscing sit rebum ipsum dolor nonumy vero vero. Dolores ipsum et euismod rebum labore duo sadipscing dolore diam ut volutpat ut kasd ea lorem te voluptua zzril. Praesent minim ut aliquip in dolore lorem ullamcorper sit. Dolore tempor ipsum molestie ipsum sea sit ut.

Heading

Amet vero sea sadipscing consetetur wisi elitr lobortis duis ipsum. Stet et invidunt eos justo est dolores amet illum erat nulla dolor consectetuer et eu nulla. Aliquyam takimata et eirmod qui amet ut eu invidunt magna ullamcorper dolor feugait blandit at ipsum. Vel amet consequat vero stet molestie tempor iusto consetetur accumsan consequat. At diam aliquyam amet gubergren invidunt hendrerit dolor magna stet delenit sit ipsum eirmod feugiat ullamcorper aliquam accusam. Nobis eos labore ipsum labore dolor takimata amet lorem sadipscing molestie dolore assum. Dolor exerci eum no. Option sed labore dolor justo ea nulla dolore odio eros sanctus. Amet eos erat invidunt erat euismod vero.

Tempor vero tation no minim magna voluptua rebum aliquam nihil et. Voluptua at dolor duo ut sed dolores placerat facer accusam dolore lorem dolores. Commodo consetetur amet ut erat esse et erat dolor lorem. Eirmod dolor nulla dolor sit dolor stet invidunt ea. Luptatum sadipscing consequat duis sit takimata dolor. Dolore labore elitr. Dolore et luptatum rebum amet dolore et at. Consetetur ad eos rebum consetetur voluptua ipsum feugait justo minim stet ut vero sit dolores et. Et feugiat aliquip. Magna tempor tempor diam facilisi nulla eirmod dolore takimata stet possim sanctus minim odio vel erat congue dolor vel. Dolor clita lorem erat takimata at accusam amet.

Heading

Amet illum assum consetetur delenit dolore est nisl sanctus diam rebum voluptua stet lorem eos quis erat magna lorem. Dolore magna sit et vel dolor enim tation erat sit in eos. Vero ad lorem consequat et takimata ea sadipscing amet delenit eirmod et at amet in takimata erat kasd diam. Aliquyam ut justo molestie luptatum. Aliquyam ea ipsum dolore sanctus consetetur gubergren no nonumy cum justo. Stet vero ut kasd diam invidunt no diam sed dolor eos sit eum diam congue nulla ut et consetetur.

At iriure lorem autem sit no consetetur sed ut kasd eirmod eirmod sit dolor praesent sit justo et dolores. Nulla et sed sadipscing wisi sea lorem veniam. Eirmod consequat gubergren soluta sea eirmod. Vero sit elitr voluptua ea eu kasd dolor ut aliquyam. Sadipscing sit eu stet sanctus nonummy vulputate dolore feugait enim sanctus erat tempor quis. Dolore sed consetetur sed ex consetetur gubergren est placerat labore et sed delenit dolore eirmod suscipit elitr. Dolores dolore et justo sit nulla consequat kasd ea minim erat odio liber lorem. Amet sanctus soluta dolor sanctus id ea vel ut tempor velit zzril velit diam. In clita autem exerci accusam.

Heading

Elitr diam augue dolor nulla duis gubergren sed justo dolor tempor vulputate quis. Volutpat no dolore hendrerit dolor sadipscing elitr vel consequat magna. Labore option eos praesent nonumy consetetur gubergren ea tempor rebum at duo euismod sit velit et amet. Nonumy duis duis. Amet justo tempor illum labore et vero diam dolor sadipscing dolore lorem eos. Consetetur quod magna dolor lorem sed no et autem sed in diam labore sed et enim consetetur.

Dolore nonumy tempor aliquyam diam kasd ipsum et ea et magna vel. Erat aliquyam est takimata tempor et accumsan accusam justo. Elitr sit nonumy sadipscing ex eleifend commodo. Enim ad feugiat stet elitr takimata nostrud esse elitr et tempor at est magna invidunt. Clita amet et dolores ut eos augue et dolore aliquam consetetur et lorem duo at at et est feugiat. Ipsum in sit ipsum erat amet nihil labore labore doming eos sed vulputate diam magna nulla feugiat feugiat. Sed amet zzril diam elitr stet euismod ut et sit. Kasd ea praesent duo rebum et ad eos aliquam vero voluptua dolore dolore volutpat tempor dolores kasd eros. Et clita lorem duo.

Heading

Dolor amet est invidunt erat rebum vero tempor invidunt elit et sed eos stet gubergren sed. Sea sed ut hendrerit dolore tempor accusam nonumy sit iriure nonumy diam ut eros dolore. Amet nulla ipsum nostrud et est at assum sadipscing amet tempor eirmod voluptua eirmod stet. Sed et sit nonumy. Praesent justo duo et euismod. Diam duo gubergren dolor sea consectetuer amet feugiat dolores et ipsum ut lorem labore rebum sit. Amet dolores eos stet sed minim lorem vero magna. Feugiat sanctus diam et consetetur amet tempor. Volutpat amet consetetur erat amet takimata feugiat eum clita rebum lorem mazim sanctus accusam.

Et dolores nisl esse kasd vero amet no voluptua at accusam et vero suscipit lorem sed. Diam sanctus sit consetetur magna ea. Ut autem elitr ut tempor iusto liber facilisi lorem iriure invidunt diam gubergren et autem et nonumy ut ipsum. Invidunt sanctus sed ea feugiat consequat in. Vero feugait sanctus magna dolor vulputate dolor rebum lorem no voluptua est eirmod dolore vel. Ea eros delenit nobis sit dolore takimata. Dolores accusam aliquyam facilisi at kasd euismod voluptua magna tempor erat magna est eirmod.