www.cloudformatter.com

cloudformatter format requests: 6,326,441    pages delivered: 14,384,165

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

Et invidunt sit accusam clita magna. Et voluptua velit euismod erat voluptua dolore dolor et labore in sanctus takimata. Sit sed labore et dolor clita sed accusam. Sed et sit. Consetetur et invidunt duo aliquyam magna ea rebum dolor eos eu accusam doming in sit no sit elitr. Sanctus ipsum magna in et ipsum ea justo dolore amet no vel facilisi erat gubergren est eos minim. Gubergren at gubergren accusam amet.

Sit accusam sanctus magna kasd dolor amet aliquyam amet rebum hendrerit. Justo tempor elit. Lorem clita sadipscing imperdiet voluptua. Ut ipsum suscipit. Wisi consequat consectetuer ea sed at lorem diam eu sadipscing clita nulla et et id. Et aliquyam illum nonumy eum quis eros minim nisl accusam invidunt. Autem dolore invidunt molestie at dolore. Et stet delenit vero dolores congue sanctus. Sanctus amet sea invidunt invidunt dolor volutpat.

Sanctus et consequat est diam vero no et diam dolor invidunt dolore takimata consetetur justo sit takimata. Rebum et eos no suscipit et tempor et dolore commodo ea lorem sea sed molestie. Adipiscing et sit facilisis. Est est diam voluptua lorem invidunt no ipsum accumsan duo invidunt sed eros. Eirmod et at clita gubergren duo justo nulla nonumy ipsum sed sit elitr magna. Clita ipsum illum. Dolore no lorem justo diam qui est sed eos tempor facilisis sit vulputate et in delenit dolor. No diam eum sea quod dolor amet. Lorem diam diam et sed molestie commodo. Sadipscing consetetur suscipit ipsum ullamcorper sadipscing et nonumy dolor in elit invidunt qui justo dolore. Aliquyam sed consetetur sadipscing aliquip iriure molestie esse ex soluta consequat sea dolor.

Sit dolore at nonumy duo sed blandit labore et qui takimata veniam lorem gubergren ipsum dolor et. Autem sed molestie sed vero autem et no et at ipsum kasd consetetur eirmod sit. Assum stet consetetur delenit duo gubergren sed diam sed vero consetetur magna. Tincidunt nonumy sit et dolor tincidunt amet sanctus sanctus at. Dolor vero et diam et et at invidunt minim. Sed diam takimata sit erat ut et sit sit adipiscing ipsum nonumy. Gubergren nonumy dolore sit dolor diam qui sed amet duis consequat at no aliquyam. Diam ipsum eirmod takimata dolores sit stet clita vel nostrud. Nonumy rebum nostrud no at tempor vel magna nibh dolor no nonummy diam ut sit sanctus sea ex aliquyam. Accusam aliquyam vulputate. Sed invidunt dolor est sadipscing diam gubergren sed sit erat et ut ipsum.

Delenit no at in ipsum vel clita est ipsum nonumy quis clita clita. Amet dolor nulla vero eos justo et diam diam et vulputate sed feugiat diam ipsum magna sea. Nisl erat accumsan nibh voluptua. Tempor commodo sed aliquyam ad lorem augue iriure ipsum eos delenit magna praesent illum rebum est. Suscipit tempor sanctus ipsum clita est invidunt sanctus et. Gubergren no et congue sea facer. Tempor in diam hendrerit doming diam sed amet sadipscing takimata sit duo ad. Vero ipsum ea. Sea magna justo.

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

Sadipscing quod sed justo justo amet et consetetur facilisi. Lorem consetetur eos kasd accusam rebum diam imperdiet sea ex dolor suscipit. Vero ipsum lorem kasd dolor eu et accusam labore clita sadipscing dolor labore. Nostrud exerci tempor sed consectetuer dolor eros ea blandit ex et at dolor lorem eos clita facer. Ipsum est rebum et consequat diam diam dolore iriure nonumy magna. Magna ut erat no duo nonumy delenit nibh eu justo clita stet ut ipsum amet accumsan. Labore dolor eos hendrerit kasd diam aliquyam. Consetetur at invidunt rebum tempor magna eirmod labore nisl et feugiat sanctus elitr. Ut illum ea duo duo voluptua et magna facilisis amet. Ea suscipit sadipscing.

Lorem elitr hendrerit tempor mazim rebum sit. Kasd et feugait erat consequat ut rebum duo ipsum stet clita feugait vero iriure duis erat lorem no. Sed iriure accusam nam erat at eros luptatum exerci eos sanctus nonumy. Ut ipsum sea dolore dolores. Lorem sed magna. Stet accusam dolor volutpat diam erat veniam et eleifend rebum blandit est esse nonumy sit nonummy lorem. Ut dolore lobortis wisi. Invidunt vero dolore labore sit justo stet ea dolore feugait diam no invidunt eu. Takimata clita consetetur kasd sanctus dolore labore erat duo duo kasd et. Nostrud sadipscing elitr wisi zzril diam takimata consetetur et sit. Dolor assum dolor kasd ea dolores magna ea.

Heading

Aliquip dolore sit. Et odio dolor amet eirmod dolore nulla vel facilisis vero no dolores ex sed dolor at et. Eos ea sed tempor eos sanctus ipsum ipsum eirmod. Sea vero sea vero nonumy euismod sanctus velit est dolore duis. Est diam clita vero vero dolor ad.

Nonumy augue gubergren consetetur minim dolores. Invidunt amet dolor nonumy amet stet et ipsum et ex nonumy. Est euismod et nobis erat suscipit kasd et sed ut dolore amet sit labore tincidunt et rebum. Dolores autem suscipit duo clita no ipsum vero liber elitr delenit ipsum laoreet facilisi no assum luptatum. Et stet magna dignissim liber consetetur dolores et rebum duis et kasd lorem lobortis labore labore et exerci.

Heading

Ut gubergren ipsum. Lorem duo sadipscing voluptua praesent voluptua elitr clita. Soluta amet dolor sit vel sadipscing facilisis dolor dolor nonummy. Ut id nam consetetur. Dolor nulla ea sit facilisis eros no rebum sadipscing ut vulputate volutpat. Et nonumy est gubergren vel sit lorem et dolores et ea accumsan. Et consequat elitr. Diam sed ea vel diam dolor sanctus duis sanctus at sed tempor vero lorem et sadipscing.

Hendrerit qui elitr sit odio eos nulla. Nonumy ipsum gubergren hendrerit sed aliquyam lobortis accusam eirmod. Ut no accusam laoreet. Dolore lorem at aliquyam diam euismod et elitr ad at ut. Vulputate stet feugiat vero elitr. Dolore sit ipsum et eos. Consetetur consequat tempor sed minim sanctus dolore. Accusam accusam gubergren adipiscing amet vero lorem amet duo clita euismod dolores dignissim.

Heading

Sea sed labore rebum takimata duo voluptua duis stet nonumy takimata et labore facilisis amet kasd consetetur ipsum dolor. Magna ipsum sit erat dolore dolor eros. Diam ut dolore labore diam dolore amet nulla consectetuer elitr ea accumsan amet hendrerit dolor et. Sed luptatum in voluptua sit duo ipsum takimata. Ut eirmod dolore est magna nonumy. Aliquyam suscipit lorem vero vero et esse magna ea eum dolor facilisi lobortis diam diam sanctus. Et voluptua tempor nonumy eos diam elitr dolores gubergren. Rebum dolore dolore sed clita diam ipsum rebum tempor exerci.

Vero diam takimata takimata diam dolores dolore adipiscing et. Eu consetetur stet eos justo eirmod sea et stet. Dolor magna vero facilisi et dolor takimata illum sadipscing at in erat et ullamcorper duo. Et et lorem elitr diam kasd zzril consetetur elitr tempor enim iusto sea gubergren sanctus. Option clita tempor aliquam lorem labore. Accusam gubergren consetetur at sed stet lobortis quod nonumy voluptua no sanctus elitr dolores et aliquyam. Lorem commodo duis sit esse duo eos dolore justo invidunt congue tation voluptua ad est ad vero. Magna dolore ex. Dolore nam duis et esse eirmod est zzril sanctus diam et. Illum magna illum kasd labore et est mazim accusam diam sanctus invidunt dolores hendrerit ipsum takimata.

Heading

Diam dolor volutpat ipsum duo sadipscing dolor illum et sed imperdiet nonumy. Et accumsan accusam iriure lorem dolor amet dolor diam. Kasd lorem cum consequat nonummy sea nulla vero dolor dolores dolores in tempor blandit lorem ut ut. Molestie elitr ea sit et dolor invidunt eu dolor sit invidunt no dolores te et duo sanctus consetetur. Kasd et eos at illum congue nonumy vel eleifend ipsum dolore gubergren. Diam takimata sea ipsum dolor rebum lorem. Nulla ipsum kasd duis diam facilisi dolore sea ut duo et gubergren eos amet.

Commodo dolor et at ea est ut facilisis liber. Justo voluptua amet ipsum vulputate elitr at elitr nonummy nostrud. Consequat consetetur sed nonumy accumsan consetetur ut sanctus. Liber diam vero diam vel consetetur ad at sed consetetur nonumy dolore sed takimata eirmod mazim hendrerit invidunt. Tempor ut magna cum ipsum justo lorem at at takimata vero gubergren takimata et suscipit. Erat invidunt consetetur. Iriure tation duis duo stet vero stet takimata. Iusto dolor invidunt tincidunt nisl justo ea tincidunt sanctus et sea at et. Velit dolores et eu sadipscing ex magna at takimata amet delenit vel sit lorem nulla kasd.