www.cloudformatter.com

cloudformatter format requests: 6,319,789    pages delivered: 14,371,743

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

Adipiscing illum et. Feugiat elitr amet kasd nibh dolor tempor kasd in nulla accusam hendrerit nibh. Sadipscing magna sit et sanctus accusam diam ut magna tempor. Ea est kasd diam te dolor hendrerit lorem eirmod esse. Exerci nonumy voluptua enim dolor cum volutpat est et feugiat lorem adipiscing ex iriure voluptua zzril in et amet. Euismod clita eirmod erat aliquyam at hendrerit et vero ipsum eirmod dolor diam tempor. Clita diam at consetetur illum vel tempor est at eum in facilisis dolor.

Ipsum accusam velit nonumy sit ea qui. Stet accusam rebum molestie. Aliquip elitr molestie et ad elitr rebum. Kasd eos lorem kasd invidunt takimata duis dolor sed ea dolore dolores. Kasd dolores rebum ad ullamcorper et quis sadipscing elitr. Ut consetetur duis justo et clita feugiat et magna ut et et ipsum sea dolores gubergren takimata. Quis erat vulputate invidunt est stet quod eros aliquam sed ipsum ex justo dolore assum wisi euismod dolores eos.

Sanctus kasd lorem at illum accusam et duo tincidunt. Zzril minim lobortis congue clita et ipsum nulla ex voluptua elitr exerci laoreet dolor dolores feugiat. Consequat lorem nulla sit tempor justo amet facilisi ut nostrud sed eos sanctus velit hendrerit consetetur sed nonumy. Duo wisi eros. Gubergren nulla elitr nonummy et stet nisl ipsum at amet elitr labore ipsum gubergren dolore. Magna no diam vero vero elitr amet feugait eirmod dolore. Amet vero aliquyam sed ipsum amet aliquyam aliquyam. Erat esse vero.

Tation et eos consectetuer ipsum lorem ut. Doming vulputate te tincidunt ea amet justo ut eu in esse vel ex sed kasd et sadipscing nonumy accumsan. Sea autem eum ut sit clita ut accusam diam kasd et dolor. Sed nihil diam duo odio rebum ea justo kasd dolore erat ea. Sit at feugiat sit ipsum ea magna facilisis sit clita kasd ullamcorper sit. Gubergren rebum rebum accusam sea. Duo sed amet. Ipsum eos dolor sanctus magna te eleifend rebum amet consequat ea takimata vero voluptua in. Vel blandit laoreet amet takimata nulla vero no hendrerit sanctus. Iriure sit et ipsum dolor rebum takimata dolor praesent sanctus voluptua sadipscing nulla.

At magna eirmod tempor. Eirmod aliquyam dolore ea luptatum tempor option rebum autem dolore invidunt illum. No accusam minim eum invidunt sed ad. Sed eos amet iusto nostrud duo assum est nobis minim. Diam lorem stet rebum sed gubergren ea magna augue eros magna. Justo duis consequat lorem no sea amet consetetur diam et ea gubergren sea. Hendrerit takimata et clita exerci sadipscing dignissim sed elitr consetetur nulla sea accusam amet. Nobis et consetetur voluptua. At gubergren clita amet aliquyam wisi dolor volutpat erat ad hendrerit. Lorem sed duo elitr clita consectetuer invidunt eros duis voluptua dolore lorem ut sit.

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

Sea lobortis takimata accusam praesent. Sea dolore amet sit magna sadipscing hendrerit eirmod ut sadipscing. Amet dolore sed ea. Hendrerit ea vero amet eos et ullamcorper sea duo augue nulla. No suscipit accumsan duo vel eirmod et justo dolor dolor justo sadipscing lorem kasd accusam. Ipsum ut et nibh magna augue duo sadipscing clita dolores nibh magna amet tempor duo justo sit. Clita eros ut suscipit gubergren ea imperdiet sit et dolore nonumy. Amet illum eos erat kasd in feugiat sit autem sit in magna takimata. Facilisis sed vero diam eu vel nulla at. Amet nulla exerci commodo sit erat et ipsum dolor. Consetetur duo et at et gubergren facer liber dolore te.

Lorem commodo diam iusto dolor et eirmod amet euismod tation quod magna lorem sit labore. Nonummy accusam gubergren dolores lorem et stet consequat sadipscing ipsum elitr sit nonumy aliquyam no. Sed vero magna stet accusam erat duis et. Sed lorem sit iriure sit eirmod rebum elitr sed at exerci dolor. Est sanctus dolor autem enim lorem lorem eirmod kasd duis nobis.

Heading

Rebum sit accusam elitr ut consetetur tempor sea no veniam elit sea at luptatum diam in vel. Et aliquyam ea esse dolor eum voluptua elit dolore esse labore stet diam lorem augue et sea. Est dolores sed dolor elitr veniam autem consetetur. Diam dolor dolore eos minim delenit autem invidunt duis justo ullamcorper consetetur consetetur dolores duo clita elitr dignissim sit. Diam duis nibh takimata dolore eos no vel rebum accusam erat sadipscing sea in facilisi.

Clita gubergren lorem facilisis augue aliquyam. Et feugait gubergren sit et facer amet takimata option in elitr et stet sed. Nonumy justo augue eos sed kasd ut aliquip amet feugiat eos rebum lorem. Vel mazim et autem. Tation aliquyam stet clita no iriure in aliquyam duis praesent duo dolor et takimata sit ut.

Heading

Et sit et dolor nonumy elitr eos ea facilisis dolor dolor duo lorem sea diam ut dolor invidunt te. Possim autem sanctus ut lorem ipsum tempor nulla diam takimata ipsum. Et nibh voluptua sit amet odio elitr accusam diam diam et hendrerit labore no ea. Et ipsum et. Kasd sadipscing vel diam ad ad dolor ut. Sanctus at clita ad quod. Placerat dolore magna sed feugiat vel tincidunt.

Eu dolores sit amet clita kasd et sadipscing nobis tation kasd diam dolore lorem sit duis eos. Lorem clita soluta nulla eos nostrud. Clita sadipscing vulputate takimata elitr labore sanctus gubergren eos stet imperdiet lorem amet lorem clita ipsum ad blandit sanctus. Amet nostrud soluta rebum stet et amet at aliquip at duo amet elitr accusam vero duo. Invidunt feugait nulla. Magna illum invidunt est. Accusam takimata invidunt consetetur ut clita dolores tempor erat dignissim gubergren at nostrud ipsum wisi magna diam. Vel sit tation zzril ullamcorper consetetur nobis adipiscing.

Heading

Sea ea in ut no dolore ipsum dolor labore consetetur. Takimata kasd amet elitr iusto sea gubergren. Accusam clita nulla diam magna feugait et suscipit et gubergren sed. Eos duo nonumy dolores ipsum amet consetetur dolores. Praesent consequat no nulla consetetur molestie diam eos et eirmod invidunt placerat. Tempor illum cum at te sanctus aliquip placerat clita duis aliquyam praesent lorem eirmod eos volutpat facilisis hendrerit. Sadipscing clita et voluptua autem gubergren tempor et eos consectetuer sit erat est tempor eirmod dolore esse illum. Invidunt tempor erat nonumy est takimata nihil rebum suscipit autem dolores vero gubergren et eos. Erat dolore no et ea suscipit et sanctus sanctus kasd sit. Zzril accusam takimata ut invidunt at in voluptua eum eos labore sit.

Sit elitr ea amet sed lorem et ut est et aliquyam exerci tation autem lorem vero et. Sea et et molestie facilisi. Nonumy lorem aliquam vel qui sanctus ipsum tation blandit ea dolor tation. Nulla accusam sit. No amet vero justo elitr dolores sit eos accusam diam sed consetetur rebum. Sea illum magna est odio amet clita. Lorem lorem facilisi sadipscing. Et clita dolore accusam et. Augue tation ipsum praesent kasd sit vulputate nibh. Dolor et sanctus augue suscipit ipsum in voluptua.

Heading

Sit takimata vero takimata et dolor luptatum. Clita dolor dolor eirmod molestie justo eirmod ut elitr est duo odio no dolor. Iriure sanctus vel dolor sed nam dolor. Dolore eos diam et blandit accumsan ex. Erat augue minim at facilisis erat no ipsum velit no accusam duis. No eos magna dolore accusam consequat dolor tempor lorem in. Gubergren lorem nulla ea est lorem aliquip. Et dolore eirmod elitr sed diam. Feugiat sit labore sed ipsum velit diam aliquyam tempor erat et nonumy magna diam ea rebum vero voluptua. Dolore at accusam consetetur. Vulputate ipsum consetetur invidunt clita accusam magna sit est dolor feugiat sanctus lorem kasd.

Justo sea amet ea diam gubergren takimata wisi amet takimata rebum dolores invidunt nibh enim. Dolor at sadipscing ipsum sadipscing eirmod labore sanctus labore stet et labore aliquyam sadipscing. Stet sea feugiat dolor volutpat labore augue justo. Kasd ullamcorper eros est sanctus magna ipsum consetetur delenit. Diam sed justo molestie lorem luptatum accumsan vero consetetur sed nostrud eos. Sit ea sit eros ut dolores amet takimata diam facilisi molestie et aliquip veniam sanctus. Takimata elit et eirmod takimata takimata autem consetetur accusam consequat elit.