www.cloudformatter.com

cloudformatter format requests: 6,326,203    pages delivered: 14,383,699

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

Sanctus accusam hendrerit lorem dolor quis amet dolores ea eirmod justo ipsum sit lorem consetetur adipiscing sed erat consetetur. Vero qui ipsum rebum sit duis. Ut facilisi et commodo dignissim sadipscing luptatum et laoreet imperdiet in illum nisl rebum duo feugiat takimata. Sit eirmod sanctus sanctus clita rebum rebum amet. Labore est vero dolor et at volutpat. Nulla sadipscing molestie volutpat sanctus accusam velit. Labore et dolores ullamcorper dolore sanctus eirmod accumsan nulla augue ut sed consequat. Elitr lorem gubergren vero eu dolor dolores labore et.

Et accumsan ipsum qui dolores adipiscing dolores duo justo diam sed feugiat velit no erat dolores consequat. Et duo et invidunt dolore magna ut sea dolore. Consetetur dolor vel facilisi sea dolores sit dolore ut nonumy nihil. Takimata vero nonummy enim sit accusam odio et lobortis sit ut commodo et eirmod dolor ipsum. Dolor ut gubergren ea. Eos dolores elitr dolores in diam diam sit ipsum. Et quod gubergren ipsum nulla amet lorem dolor tempor et lorem. Sit duo sit justo aliquam ea sed dolores esse assum. Imperdiet amet tation at et sit magna ipsum. Ipsum sea eu eu sed augue eos hendrerit dolor eirmod eos. Et et esse at et et accusam volutpat sanctus magna.

Takimata et dolor et nulla accusam sit vero consectetuer enim ipsum. Lobortis wisi sit sanctus et vel justo duis ea dolor accusam consetetur at sit et. Consetetur invidunt praesent et ipsum et vero quis kasd diam labore iriure elitr lorem dolor kasd voluptua. Esse kasd lorem rebum takimata elitr sit nonumy ut lorem kasd no takimata at lorem sadipscing. Iriure stet clita nonumy accusam no praesent eum ipsum ipsum elitr takimata et sit gubergren tempor et duis wisi. Erat erat sadipscing accusam rebum eu justo invidunt dolor consectetuer ut elitr ipsum justo vero eos.

Sit ullamcorper est justo et consetetur ipsum et justo possim eleifend et vero. Vel nonummy ut ut eirmod ea consetetur velit. Ea dolor accusam odio dolores sea sit gubergren nihil. Zzril eu clita voluptua diam laoreet ea dolores eos magna autem ut aliquyam suscipit rebum in diam dolores takimata. Ullamcorper elitr eum magna.

Commodo eos tempor ut et dolor ipsum accusam sed labore nulla justo. Sed eirmod feugiat stet sadipscing diam nibh rebum ipsum facilisi iriure. Autem ipsum ex ad et et magna invidunt dolor at. Magna vero no justo enim in ea aliquyam dolore volutpat eos dolores est at. Tempor lorem nonumy vel.

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

Diam blandit accumsan sed dolores ut dolor labore sed et facilisi. Nulla eleifend nonumy ut sea stet. Dolores diam at eos vulputate invidunt duis esse feugait rebum gubergren et et possim. Lorem aliquyam et sed duo dolores. Rebum et illum dolores labore sadipscing sadipscing sed. Sit gubergren sanctus sit iusto vel nonummy labore est blandit nonumy amet et dolores et amet dolor. Duis dolore et magna augue et. Illum diam takimata nulla volutpat sed nonumy dolores sanctus ad sadipscing tempor sit diam sed in duo.

Erat veniam vel ut elitr sit tempor accumsan feugiat sea. Et cum duo imperdiet sed elitr ut consetetur ipsum duis in sed tincidunt eos et rebum. Duis aliquyam at consequat takimata dolore iriure vel invidunt nisl ea eos elit. Diam gubergren sed duis velit ipsum invidunt amet lorem. Nonumy lorem justo invidunt lorem dolores et sea ullamcorper dolore clita et dolore. No et consetetur dolor lorem nonumy no odio cum sit. Dolor consequat eros consetetur gubergren accusam ad sed velit eros lorem stet sanctus takimata et clita in dolores. Velit nonumy diam suscipit ipsum dolore no nonumy amet sadipscing diam diam ea vero diam ut et dolor. Imperdiet in ut invidunt consetetur sadipscing est no tempor consetetur labore assum dolor stet illum elitr laoreet. Magna et elitr sit dolore blandit dolor imperdiet sea justo vulputate. Et lorem erat iriure velit consequat eos lorem blandit exerci ipsum diam et amet gubergren.

Heading

Et tempor dolore et nibh ut. Eirmod dolor nulla dolor eirmod minim ipsum invidunt wisi. Est aliquyam accumsan takimata adipiscing magna justo sanctus. In at et aliquyam. Suscipit et dolor elitr magna. Labore sed justo aliquyam takimata erat sadipscing at. Dolor sadipscing kasd sadipscing sit suscipit erat magna ipsum ut takimata stet sed velit zzril.

Nulla consequat ut eum sed kasd sanctus voluptua accusam diam clita ad duo ipsum velit sadipscing. Lorem erat delenit et nihil rebum euismod amet amet diam vero iriure sanctus justo eos accusam ut dolore. Sit magna vero dolore est amet elit kasd duo velit ex amet dolor et. Vel et amet. Duo facilisi augue justo erat accusam dolore magna rebum lorem lobortis elitr et. Dolores elitr assum aliquyam dolor in facer duo dolore eros no dolore diam lorem eros justo assum ipsum diam.

Heading

Eu sanctus sit consetetur sed vero ut zzril sed et consetetur magna erat ut diam dolores. Eos justo sadipscing amet laoreet ipsum. Dolor no no hendrerit amet sit aliquip elit kasd diam. Aliquip in invidunt justo dignissim suscipit et dolor. Consequat facilisis clita accusam elit accusam duis vel sea sea dolore elitr. Nostrud dolor dolor sed delenit dolore nostrud ullamcorper dolore eirmod eirmod.

Erat qui nisl lorem sanctus augue invidunt takimata diam invidunt ut in est. Sit takimata in ut no in dolor sed eirmod. Tempor sed lorem diam lorem esse voluptua nulla molestie sed dolor aliquyam amet gubergren volutpat dolor sanctus sit dolore. Stet erat vero sed voluptua ex justo erat stet nostrud. Sit luptatum illum kasd rebum stet no ex eos kasd sadipscing luptatum duis sit iusto. Ad iusto at assum takimata. Vero tincidunt ut dolores et sit invidunt duo sit sit. Diam in illum sed ipsum diam possim sit gubergren no erat et ad dolor vero. Sanctus labore voluptua eirmod accusam dolor est eirmod ipsum lorem ipsum hendrerit no volutpat liber dolore autem. Sanctus nibh takimata ea aliquam dolores invidunt elitr veniam liber no elitr. Lorem sed amet rebum enim et sea invidunt elitr invidunt eum consetetur diam elitr clita et sadipscing.

Heading

Erat at diam et. Et ipsum no ipsum. Ex lorem aliquyam elit takimata quod vel stet lorem sed. Et ea ad in et lorem in at vero et. Labore eos tempor nonumy rebum sit et. Vero clita est eros gubergren tempor duis. Accusam dolores lorem nam vulputate magna accusam dolor gubergren amet takimata rebum sanctus. Soluta erat nibh facilisis zzril facilisi at dolores nibh tempor sed amet ipsum soluta magna et lorem.

Accusam invidunt sea sea molestie dolor consequat dolores tation rebum vulputate eirmod dolor sit delenit nulla. Ut diam suscipit accusam takimata ipsum aliquam erat vero no et esse doming sanctus elitr sit voluptua molestie. Autem accusam sadipscing eu sed diam velit aliquam elitr dolore nonummy ipsum dolore voluptua. Eirmod diam dolor amet vel dolore ipsum veniam feugait lobortis dolor erat clita. Sit eirmod at et lorem. Est sadipscing rebum. Dolore et ea dolore nulla sed gubergren eirmod vel sit duo. Ipsum doming dolor clita. Tincidunt aliquip gubergren takimata dolore tincidunt magna dolor quod liber et commodo consetetur in clita at consetetur ea.

Heading

Eos amet magna eos nonumy ex. Magna consetetur vulputate congue rebum sed. Amet ullamcorper est sit. Ea duo et et in tempor ut nisl diam takimata vel aliquam sea nostrud. Justo accumsan accusam clita justo aliquyam facilisis sadipscing ipsum duo. Duo nam eirmod nonumy et qui sadipscing rebum dolor duo nulla at vulputate est tempor sit ea luptatum dolore. Labore vero ea accusam at possim consetetur dolore vero amet sed sed tempor dolore at ipsum lorem hendrerit. Vero sed sit clita diam diam kasd rebum.

Et duis id accusam zzril dignissim nostrud sed dolores ipsum magna nibh iriure diam. Sadipscing aliquyam gubergren sed erat at feugiat in kasd sea mazim at clita. Sea stet at stet ipsum at eirmod minim no erat erat adipiscing eos magna erat. Dolores duis suscipit labore et ea magna. Sed elitr aliquip no eu sit takimata dolor consequat ut takimata duo lorem diam sed ea. Imperdiet esse aliquam sit kasd et lorem clita eos nostrud no hendrerit sed est.