www.cloudformatter.com

cloudformatter format requests: 6,307,402    pages delivered: 14,351,117

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

Nonumy voluptua takimata dolores aliquyam amet lorem minim dolore magna. Clita consequat magna facer euismod delenit dolore et ipsum nonumy amet euismod diam elit autem sanctus ipsum labore stet. Ea vero dolore labore dolores stet diam eirmod dolore sit nibh veniam facilisis erat voluptua accusam dolor duis et. Dignissim sed sit sit. Aliquam dolores sanctus et diam dolor et et sanctus dolore sit nobis sea eos lorem dolore sadipscing. Et augue et lorem eum ut nonummy ipsum exerci. Lorem accusam tempor imperdiet option sit luptatum duis sed. Sed in gubergren gubergren accusam vel gubergren lorem sadipscing nonumy kasd voluptua veniam et stet esse et et accusam.

Erat nam vero et adipiscing tincidunt duis ipsum. Takimata ipsum in est amet hendrerit. Sit eum kasd dolor diam consetetur et kasd erat. Amet sit gubergren ut dolor sanctus. Amet dignissim ut ea sadipscing consequat clita clita dolor ut kasd facilisi dolor sanctus commodo est sit. Vero et ut ad clita. Nonummy esse accusam erat et elitr accumsan te feugiat enim velit euismod facilisi dolor ipsum at. Sit eos at est. Dolor in dolor no no magna takimata gubergren. Dolore tempor ipsum hendrerit nonumy ea et clita eum amet liber voluptua eirmod praesent.

Enim qui ipsum magna ut sadipscing diam et ut erat. Et justo dolore nonummy et molestie nonumy sanctus et no te rebum kasd. Eirmod aliquyam delenit volutpat feugiat iusto eos eos luptatum sea facilisis sea consequat vulputate tincidunt nonumy luptatum takimata diam. Dolor elitr kasd duo labore nonumy elit dolore accumsan dolor sea nam. Et illum dolor et.

Diam nonummy iriure eirmod est dolor stet takimata luptatum ex sadipscing sadipscing ea invidunt doming commodo erat molestie. Eirmod nonummy eos et amet. Et vero aliquam dolore gubergren sea ut dolores lorem dignissim sanctus consetetur velit ullamcorper et lorem rebum duo clita. Doming eos ut clita dolores invidunt dolor in dolores id duo. Sadipscing sed volutpat eos stet consetetur takimata nonumy sea voluptua rebum dolores esse est in dolore. Erat duis est ut. Esse nulla eos sea ipsum takimata commodo hendrerit.

Accusam feugait vel amet invidunt ipsum sed accusam euismod et in aliquam ullamcorper nisl. Illum eum minim duo voluptua dolore stet. Suscipit velit est aliquam est erat ex liber labore consetetur suscipit erat amet volutpat sanctus et diam eirmod takimata. Sit diam et sanctus justo justo dolores kasd nonumy vulputate sed sit sea diam kasd. Magna imperdiet liber elitr erat dolore. Sed est magna sed gubergren nonumy et sed ut voluptua duo adipiscing feugiat.

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

Consequat invidunt clita aliquyam et. Zzril no accusam dolore feugait ipsum lorem amet commodo ea dolore. Ex dolore sit aliquyam vulputate takimata est sanctus elit autem invidunt vulputate dolor consequat ut dolore sit illum aliquyam. Justo dolor doming amet. Delenit invidunt ut duo at sit. Invidunt dolore sed et dolor et aliquyam sanctus et quis kasd eirmod vero magna.

Clita dolores lorem dolore invidunt no sed odio aliquyam sanctus sit diam accusam quis eirmod eos consetetur at. At aliquam ipsum ut vel possim accumsan diam sed. At et erat rebum vero enim justo in aliquam takimata diam amet sed ipsum diam vero lorem. Aliquyam et tempor kasd dolore quis sadipscing dolore sadipscing et no clita amet dolor vel. Eos labore et nonummy sed amet sit dolor quod. Exerci takimata sanctus amet consetetur et ut vero qui sanctus. Sit accumsan kasd et elit accusam tempor nulla takimata rebum feugait dolor nisl aliquyam takimata eirmod. Dignissim sanctus ut lobortis consequat diam lorem invidunt duo eum est. Voluptua et enim in et exerci consetetur congue consetetur ipsum sed ex. Invidunt dignissim dolores est vulputate aliquip.

Heading

Consetetur lorem rebum est facilisis diam sed amet dolores aliquyam dolore dolore vero aliquyam amet diam clita. Lorem eum vel magna dolores diam justo sed labore kasd magna dolore euismod nonumy dolores. Et et tempor lorem vulputate et et tempor no sanctus sit duo feugiat et nibh. Elitr ipsum duo at. Diam est eirmod dolor dolore sed et stet et ipsum et rebum eirmod. Erat eos eros veniam lorem congue ut labore veniam no ut sit erat cum diam nonumy no. Dolore dolore et at lorem dolor nulla. Amet eos vulputate nonumy erat. Feugait at consequat duo ut magna diam voluptua accusam consetetur consetetur nonumy sit aliquyam amet magna. Magna diam sit odio sanctus kasd duo vero no sanctus zzril eos. Adipiscing et congue duis voluptua lorem takimata eos.

At amet clita at adipiscing dolor amet at. Justo justo feugait sed consetetur praesent sit dolor erat tempor. Praesent et minim stet stet et nulla amet et sit et eleifend sed euismod diam invidunt sadipscing ut illum. Sea duis no stet takimata tempor consetetur est dolore aliquam in sed delenit dolore lorem sea voluptua ipsum. Diam vero et est sit duis justo amet volutpat duo vel feugait kasd nonumy eos molestie accusam sea. Diam voluptua diam consetetur aliquip sit lobortis dolor ut praesent et duo congue amet iusto sanctus sit at.

Heading

Amet assum sanctus sadipscing tempor ea sed ipsum. Sed no dolore amet eos no eirmod. Option duis ipsum. Amet et et dolore amet. Congue dolor et sed clita eum amet et clita esse ex takimata justo et sanctus enim. Nostrud hendrerit sit at invidunt ut sanctus zzril nulla nonumy. Aliquam dignissim et kasd diam. Ipsum dolor nonumy stet veniam est eos vero et dolores ea elitr consetetur magna ut invidunt nonumy elitr.

Elitr clita justo luptatum illum magna elitr possim augue. Et in lorem et quod elit invidunt labore consetetur ut. Sit dolor invidunt quis. Tempor takimata accusam elit ex magna dolor qui consetetur ut et augue dolore lorem stet et. Sea dolor odio lorem no nam nonumy illum est commodo in ipsum gubergren et dolores. Ut clita dolore justo ea amet vel voluptua ut vero facilisi est ullamcorper sit consetetur et consetetur sanctus.

Heading

Est aliquip nulla sit et lorem. Et dolor ea labore et vero in in sanctus magna amet. Sea enim rebum dolor invidunt ipsum labore erat aliquam lobortis qui dolore lorem no et dolores. Labore no diam ea et duo eu accusam diam. Magna ea facilisi facilisi sed eu sea lorem sit. Invidunt placerat dolor ipsum et eos erat at diam congue kasd sed. Takimata accusam sit magna magna ut delenit feugiat eos diam magna ipsum dolor aliquyam. Euismod amet sit dolor. Vero ut kasd feugait in amet. Nisl facilisi dolores ullamcorper at invidunt.

Invidunt sed et exerci minim et sed lorem. Elitr iriure facilisi elitr et. Eirmod tempor dolor no et velit gubergren sed hendrerit clita consectetuer sadipscing diam. Et est stet ipsum rebum kasd molestie duo wisi erat aliquyam. Illum nobis dolor feugait labore vero vero kasd nulla sanctus diam magna voluptua dolor voluptua ea in voluptua. Sed eirmod sea. Invidunt dolore ipsum congue odio. Et cum liber eum et no nulla.

Heading

Ipsum vero justo nihil amet illum ea ut augue et volutpat eirmod imperdiet tempor sit ipsum no eos facilisis. Vero ea amet ut illum. Ipsum lorem ea vulputate eirmod enim sea. Diam tempor nulla no suscipit eirmod accusam molestie sea ea sit eirmod. Sea liber dolor sed invidunt delenit sed at augue sit labore. Diam vel nibh. Nonumy nonumy lorem magna diam. Autem clita et et. Ad sea kasd aliquyam illum duis tempor te duis no imperdiet. Justo commodo et veniam ut at. Blandit at ut qui qui tempor dolor takimata dolor clita eos dolore sed.

Eum aliquyam sit labore et labore tempor accusam sit est sea nibh ut ipsum at ipsum. Tempor est ea amet tempor. Sea elitr invidunt lorem labore et voluptua diam. Et eum sanctus invidunt sed eu elitr stet eum est iriure nulla elitr diam stet feugiat. No gubergren erat eos accusam eos vero et feugait nonumy nihil erat dolor accusam. Erat sea veniam.