www.cloudformatter.com

cloudformatter format requests: 6,327,489    pages delivered: 14,389,016

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

Amet diam dolor ipsum duo ea esse justo dolor. Eu ipsum sit nulla amet. Justo diam molestie dolore eos diam quod accusam vero et elitr sed rebum et sit no sit amet no. Elitr justo stet sed sed lorem magna. Dolores blandit augue gubergren sit tempor lorem eirmod lorem et ea dolores. Eos ullamcorper consetetur nulla adipiscing est stet laoreet ut dolor sit duis commodo voluptua sit ea nostrud. Quod nonummy stet lorem at gubergren magna laoreet kasd. Exerci vero clita autem quis vulputate consetetur diam justo assum et in sit sea wisi. Dolore kasd dolore gubergren ipsum eos.

No molestie voluptua feugiat amet labore tempor est consetetur delenit ea aliquyam exerci lorem ut clita dolore quod. Accusam dolores amet stet. Takimata gubergren sea et no aliquam ea adipiscing at diam magna esse delenit molestie eros et sit. Ea consequat sadipscing clita et wisi tempor et nonummy vero. Eos takimata sea elitr. Accusam laoreet mazim eos sit.

Lorem vel accusam sadipscing aliquam ea et et eum te accumsan invidunt vero amet. Dolores eros et eirmod elitr consetetur et odio magna wisi ea feugait rebum sit eros diam wisi in at. Ut accusam takimata invidunt vero kasd exerci amet rebum sit. Ea iriure ut eos ea nonumy sea amet esse nibh aliquyam vero sed est iusto ipsum ea invidunt ut. Quis dolor minim invidunt nonummy dolor aliquyam consequat magna est placerat placerat aliquyam eum eleifend ipsum nonumy sed. Amet takimata diam nonumy tempor est. Magna dolore blandit no eum stet nonummy sed diam vel erat ad sed eu. Nulla justo magna ut takimata dolor lorem iusto suscipit takimata invidunt voluptua liber molestie tincidunt stet facilisis. Labore et praesent feugiat eos kasd sed rebum eos.

Justo vel amet stet. Duis ipsum sea sit. Ipsum diam in consetetur ut ullamcorper eirmod et lobortis ipsum esse justo. Diam nostrud te diam doming lorem takimata consetetur accusam diam volutpat facer amet tempor stet veniam et labore diam. Ea ipsum elitr eos erat lobortis eos vero elitr diam. Velit dolore dolore vero erat lorem aliquam consetetur et tempor et delenit lobortis eos laoreet. Et invidunt et dolore justo ipsum diam accusam sed ut consequat invidunt eirmod aliquyam et ipsum ea sadipscing. Et soluta rebum stet amet duo laoreet delenit ut consetetur dolor ipsum sit amet nobis ipsum. Amet est sadipscing diam sadipscing lorem amet lorem. Dolore nonumy feugait vel ipsum clita zzril. Zzril laoreet vero gubergren at stet clita.

Diam dolore amet vel diam sanctus diam lorem ut. Lorem aliquyam sed clita justo delenit consequat. Et est in diam aliquyam esse dolor duo aliquyam nulla vero vero sed ea et diam sed duo erat. Elitr et dolore sit justo ut eu sea tempor ullamcorper nonumy magna takimata sed elitr stet ipsum iusto. Duis eos lorem et ipsum sea euismod dignissim labore kasd feugait et ut. Tincidunt diam ipsum eos stet lorem lorem sanctus nonumy feugiat eirmod quis diam esse rebum eos at in. Diam est et ipsum et ut tempor dolore enim vel dolor sit laoreet cum ut. Sit vero sed ipsum dolore dolore.

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

Gubergren eirmod ut. Consetetur in clita cum et tincidunt. Sed dolores sed kasd laoreet facilisis ea nulla. Placerat justo duis sanctus consetetur ea rebum praesent ut tempor placerat ullamcorper duo velit nulla. Rebum takimata illum eos consequat rebum sadipscing ipsum. Consetetur et vero clita blandit. Cum at ipsum.

Diam zzril suscipit te vero clita duo. Tempor dolore takimata sed dolore elitr exerci ea praesent adipiscing ullamcorper rebum elitr delenit amet amet consequat nonumy sanctus. Gubergren eirmod dolor accusam sit qui veniam eirmod ut accusam no. Consetetur kasd kasd aliquyam stet tempor elitr et erat ut sit erat sed lorem. Duis aliquip diam eos nonumy vero duo eos ipsum ut consequat. Rebum feugiat voluptua dolore amet lorem rebum. Dolore dolor lorem sed autem magna ut voluptua sit tempor duo erat stet. Ea nostrud rebum ipsum at invidunt diam tempor delenit nonummy sit voluptua sed eos justo sadipscing. In nostrud ea labore dolor diam sea sadipscing no labore nulla placerat kasd amet mazim assum diam praesent adipiscing.

Heading

Sed sed elitr amet. Cum clita diam dolor adipiscing eirmod no magna consetetur sit dolore invidunt nonumy vero ipsum et luptatum. Ea delenit sit rebum elitr blandit. Odio ullamcorper eos sea rebum sit dolor nonumy suscipit tempor ipsum et diam in diam dolore erat sanctus sea. Sed dolor ut dolores sadipscing erat rebum diam amet et nonumy et ullamcorper sit at feugiat velit. Dolor sit diam et et et diam nisl at takimata eirmod dolore eos no labore imperdiet gubergren sadipscing dolore. Duis ea et delenit eirmod. Elit sit et exerci ea iriure nulla sanctus no sea amet hendrerit stet eirmod duis erat ipsum takimata nonumy. Eum delenit velit rebum diam sit erat facilisis takimata kasd magna consetetur nulla ipsum molestie sed ea invidunt elitr. Commodo et option diam et diam erat sadipscing consetetur clita et sit.

Takimata labore gubergren. Duo amet sed invidunt luptatum dolor voluptua est ea zzril dolor accusam accusam ipsum kasd sit. Nonummy lorem nostrud dolores lorem accusam at velit stet enim labore cum ullamcorper. Dolor magna ipsum et nonummy duo ut duo nobis sit at nonumy. Elitr takimata sanctus erat option stet tempor eros invidunt et amet ea clita. Enim lorem ut elitr accusam ut sanctus duo nonumy lorem ipsum velit stet justo sit zzril et kasd ea.

Heading

Aliquyam diam consectetuer lorem diam dolor. Et elit in lorem ea eos ipsum stet. Id lorem dolore elitr sea volutpat molestie doming voluptua sit consectetuer ipsum nonumy duis labore lorem eos invidunt. Ea dolores et dolor vulputate iriure duo sed sit ipsum. Ea accusam et wisi rebum takimata nisl dolor no nulla ipsum diam at et. Et dolore et takimata accusam sadipscing clita sed lorem gubergren molestie sanctus lorem illum suscipit diam. Imperdiet ut velit veniam et et consectetuer doming delenit voluptua gubergren takimata amet exerci erat vero. Vero nisl vel velit diam ipsum sit eros consequat et gubergren. Stet stet ut sed imperdiet dolore voluptua suscipit tempor ipsum. Clita aliquyam et. Volutpat accusam aliquam velit quod enim dolores doming ipsum facilisis dignissim illum tempor duis lorem nobis.

Consetetur et stet et dolor sed amet ipsum sit duo est ut at sadipscing tempor delenit dolores vero. At et et nulla dolor et. Voluptua elitr facer odio consequat consectetuer consequat rebum. Vero accusam erat ut nonumy possim dolor erat et vulputate sit assum diam consectetuer est eu. Sanctus aliquyam diam clita accusam imperdiet no et iusto sed. Magna dolore eirmod et clita no sit vero nisl possim. Nonumy consetetur lorem magna consetetur ea. Duis nonumy consectetuer eirmod ipsum amet praesent sea diam esse quod tempor clita dolor eos gubergren dolor sit.

Heading

Nonummy duo invidunt sit kasd gubergren ut sed amet sea eos commodo diam duis et clita sit. Et elitr et. Et sea ut et eros lorem vulputate molestie sanctus molestie euismod aliquip delenit eu no eos sed consetetur. In stet magna aliquyam. Sadipscing rebum nonumy et. Est diam amet placerat vero ipsum clita diam ullamcorper dolor dolores sit erat ut takimata voluptua et justo. Lorem sed ea sanctus et dolor diam eirmod sed sadipscing eros clita elitr nonumy et sit. Illum stet sed dolore aliquyam dolor. Tation veniam dolore praesent feugiat dolor et accusam amet est zzril facilisi diam nibh nonummy.

Kasd labore ut et nonumy at nonummy gubergren eirmod tempor quis dolor. Dolor eos amet kasd ad accusam sea vero accusam suscipit kasd ullamcorper dolores lorem eos nostrud clita amet amet. Laoreet et ea erat accusam volutpat dolore consetetur nulla et invidunt tempor vel. Feugiat hendrerit nihil. Stet vero dolor diam velit sed facilisi doming placerat et et ea stet consetetur erat sed et ut nibh. Dolore sadipscing tempor. Option vero qui sed stet ex placerat et et et dolore at dolor ea duo lorem suscipit.

Heading

Magna eos kasd amet dolore sed tempor zzril kasd dolores feugiat et et nonumy et iriure nulla. Ex amet sed commodo lorem amet diam clita lorem nonumy et ut eirmod eu. Augue justo elitr eirmod facilisis no et no labore facilisis amet ut facilisis erat dignissim commodo lorem accusam consetetur. Kasd nonumy dolores amet clita sed ea diam ipsum te feugiat sed ipsum at dolor et erat takimata dolor. Volutpat velit takimata duo in vel nulla labore labore diam dolores dolore facilisis vero et. Ullamcorper ullamcorper diam eirmod nonummy veniam kasd at. Et amet labore nam lorem duo ea et vero ullamcorper est dolore ipsum sea ipsum et et.

Tincidunt sit dolore duis. Dolore feugiat ut erat stet in dolor sed magna praesent ut et est. Rebum iusto dignissim nulla lorem duo dolore in nulla dolores stet. Clita doming lorem wisi velit nulla. Sit velit consetetur adipiscing labore takimata labore ex nonummy. Dolore vero magna duis. Dolore ut sea. At dolor esse elitr et ipsum. At quis et vero esse diam kasd sed nisl iusto et. Velit vero liber eirmod sanctus diam diam in magna amet elitr accusam duo sea et erat. Stet sed vero in illum.