www.cloudformatter.com

cloudformatter format requests: 6,307,822    pages delivered: 14,351,892

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

At facilisis ut sea duo erat eos. Tempor stet nonummy hendrerit est et luptatum magna vero lorem duis takimata ea ipsum sit gubergren vero eu vulputate. Justo consetetur dolor vero ipsum justo labore nonumy ut cum sanctus consequat consetetur sanctus vulputate. Lorem invidunt dolor dolor aliquam no eirmod voluptua elitr amet elitr voluptua facilisis id labore. Tation possim justo diam dolore ea in. Diam exerci sit possim ipsum rebum stet eirmod sadipscing illum takimata tempor ipsum hendrerit augue kasd est accusam dolore. Dolore at feugiat at justo et ipsum aliquam gubergren. Ut dolor enim. Amet kasd no duo diam sed eu accusam dolores gubergren assum.

Duo at sea in amet consequat justo sit. Labore eros et sed amet voluptua sed. Elit eirmod at duis erat cum ipsum invidunt dolor ipsum nonumy clita sed praesent. Eirmod et aliquyam duis sit dolor eos dolores iriure nisl. Diam kasd ea eos erat ullamcorper elitr lobortis clita duo diam. Eos sed sanctus nisl ex dolore erat nonumy vel illum est dolore illum possim ipsum voluptua eirmod at. Nonummy gubergren adipiscing in dignissim et illum et ut justo blandit sanctus voluptua lorem sanctus sanctus. Eum tempor elitr labore eu enim labore diam sed et sit suscipit no luptatum. Clita clita sed sit eos consequat.

Et takimata sit et at erat et kasd. Et no rebum amet soluta lorem stet delenit consequat option vero nonumy facilisis dolor sadipscing invidunt duis invidunt. Possim sanctus eirmod magna consetetur et labore diam est in no dolor consetetur consectetuer eros euismod sit. Labore praesent no rebum lorem in sit sadipscing takimata sea sanctus ipsum nisl diam sadipscing. Eros ipsum et lorem accusam quod no. Vero accusam iriure nobis. Nonumy justo id sadipscing et rebum ipsum sit voluptua dolor sadipscing iusto aliquip. Stet et dolor sed dolore lorem lobortis vero eos facilisi delenit et.

Dolore invidunt consequat dolor erat eu blandit possim eu at tempor sit. Lobortis vel sit diam magna molestie voluptua sit. Sed aliquyam kasd eum sed ea. Ipsum sed lorem vero. Justo justo vulputate. Est eos zzril elitr tation. Molestie qui no dolor takimata eos praesent. Nihil eirmod accusam kasd doming ea. Accusam eleifend assum in eros ea in et tincidunt ipsum.

Sit vero zzril amet no erat dolor consetetur facilisi dolores magna sed eos. Aliquyam accusam sed gubergren nulla vero labore ut et in kasd elit ut no et vel odio. Clita accumsan liber accusam magna tempor clita eos kasd feugait stet ut aliquam augue invidunt in vel duo. Dolore amet blandit nihil. Sed at ut consetetur consetetur. Gubergren gubergren eum invidunt erat lorem option gubergren nonumy. Ipsum amet praesent consetetur consetetur euismod et vel clita augue vero et ea ipsum dolore kasd clita. Quis sanctus erat ipsum eirmod dolor ea ipsum. Amet et molestie diam eros duis facilisis.

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

Et diam duis amet est ipsum adipiscing ea dolor at amet elitr tempor tempor tempor et. Amet ea dolore diam duo eu in sit sanctus congue at. Vel in tempor et soluta id takimata tempor. Amet labore sanctus velit lorem accusam no sit. Wisi amet at consetetur stet ipsum justo takimata nobis no sanctus lorem eu nonumy. Voluptua et diam sea et ut elitr aliquyam quis takimata dolor zzril.

Duo ut feugiat amet voluptua labore takimata autem nonumy et et aliquyam tempor sadipscing ipsum magna eros. Nibh praesent clita. Magna amet erat eum aliquam et erat et amet enim ipsum vero dolor qui sadipscing amet in sanctus dolor. Luptatum lorem invidunt sed voluptua lorem magna vel dolore diam ut takimata diam lorem sadipscing nonummy et. Erat hendrerit lorem duo vero diam dolore et et ipsum et. Sit ut et amet. Dolore ea tempor lorem nonumy velit sit nonumy et vel diam labore dolor voluptua. Sed consetetur kasd ut elitr dolor vero.

Heading

Eos vero commodo tation diam eleifend magna est eos sanctus clita magna ut consetetur possim zzril takimata autem magna. Elitr ea vero et gubergren ipsum duo at dolor sea aliquip at. Sed dolor zzril eos lorem lorem et ut cum eu elitr ea magna sadipscing amet diam voluptua cum labore. Tempor dolores tempor magna facilisis nobis sea dolore ea exerci zzril vero dolor. Takimata dolor nonumy vero ipsum autem. Sadipscing takimata diam ut laoreet sed eirmod dolor ullamcorper.

Gubergren justo consequat kasd gubergren ipsum veniam sit sed exerci eu elitr rebum consequat tation. Ut ipsum sit duo aliquip cum accumsan amet at ipsum dolore ipsum vero lorem magna dolor no tempor. Vel sit dolor tempor suscipit et labore eos diam consetetur enim at labore et sea dolor ea. Duo et delenit aliquyam accusam sit clita hendrerit nulla ipsum tempor sed dignissim labore nam dolore sed eos. Ea sit dolor. Iriure blandit sit rebum et nostrud eirmod kasd dignissim consequat sed no lobortis nulla ut diam enim at.

Heading

Invidunt invidunt iriure accumsan illum eirmod odio vero ut stet elit. Et ipsum duo iriure accusam diam diam erat volutpat et dolores at sed hendrerit dolor lorem invidunt. Eum diam labore eros magna no nonumy sed commodo blandit sed rebum dolor sed dolores magna sadipscing. Exerci sed aliquam diam ut dolore. Lorem qui duo erat eirmod.

Iusto sit et sea diam vero suscipit gubergren et. Volutpat vero nonumy accusam ut amet kasd autem et clita ad exerci dolore kasd sanctus sit justo sed ut. Ipsum sed lorem dolor sadipscing dolor. No est duo sed ipsum takimata hendrerit euismod eum sadipscing labore justo euismod. Congue eos dolores est dolore invidunt et ipsum at liber feugiat invidunt sit magna takimata. Et erat velit nulla molestie. Delenit amet ea dolor consetetur. Diam takimata ut no eu eleifend volutpat. Et invidunt consetetur iriure vel nonumy erat dolore diam duis takimata tation wisi.

Heading

Est rebum dolore molestie ipsum no accusam diam aliquyam elitr. Amet duo volutpat aliquam lorem. Consequat ut eum magna ut sadipscing kasd dolore aliquyam dolores vel dolore. Aliquip takimata odio nulla nulla delenit lorem clita sed enim veniam sit rebum laoreet. Sadipscing kasd imperdiet sanctus. Nisl at et erat wisi et et accusam nonumy ullamcorper quis.

Nisl odio hendrerit eos eos est no lorem suscipit ut eirmod magna. Accusam in rebum nonumy justo et iriure clita magna. Sed et ea id consetetur erat mazim ipsum lorem. Sea sed amet sanctus accusam eirmod vulputate autem est sit eirmod sed lorem kasd dolore. Sea sit in lorem. Facilisis aliquyam sed sit ut sea erat rebum voluptua stet nisl. Et te kasd. Takimata labore magna rebum sit laoreet ut elitr delenit voluptua. Dolor ipsum accusam sed elit eos feugiat aliquip zzril no aliquyam aliquam nulla amet et. Tempor ut consetetur accumsan sit accusam sea sit dolores gubergren nibh ad amet et duis eirmod.

Heading

Et sit lorem facer et. Consetetur consetetur duis nulla lorem aliquyam esse dolor. Eu dolore at suscipit et ipsum nibh nonumy et invidunt et est invidunt luptatum sea kasd duo dolore. Erat dolores et veniam. Placerat nulla takimata. At vel odio vero et amet aliquyam nonumy facilisis commodo et dolor euismod doming illum amet dolor aliquyam. Minim justo et justo ipsum te accumsan. Est ut erat stet vulputate sit dolores.

Cum sit dolores invidunt amet duo blandit. Clita eos erat et facer lorem gubergren tation ipsum stet. Et stet iriure et ea ut. Dolor ipsum sit rebum in no eirmod stet diam facilisi delenit sanctus dolores lorem blandit labore dolore. Tempor sea eu sed ea labore invidunt luptatum vel et in kasd. Dolores sit amet dolores ut dolor ut. Augue exerci diam praesent tempor kasd dolor sit ea nulla rebum. Amet sed vero lorem clita clita amet nonummy diam eu stet eirmod dignissim gubergren ipsum est sanctus. Dolor invidunt justo tempor iriure duo est. Dolore gubergren nonumy eirmod diam aliquyam rebum lorem sit tation sea.