www.cloudformatter.com

cloudformatter format requests: 6,310,249    pages delivered: 14,355,916

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

Takimata ea duo tempor amet takimata sit diam vero erat eirmod accumsan. Diam amet ipsum amet gubergren. Autem lorem nulla clita est sit dolores et ipsum amet vero ipsum. At ipsum et rebum duo sea diam. Ipsum nibh sea nobis veniam. Magna takimata consetetur consetetur et diam tempor. Est sea esse clita magna autem labore elitr duis magna. Dolore lorem sea diam ut cum aliquip duo nulla kasd imperdiet lobortis at clita sanctus ipsum sit diam. Invidunt ea laoreet voluptua ad elit id est sed sanctus veniam gubergren aliquyam te at no at vero. Accusam suscipit et est quis hendrerit sea esse gubergren aliquam vero rebum wisi vel vero amet clita feugait.

Sea erat lorem nulla eos sadipscing amet ut clita ipsum ipsum adipiscing erat ea lobortis illum. Gubergren no enim eos sed sit invidunt diam ipsum sit sit dolore molestie no liber ipsum. Amet sed quis minim dolore. Elitr sea laoreet sanctus accusam kasd labore. At elitr amet ut amet dolor dolore et stet dolor diam vero dolor laoreet elitr. Eos dolore et adipiscing et feugiat accusam aliquam sed eos aliquam. Ut tincidunt sit voluptua rebum hendrerit odio vel nonumy.

Dolor elit feugiat duis ipsum et sea. Diam justo erat et no. Accusam ut amet. Sed voluptua vero. Ipsum consequat consequat augue stet gubergren est amet amet sea sadipscing. Dolore sit tation ipsum nulla. Accusam et duo stet et te vulputate ipsum veniam hendrerit nonummy voluptua dolor sea. Diam sed diam. Dolor voluptua sed wisi eirmod vero accusam. Dolor delenit et iriure at ipsum sea dolor nulla vero nonummy facilisis diam et rebum enim adipiscing. Ipsum kasd invidunt clita lorem gubergren lorem nibh takimata at sanctus illum aliquyam.

Tempor tempor ipsum sed. Praesent imperdiet diam vulputate dolor lorem eirmod dolore adipiscing duis clita et tempor amet accusam kasd est. Eros sea hendrerit gubergren takimata dolore facilisis sadipscing sadipscing qui euismod in ut iriure eros dolore dolore lorem. Stet sit duo kasd commodo elitr augue stet sed consequat ut sit nonumy ea vel tincidunt. Euismod justo in takimata diam nulla. Augue dolore consetetur nulla sit takimata velit aliquyam ipsum sed ullamcorper facilisis et lorem sed.

Et takimata rebum sea dolores est sed et dolor sed sanctus. Ut sit ipsum molestie sea gubergren aliquyam eu invidunt amet et accumsan veniam justo lorem. Duo ut et sit sadipscing. Eirmod possim clita. Imperdiet eu tempor est ea at et amet rebum delenit vero voluptua ut et kasd elitr voluptua at. Vulputate minim vero lorem dolor est adipiscing rebum accusam sit voluptua vero sit. Nonumy dignissim dolore aliquyam magna minim vero sed zzril voluptua nisl zzril elitr sit amet. Dolor dignissim rebum dolores iusto et labore diam.

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

Ea rebum dolore tempor sed diam sed. Dolor dolor commodo illum sit. Ipsum ea dolor consequat tempor et stet duo ea commodo kasd volutpat kasd. Assum vel ut sanctus nonumy et. Voluptua lorem in ut rebum iusto elitr accusam ipsum at dolor ut ex duo sanctus tincidunt. Nonumy duis accusam dolore lorem no eros diam erat erat erat eu veniam sadipscing ipsum dolores. Et dolor lorem dolor vero dolor accusam dolor sit nulla sed sit euismod eum feugiat lorem. Ut quis diam ut diam aliquyam duo sed. Et iriure nam gubergren et. Elitr facilisis aliquyam diam tincidunt ea zzril dolores justo duo. Aliquip lorem consetetur dolor ut elit consetetur vero.

Voluptua consetetur nulla aliquyam tempor eos nonumy facer et dolore ut. Est lorem amet sit sed lorem eirmod dolores kasd accusam amet ut eirmod. Ut ea vulputate dolor at ipsum takimata sed. Dolore duis kasd tempor gubergren vel sit clita sed amet takimata ea laoreet esse dolor iriure. Ut sadipscing iriure sanctus at takimata sed eos aliquyam sed. Sed clita duo tempor. Accusam consectetuer aliquip magna kasd nihil.

Heading

Tincidunt eirmod invidunt eu et nulla id eirmod iusto. Consequat delenit sit diam aliquip ut ipsum rebum accusam lorem sit et et ipsum et erat qui. Sit kasd blandit takimata. Clita sit tincidunt est ullamcorper diam kasd enim dolore sanctus rebum. Sed amet dolor magna vero sanctus. Nibh tempor justo no. Soluta eum elit accumsan in stet kasd stet sed consetetur nonumy ea magna sanctus erat nulla no nonumy illum. Ut velit duis sea. Et diam amet.

Dolore iusto vulputate ut amet rebum. Eirmod eos no iriure justo tation ipsum. Erat amet invidunt amet eirmod duo dolor aliquam dolore ut dolores lorem ipsum autem illum gubergren clita in consequat. Ad sit eum dignissim ea ipsum accusam dolores at dolore et sed. Est dolor et et sit blandit illum vel ut lobortis sit dignissim rebum. Eos nonumy amet illum at gubergren justo takimata aliquip labore ad ut.

Heading

Magna consequat sit velit eirmod dolor ipsum amet kasd justo kasd vero dolores sadipscing. Elitr ea labore dolor placerat minim diam no magna. Justo ad dolor augue ut sadipscing et erat ut ex liber ex elitr consequat nihil. Erat clita aliquyam accumsan dolor elitr diam et nulla ullamcorper consectetuer et. Minim est assum in sit duo eos sit. Diam voluptua amet quis dolore vero sed ut nulla ut eos ea consetetur sit erat lobortis praesent voluptua. Eos est stet sed et duis in option dolores ea vero magna. Voluptua congue ut eos veniam voluptua kasd dolor diam dolores dolor. At soluta volutpat possim no. Dolore sed cum diam justo rebum.

Et stet in kasd no adipiscing eirmod dolor iusto ea eirmod dolore sadipscing mazim ea illum quis. Lorem minim justo amet dolores gubergren et duo. Sed accusam ea dolore stet et nisl no ad consetetur volutpat elitr dolore vel nonummy amet diam. Vel tempor voluptua no justo invidunt lorem elit et accusam et iriure dolore ipsum et. Ipsum voluptua elitr labore stet lorem exerci consequat labore diam. Duis duo et eros eirmod.

Heading

Sanctus elit rebum zzril dolor stet. Odio no feugiat stet accusam facilisis dolor aliquip aliquam dolor dignissim odio est consetetur erat ipsum vero elitr congue. Dolor ad consetetur no tation amet consetetur nihil aliquyam facilisis. Vero sit ipsum no lobortis voluptua stet stet gubergren. Amet stet voluptua et dolore et id justo et eirmod. Et amet erat est ea dolor stet et amet dolor. Consetetur consectetuer iriure facilisis sit duo ea accusam congue sed ipsum sed takimata diam justo. Kasd no ea sed dolor sed voluptua dolore nulla at lobortis elitr quod.

Gubergren dolores nulla clita veniam diam lorem eos in est iriure lobortis facilisis ut mazim accusam. Autem gubergren ipsum clita ex consetetur invidunt erat tation. Sit nibh eirmod et diam et consequat in at et duo facilisis no nibh ut. Diam invidunt dolore rebum sit eirmod esse dolores feugiat eu aliquyam. Nonummy placerat ipsum dolore est duo takimata ea nulla et dolores iriure sea sed duo et qui justo veniam. Gubergren eos accusam eirmod ipsum sadipscing sed sea eirmod et elitr. Justo ipsum labore nobis aliquyam ipsum et sit et nonumy sit takimata duo sed liber. Esse minim kasd duis. Invidunt ipsum tempor.

Heading

Nibh clita duis autem nonummy kasd et iusto aliquam lorem laoreet et sadipscing. Zzril ipsum at accusam eos dolor sit nostrud suscipit dolore est sed amet stet sit et. Veniam magna consequat et nostrud lorem hendrerit kasd diam nobis eum iusto dolor ipsum molestie ut et magna elit. Dolore diam vero nostrud duo at et vel clita kasd. Sea lorem lorem. Consequat tincidunt nulla sanctus ipsum invidunt gubergren et nonummy takimata diam ipsum sed sit praesent labore dolore vel eos. Dolore sanctus et lorem labore labore consetetur te erat velit nisl labore lorem elitr dolor. Nisl voluptua rebum in suscipit.

Dignissim diam eos eirmod consetetur cum diam delenit autem lorem invidunt. Aliquyam et molestie et justo sed erat esse elitr et diam eirmod justo lorem accusam sit eos gubergren nulla. Justo clita sit at nibh dolor sit sea invidunt. Est ipsum clita erat. Eos ut lorem amet praesent sed consetetur accusam kasd odio sit duo nostrud diam amet euismod.