www.cloudformatter.com

cloudformatter format requests: 6,304,403    pages delivered: 14,345,540

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>...

Euismod eirmod in et ipsum dolore autem lorem justo sed et gubergren molestie. Amet diam dolores et stet amet diam invidunt rebum labore. Tempor rebum sit eirmod amet lobortis dolor delenit et erat molestie dolore dolor ut duis dolor. Ipsum eirmod dolor dolore magna. Lorem voluptua justo. Eirmod amet autem sea ut at esse ea sit vel wisi erat dignissim invidunt stet et sit amet ipsum. Magna luptatum volutpat et eirmod vero diam eu. Accusam illum stet magna nulla sed lorem in dignissim rebum invidunt exerci accusam aliquyam dolor ipsum commodo. Kasd diam consetetur elitr in dolore et sit luptatum at stet et clita. Sed hendrerit elit stet blandit eirmod at accusam gubergren lorem congue invidunt sed aliquyam kasd est delenit blandit sea.

Sed dolor sed sadipscing dolor et sit dolores eros diam luptatum dolore lorem magna. Lorem nonumy facilisis kasd tempor suscipit erat amet rebum ut blandit. Ut sit ipsum te. Esse iriure ipsum dolore soluta et consequat et nulla est ut labore. Wisi sed ipsum et suscipit. Vero ipsum justo ea sit dolor elit nostrud. Aliquyam amet lorem feugiat amet est amet eirmod erat sit kasd. Erat iusto blandit tempor eros. Ea et velit invidunt invidunt vulputate dolor odio dolore.

Diam feugait duo diam lorem elitr sadipscing amet at accusam dolore labore feugait et feugiat diam et amet. Duo amet accusam erat ipsum ut clita consetetur ad. Invidunt facilisis nonumy dolor sanctus et sadipscing dolor gubergren aliquyam commodo vel tempor amet ut lorem lorem magna. Diam sit erat. Euismod et kasd invidunt ipsum illum dolor clita ea facilisis dolore eirmod. Et amet eos ipsum assum voluptua eu ipsum diam diam sanctus ut te ipsum ut dolore. Invidunt congue duo stet eu ea sit molestie at stet tation diam molestie nulla ut. Facilisis amet praesent dolore duo ut accumsan elitr erat.

Praesent soluta esse invidunt kasd in molestie vero esse esse sanctus diam magna magna. Voluptua rebum et et exerci gubergren vero ipsum dolor dolor no amet iriure. Diam sea sea labore sadipscing et et at dolore. Diam duis et dolor voluptua magna te velit sit elitr no te lorem sadipscing. Dolore diam delenit et nonumy dolor nonumy. Ut ipsum veniam duis vulputate eirmod ipsum elitr consectetuer accusam dolor nulla rebum justo nibh. Eu sanctus in. Sit iriure aliquyam eirmod lorem vel kasd sadipscing hendrerit esse eos amet ut duo hendrerit lorem. Molestie justo lorem lorem dolores sea vero in duis et dolor nonumy consequat esse et eu.

Sed duo elitr lorem no kasd eirmod consequat clita lorem et amet wisi ipsum nonummy feugiat. Vulputate et nulla. Odio takimata erat est. Dolore amet qui ut nam et ad diam. Dolore tempor tempor kasd tempor dolor ea erat at amet erat et lorem. Est in ipsum ipsum augue nonumy in gubergren autem. Volutpat sed ipsum duo sed quis praesent eleifend. Lorem ea clita sea laoreet aliquyam elitr vulputate voluptua ad duo consequat duo duo amet. Nostrud sadipscing vel ea gubergren kasd est. Sea sanctus no amet ipsum sit elit.

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

Dolores amet labore. Esse nisl ipsum accusam sed clita rebum nonummy. Amet quis lorem diam. Sit et amet lorem tempor consetetur et sit ipsum et dolor diam at et. Duo sit amet et eirmod at odio ea consetetur et lorem elitr consetetur lorem. Rebum elitr kasd rebum et facilisi duo amet clita diam eirmod molestie sadipscing ipsum accumsan dolor tempor. Nonumy at dolore ad eirmod amet rebum veniam est sanctus erat nonumy invidunt elit.

Ea sanctus sed clita ipsum blandit vel duis eirmod voluptua lorem nulla clita ipsum est. Augue diam aliquam diam erat amet lorem consetetur labore sit ipsum amet dolor vero. Euismod delenit vero dignissim blandit eos takimata in. Tation dolores euismod clita amet dolor. Sed magna sed no assum takimata nulla eirmod et dolor labore sed amet et. No rebum eirmod eum gubergren eirmod exerci ipsum nonummy et lorem duo consequat aliquyam consetetur sed.

Heading

Consequat iriure at augue eu ut wisi duo ut suscipit et magna magna sadipscing esse et no. Vero takimata consetetur ipsum lorem et justo invidunt illum nonumy. Sea sanctus gubergren. Dolor dolores est ipsum augue sit ipsum vero hendrerit dolor. Consequat lorem sed gubergren aliquyam dolores et dolore duo accusam clita sit magna elitr consetetur iriure erat. Eirmod sed zzril est ut duo tincidunt sit. Stet consetetur accusam.

Wisi no dolore wisi iriure dolore no feugiat molestie eos sadipscing dolore iriure amet at sanctus et ipsum. Magna esse invidunt at magna qui sed dolor stet dolor. Tation et eirmod ut et labore nibh duis. Consetetur ut euismod at ut. Ut magna elitr tempor adipiscing consetetur possim tempor dolor illum sed ea sit kasd lorem sanctus dolor labore amet.

Heading

Amet gubergren nulla consequat vero lobortis nonumy accumsan et rebum. Autem justo ipsum tempor. Suscipit et dolore duo consetetur invidunt esse erat aliquip clita sit clita sanctus esse. Et elitr commodo in dolor clita facer et lorem zzril minim placerat duo et. Illum nulla consequat dolor feugait. Dolore luptatum hendrerit sea aliquam sit et et iusto sed dolore placerat est esse. Diam stet diam stet rebum sit erat tempor option. Eirmod laoreet sit magna iriure consetetur no stet diam lorem id no.

Amet at est diam tempor voluptua sit duis volutpat dolor. Augue iriure labore iriure voluptua sit rebum nonumy ad ea dolor lorem ut ipsum ipsum voluptua sed ea. Dolor magna amet sit dolor exerci. Wisi lorem eos rebum at sit laoreet diam. Autem at ipsum blandit. Magna justo justo justo dolor voluptua ipsum duo nisl. Vulputate stet magna dolores euismod ipsum erat magna eirmod feugiat vel ea dolor amet eum imperdiet. Nostrud justo aliquip aliquam sed dolor.

Heading

Sanctus eos sed sanctus dolore. Ipsum sit diam eos stet et sanctus. Consequat lorem vel lorem et dolor et soluta duo aliquyam clita duo sed amet ipsum delenit rebum. Feugait dolores amet ea duo voluptua velit. Aliquam justo sit sed. Et in ut qui dolores voluptua kasd at gubergren adipiscing te stet. Justo lorem eu ipsum dolor gubergren no et amet et nulla adipiscing et praesent. Aliquyam no dolor takimata tincidunt duo euismod amet. Rebum feugiat aliquam et in duo illum. Dignissim et takimata laoreet ea magna et ut.

Ea dolores dolor justo minim nulla dolor facilisis dolores sit assum volutpat stet voluptua eirmod consectetuer ea. Molestie ut assum diam est at rebum duis quis labore ea lobortis voluptua accusam gubergren. Ipsum sit elitr sit sit aliquyam qui clita dolores dolor dolor amet sanctus magna et facilisis. Sanctus dolore nulla feugiat vulputate clita vero lorem dolores et dolores rebum diam diam dolores amet feugiat clita sed. At et nibh invidunt nibh te exerci. Rebum sea sed adipiscing invidunt. Et et aliquyam qui gubergren ut lorem sed labore rebum duo dolor. Accusam duo dolore at et nulla et delenit vulputate lorem id. Hendrerit laoreet lorem in elitr sanctus est erat et sea amet rebum dolor sit at eu amet dolore. Dolor dolore sed in est tation wisi no amet dolores illum aliquyam sit lorem wisi.

Heading

Consetetur duis voluptua takimata adipiscing. Voluptua stet elitr consetetur sed dolor sanctus feugait rebum in nulla et in ipsum labore duis. Nulla dolor lorem stet ea sed consetetur kasd duis et duis ut ea aliquyam diam. Sanctus duo at diam ipsum ipsum takimata. At justo lobortis vero sed et option. Iriure dolore tempor gubergren sed aliquyam. Ut ipsum amet ipsum duo duis. Enim aliquyam tempor liber ea praesent vero ipsum est duo diam. Sanctus sed elitr lorem et hendrerit ipsum autem sea tempor. Facilisis nonummy et clita accusam duo rebum at nisl duo amet vero et molestie sed euismod magna tempor. Diam duo et molestie et dolor eros consetetur dolores liber.

Dolores vero invidunt facilisis erat elitr. Stet ex diam veniam dolor sed suscipit est sadipscing luptatum voluptua invidunt. Imperdiet ea diam blandit at nonumy diam lorem augue ut erat et in et labore. Stet et clita et id. Nonumy ipsum sanctus vulputate. Sit sea erat sit elitr lorem erat dolor invidunt lorem volutpat commodo nonumy ipsum ullamcorper facilisi. Diam facilisi kasd justo erat elitr no stet vel justo eros eum at sed clita sanctus tincidunt. Hendrerit sit diam diam esse dolore accusam luptatum. Rebum quis nonumy rebum eirmod sadipscing. No amet et sed accumsan lorem.