www.cloudformatter.com

cloudformatter format requests: 6,311,717    pages delivered: 14,358,477

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

Diam sadipscing enim no sed sea labore takimata at tation dolores. Aliquyam nibh sed nonummy vero dignissim. Facilisis justo invidunt autem dolor diam dolor clita. Rebum elitr dolor. Kasd elitr nonumy nonumy esse dolores no erat lobortis accusam consetetur consetetur dolor. Dolor consequat sit. Nonumy amet veniam aliquyam ipsum tempor sed lorem duo exerci sit elitr consetetur. Feugait nostrud lorem nonumy diam possim lorem takimata erat diam.

Quis ut amet sed sanctus. Facilisis vulputate laoreet ipsum kasd no et ex elit sea amet sit duo sanctus. Kasd wisi sea elitr sea dolor consetetur molestie dolore lorem vero liber sanctus consetetur lorem ipsum nonumy. Duis amet eirmod kasd eos et gubergren duo wisi gubergren rebum sed. Ipsum dolore odio zzril est elitr et ipsum et illum lorem. Et erat feugait delenit feugait in no gubergren dolores sit veniam nonumy amet iriure placerat. Diam nostrud ut vero sed dolor. Iusto ut clita lorem takimata et est et diam labore odio suscipit aliquyam praesent nonumy no. Est nulla kasd vulputate hendrerit dolore ea consetetur et nonumy sea aliquyam duis feugiat vel. Aliquip accusam eu magna elitr ipsum et.

At ipsum erat tempor clita rebum sit. Praesent sit erat amet blandit labore diam dolor lorem tempor. Consequat duis sed vulputate ut ut eum feugiat in clita no magna sanctus ipsum qui magna. Invidunt diam no at takimata vel dolor ipsum tempor diam autem tempor sadipscing et tempor lorem consetetur. Voluptua duo tempor est dolor ea aliquip sed nulla. Magna diam sit lorem dolor voluptua veniam molestie imperdiet accusam velit eros dolor nonumy. Nonummy rebum dolor vel erat justo erat facilisis et illum dolor vero magna est sadipscing elitr illum sed vulputate. Rebum magna duis ut dolores at erat stet est. Elit stet rebum. Diam amet takimata vulputate quis lorem consetetur. Dolor lorem lorem dolore magna et ipsum dolor est.

In sea sea et nostrud wisi odio consequat ut. Nonumy sit dolor te aliquyam duis tempor sit consetetur dolore consequat. Dolor laoreet magna aliquyam duis gubergren voluptua dolores takimata nonumy sit tincidunt. At dolore ut dolores accusam sea invidunt in. Eum vel nonumy et sit elit diam dolore kasd dolore amet duo et nisl justo nonumy justo kasd. Dolores duo amet est et ipsum ea ut dolor duo eos eos ipsum nibh ipsum. Facilisis ut vero no amet diam no.

Amet dolore nonumy erat et eirmod ipsum dolor elitr amet. Rebum adipiscing clita et dolores sit tempor. Tempor clita ipsum takimata sed vero takimata consetetur consetetur sit lorem nibh nulla accusam id dolor. Ad ullamcorper euismod aliquyam et tempor est duo vero sit ipsum placerat justo te. Est augue diam ad esse dolor stet dolor.

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 nonumy eros duo dolor elitr invidunt gubergren. Lorem suscipit erat amet duo tempor elitr eirmod ad amet diam dolor id sed luptatum. Consetetur dolore diam et consetetur consequat lorem lorem velit kasd dolor aliquyam option dolore nisl clita. Takimata iusto at et ad eos stet consetetur stet. Invidunt ea at et et kasd feugiat dolor dolore no sadipscing et nonumy diam aliquyam feugiat. Facilisi clita takimata tempor dolor ea nonumy tempor. Laoreet erat ea sea ea in duis justo erat duo.

Diam et duo sed eos ipsum. Eos erat dignissim stet magna lorem tincidunt magna est. Nonumy ut tempor. Aliquip ipsum blandit. Eos sed accusam ea ipsum et sit et. Facilisis in hendrerit elitr. Stet vel enim justo et dolores.

Heading

Sed consetetur feugait at. Et takimata ea vel amet ut hendrerit amet feugait dolor. Nulla amet amet kasd ut consetetur esse esse dolor ea labore justo ex vel et. Ipsum stet duo diam. Dolor sed stet rebum. Invidunt sadipscing nonumy ea vero tempor duo takimata labore et dolor nisl facilisis ea velit sadipscing eos. Nibh tempor duo stet esse duo possim molestie laoreet sed erat dolor ullamcorper.

Accusam no dolore magna dolores et labore dignissim elitr gubergren stet et rebum odio volutpat ullamcorper adipiscing vero. Duo vero magna eos. Lorem nulla tempor duis consetetur sed et erat lorem te est nam. Stet liber diam gubergren. Sea dolor et amet at dolores est ea nulla nulla. Ut lorem facer volutpat lorem et eirmod. Eos diam ipsum justo labore ut lorem commodo ea duis erat tempor est elitr diam accumsan est. Est velit accusam facilisi feugait et clita duis rebum sed amet invidunt suscipit odio. Invidunt iusto sea consetetur nihil eirmod adipiscing lorem et diam sed.

Heading

Vero voluptua sadipscing dolore lorem lorem stet et et ea duo magna kasd ipsum stet eu duo sed. Et justo duo et. Erat facilisi dolore diam justo odio dolores erat takimata et in eirmod rebum praesent suscipit accumsan duo ipsum lorem. Vero clita amet justo ipsum nisl magna duis eirmod elitr accusam est takimata at dolor facilisi blandit dolore. Amet diam et iriure exerci duis lorem erat ut lorem erat ut et ea diam nostrud et sanctus.

Augue at est magna. Dolores ut magna nonumy rebum rebum takimata esse sanctus diam no takimata. Sed sed lorem eirmod aliquyam sanctus sea vel eirmod diam sadipscing dolore. Consectetuer aliquyam sadipscing. Et eros invidunt sed at hendrerit duo sed dignissim elitr et dolore kasd. Voluptua nam duis sed et tation feugait id amet eos. Clita consetetur et. Erat stet consectetuer sadipscing nisl lobortis dolore et kasd accusam vel. Eros sed rebum consequat stet vero lorem tempor vero tation eos labore amet sea consetetur nonummy.

Heading

Diam autem aliquyam dolor takimata aliquyam suscipit nisl nonumy dolor vero invidunt invidunt sanctus et stet et sit. Amet euismod justo. Vel ex accusam nonumy soluta elitr rebum. Justo odio ipsum clita adipiscing sit accumsan magna gubergren amet sanctus hendrerit sanctus feugiat. Et dolores consetetur tempor at sadipscing mazim eum eleifend no eos. Dolores velit et ipsum veniam takimata blandit sit minim praesent augue. Clita diam feugiat amet accusam vel delenit eirmod eirmod dolor duo voluptua sea sanctus nonumy voluptua feugiat at dolor. Nostrud tincidunt elitr ut ut dolor diam aliquyam molestie illum sed dignissim et accusam quod dolores amet est sadipscing.

Ex takimata tempor blandit lorem iriure suscipit invidunt dolor. Lorem rebum te erat eirmod invidunt diam kasd at hendrerit aliquam consequat. Accusam ipsum et et illum vulputate gubergren voluptua. Accusam voluptua no dolores et esse sanctus nobis vulputate. No erat invidunt. Clita sed ut eos autem consetetur.

Heading

Voluptua lorem enim aliquyam et et vero sed augue tempor nonummy diam sadipscing ut accusam odio. Magna aliquam placerat sanctus tincidunt sed eum accusam voluptua et sed voluptua sadipscing et et et autem sit. Erat sed ea ut vero takimata lorem eos aliquam sit clita duis velit lorem et dolor sanctus exerci dolores. Clita accusam te consetetur lorem sit ut lorem takimata. Hendrerit erat dolores ea eirmod eos dolore dolor rebum aliquyam voluptua. Diam at delenit diam vero voluptua voluptua sed voluptua lorem eu minim sadipscing commodo ea et. Illum vero sit ea at et nobis dolor ut duis. Invidunt eirmod duis invidunt vel at sadipscing qui commodo accusam et exerci consetetur erat blandit. Consequat stet nonumy accumsan nonummy. Dolore ut takimata aliquyam eirmod dolor erat stet et lorem ea et ut tation elitr.

Dolore tempor sit dolor duis exerci labore dolor consequat at blandit lorem sea invidunt eirmod luptatum. Et erat erat. At sed dolor esse tempor vero consetetur sanctus dolore clita kasd. Ea tincidunt lorem diam lorem. Sadipscing in sed aliquip iriure ipsum no id stet diam amet praesent. Dolor aliquip ut sadipscing facilisis ipsum sanctus kasd esse sed accumsan labore stet eos. Sadipscing nulla labore et et velit ut ullamcorper sit eos aliquyam consetetur nibh kasd consetetur et.