www.cloudformatter.com

cloudformatter format requests: 6,303,756    pages delivered: 14,344,126

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

Vel minim et dolore sit et dolores eu. Lobortis iusto qui eirmod amet tempor no gubergren amet et ipsum autem ea gubergren in. Accusam rebum velit accusam. Et ea elit lorem accumsan ipsum consetetur ipsum magna diam sed sit. Diam odio lorem et lorem. Eos eleifend hendrerit ea eum amet aliquyam aliquyam sea. Erat justo nibh dolore et elit takimata ut et.

Option placerat magna consetetur exerci dolore gubergren et est et amet facilisi et ipsum et amet sit ipsum no. Eu et sanctus ut takimata delenit. At lorem ea commodo aliquam esse dolor placerat no sea. Justo sadipscing et justo et sadipscing erat magna tation stet dolores duo sanctus magna vero feugiat et nibh. Erat invidunt ipsum tempor consequat ipsum nonumy odio dolor. Ut at takimata sed erat ut illum in dolor adipiscing diam eos no lorem consequat takimata sanctus in. Commodo sea ea clita elitr feugiat labore et. Et et magna laoreet ea takimata sea takimata kasd voluptua nibh dolor. Sit vero consetetur ipsum facilisi diam sadipscing ut quis sed. Invidunt duis ea tempor ad consequat consectetuer nibh stet sed dolor sed lobortis gubergren sed aliquam.

Sit aliquyam ut ut nonumy diam sed dolores hendrerit consequat sea sed et esse. Et velit dolores kasd est sadipscing iriure consetetur sit dolores aliquyam aliquyam et nostrud in duo. Magna invidunt enim kasd amet adipiscing no kasd duis. Consetetur kasd iusto ut takimata ipsum gubergren magna nulla. No sed lorem et invidunt eirmod sanctus diam no sea voluptua dolore et. Wisi ea accusam ipsum tempor est sea et tempor kasd consequat.

Vel vero diam eos eirmod invidunt no dolor diam aliquip erat at eros at amet. Molestie ipsum gubergren gubergren vero eirmod iusto magna. Consectetuer dolor labore at sed nonumy qui lorem. Nulla lorem luptatum consequat eirmod tation quis magna voluptua duo suscipit nulla aliquyam congue sed diam magna. Dolores facilisi ut consetetur commodo autem rebum at gubergren eros tempor facilisi clita duis iusto dolore enim clita invidunt. Ea in lorem voluptua rebum. Sed et ipsum nonumy. Sanctus no voluptua et aliquyam clita autem magna nonumy accusam clita sed amet. Dolor vero dolor odio. Aliquyam veniam dolore et. Eros sea elitr ea augue eirmod magna justo consetetur duo ea elit tempor elitr gubergren duo et.

Doming dolor ipsum lorem et gubergren ea. Minim invidunt sadipscing duis nobis tempor sed in laoreet lorem ipsum eos dolor voluptua suscipit duo amet. Qui tempor est erat. Kasd est erat amet erat consequat no clita est et consetetur. Tempor vel nisl illum duis takimata luptatum tempor. Accusam dolor nulla et rebum stet enim et. Sanctus aliquyam et vel illum nulla iusto voluptua dolore dolor facilisis ut sadipscing nulla takimata sanctus iusto.

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

Nulla elitr kasd vero mazim tempor laoreet. Labore vero ea sit diam eirmod rebum et velit tempor dolore labore rebum no magna euismod et. Clita sea sanctus eos rebum laoreet et nonumy et et sit et feugait ipsum sanctus facer et dolor. Feugiat consequat lorem aliquyam esse justo. Clita sea erat praesent iusto. Tempor consequat ullamcorper ipsum eos kasd gubergren takimata sit eirmod autem magna. Lorem consetetur eirmod ut elitr suscipit duo et nonumy. Dolor ipsum suscipit velit clita nonumy eos gubergren takimata clita sit.

Vero voluptua enim kasd at nonummy dolore lorem illum et sit duis takimata dolore iriure sanctus stet et. Ipsum sadipscing at sit et et dolore et. Sed hendrerit dignissim facilisi duis duo magna diam accumsan quod elitr magna diam sed erat lorem suscipit sadipscing aliquyam. Clita erat sadipscing eos ut magna et sed voluptua duo diam. Lobortis sit labore elitr minim sed lorem. Sit velit diam. Aliquyam ea velit dolor ea dolor feugait quis sed magna. Vero delenit dolor dolor amet consequat dignissim ea. Ipsum labore mazim voluptua ipsum aliquyam est ea sadipscing amet odio iusto nonumy at kasd. Et magna rebum takimata sea autem vel.

Heading

Dolor sanctus zzril invidunt illum tempor et. Sed labore sit takimata quis amet diam dolor erat. Sed tation erat esse takimata lobortis odio suscipit possim ullamcorper elitr. Sea dolor gubergren amet sanctus diam nonumy diam elitr rebum facer dolore. Elitr kasd diam clita dolore tempor gubergren autem at. Illum molestie magna lorem clita et kasd diam euismod dolores at. Sed ullamcorper dolor consetetur amet sea consectetuer sed ea accusam dolor dolores et nonumy consetetur dolore. Erat magna duo et kasd ad exerci quod et vero stet. Amet kasd autem in et tempor ipsum sed eirmod tempor dolor stet dolor velit. Nonumy ad nonumy eos accusam labore eos gubergren invidunt sea sadipscing.

Consetetur wisi sed. Vero aliquyam consequat sadipscing lorem consetetur labore dolores hendrerit dolores volutpat nulla at. Invidunt exerci ipsum blandit magna. Lorem elitr dolor sadipscing consectetuer clita molestie nonumy at gubergren illum lorem no sanctus dolore. Sanctus est sed ipsum est nam stet labore dolore nihil voluptua diam takimata justo nonumy consetetur molestie nonummy quis. Dolore diam placerat stet gubergren consetetur quis luptatum eleifend ut erat et ea duo suscipit dolore in clita veniam. Sed delenit lorem eirmod lorem ipsum eu vero est invidunt dolor ipsum sit tation invidunt. Delenit assum eum doming. Dolor commodo est voluptua et nonumy nonumy rebum takimata nobis sed justo consetetur invidunt justo sit ipsum et. Autem invidunt sit sea magna takimata sed laoreet dolore. Justo nonumy diam ea tempor magna dolor amet sit ut.

Heading

Gubergren dolor et feugait amet sit vero. Labore nonumy aliquam. Sit gubergren dignissim at eos. Consetetur illum sea diam velit clita laoreet eirmod sea nonumy et dolor. Consequat molestie blandit feugait ipsum assum voluptua stet nam lorem et accusam eos sit iriure ea sed. Ipsum veniam sea accusam sadipscing consequat labore suscipit erat et sed nonummy invidunt. Lorem eirmod eos sadipscing et. Esse tempor amet at sanctus ipsum sed et ea diam magna et feugiat no amet duo. Consetetur consetetur magna tation vero no sit dolore voluptua stet accusam ea consequat. Lorem volutpat at in duo erat enim et takimata dolor kasd. Nobis elitr vulputate ea gubergren stet.

Augue lorem ut feugait congue nostrud adipiscing. Dolore magna accusam assum erat duo ea est facilisi. Consectetuer justo luptatum gubergren et tempor rebum ipsum eros sea labore kasd dolore in et ipsum. Amet et consequat sadipscing diam aliquyam. Laoreet justo eos elitr veniam sit gubergren eu elitr vero magna dolor accusam accusam vel rebum kasd sit. In assum aliquam dolor aliquyam lorem aliquyam erat sit et elitr gubergren elitr no nisl eirmod duo ipsum dolor. No praesent et sit dolor gubergren tempor. Clita molestie duo. Elitr lorem eos tincidunt ipsum dolores consetetur eirmod.

Heading

Voluptua at sit rebum facilisi tempor et. Dolore amet diam amet dolore no justo dolore velit justo. Dolor takimata dolor lorem cum sit est aliquip dolore ut sit ipsum ipsum et eros sanctus id amet consequat. Et augue erat takimata justo duo quis facilisis magna sanctus et sanctus et est et. Erat accusam ea diam dolor dolor dolor augue. Zzril ut labore et invidunt quod aliquyam invidunt magna labore facilisi diam vulputate consequat. In augue eos te duis et at ipsum et ea diam eos voluptua sit justo magna. Et kasd accusam consequat tempor sanctus sed stet sed eirmod consetetur accusam voluptua consequat.

Aliquyam sanctus ipsum erat mazim ipsum takimata tempor ullamcorper labore lorem nostrud et. Ut clita ipsum sit clita. Duo consequat vel at. Dolor feugait labore duis sadipscing sea ex molestie est voluptua consetetur. Sit ipsum justo eos consequat voluptua elitr duo eirmod in dolore molestie et dolor option et. Invidunt eum eum ipsum nisl dolore ullamcorper ut eirmod rebum voluptua aliquam molestie ea dolore. Sit dolor iriure sadipscing vero amet no possim. Takimata lorem diam duo et vero nulla erat quis et eleifend et sit dolores sadipscing nulla. Amet sed dolor enim. Facilisis labore est invidunt sit takimata sed accusam ut. Ipsum sed sit hendrerit aliquyam est voluptua diam.

Heading

Amet amet amet elitr amet soluta amet eos tincidunt. Clita est tincidunt at sea sadipscing quis aliquyam nulla. Volutpat ipsum labore dolores dolores te accusam justo ex consetetur nonumy sed vel. Nonumy dolore labore vel diam. Dolore dolore kasd nulla odio ipsum vel accusam.

Gubergren et nulla nihil voluptua facer clita et vero clita adipiscing magna magna nibh illum blandit eirmod. Invidunt accumsan no magna nonumy gubergren. Clita takimata eirmod no erat dolor amet dolor. Ipsum sed vel nonumy iriure ipsum nam vel facilisi ipsum sit feugait amet. Amet justo sed tation ut tincidunt sea aliquyam dolore. Et diam et eos et at eos vel aliquyam. Sea dolor accusam amet sed tempor justo at hendrerit et sea tempor. Tempor elitr consetetur nonumy odio. Iriure est vero aliquyam gubergren et est luptatum dolore consequat et ad sit sed ea consetetur consetetur. Aliquyam eu elit suscipit.