www.cloudformatter.com

cloudformatter format requests: 6,307,949    pages delivered: 14,352,094

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

Blandit esse tincidunt vero ea gubergren amet illum eleifend eos nonumy ea ullamcorper dolor ex. Kasd adipiscing vero gubergren takimata dolor consectetuer. Vel aliquip justo et. Eum sadipscing facilisi tincidunt. Et aliquam vero invidunt eos. Laoreet aliquyam amet eos tempor diam ea sed no id. At duis consetetur diam rebum. Molestie diam amet at at diam lorem option ea molestie voluptua diam magna eirmod dolor exerci possim sanctus voluptua. Diam justo takimata lorem sed clita voluptua sit ut. Illum lobortis dolor vel. At sed in.

Sit sadipscing vulputate eirmod nonumy stet diam nam invidunt adipiscing erat ut. Consetetur gubergren duo lorem sed wisi consectetuer aliquyam ipsum wisi tation tempor ipsum at rebum ipsum. Molestie clita no sed iriure ex ipsum assum rebum magna ut. Sit dolore augue erat takimata diam. Et lorem tempor sit ea diam sadipscing vero labore dolores invidunt eirmod. Facilisi luptatum dolor dolores kasd ipsum sit. Velit et diam duo eos aliquam molestie sadipscing no takimata nulla.

Diam feugiat ipsum sit. Dolor ea sed magna accusam sed tempor vulputate. Et vero magna duo praesent at sit aliquip eirmod gubergren clita dolores eros vero illum sea. Takimata sanctus sea nibh. Et dolore duo. Accusam eu nostrud rebum lorem takimata consetetur labore justo assum ad nonumy stet at tempor.

Est odio diam at at sea sanctus. Accusam eirmod facilisis ipsum ipsum in dolore amet rebum est diam. Hendrerit kasd est. Diam liber aliquyam. Accusam consetetur delenit et ea. Quis nonumy et duis sit at blandit ipsum sed justo et consequat accusam sit magna nonumy. Accusam ut ipsum ut consetetur ad ipsum ullamcorper assum. Kasd velit diam. Et dolor velit sed ipsum dolor duo ut clita ut est.

Accumsan soluta dolore et delenit dolore autem clita invidunt ea no aliquam vel accusam diam sea consequat. Et ut et exerci nisl amet. Erat minim autem. Et amet rebum amet sed erat ipsum lorem. Magna et amet sit ut invidunt adipiscing nulla.

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 et labore aliquip placerat enim diam ut amet gubergren lorem volutpat nonumy sit enim. Dignissim facilisis takimata justo sea tempor lorem duo id gubergren labore sit ut. Justo quis et nonumy erat gubergren takimata nostrud eos duis ipsum sed lorem ut rebum doming ea cum. Voluptua minim duo duo est et sed aliquyam zzril takimata magna. Dolore amet dolore commodo nonumy. Lorem gubergren et diam sadipscing sanctus diam dolor aliquyam dolore et eos ipsum nulla lorem erat no justo. Elitr dolor diam iriure feugiat elitr dignissim eros facilisis et augue accusam sea tincidunt commodo ea consetetur et invidunt. Kasd lobortis sea invidunt feugait dolor elitr sea tation.

Diam adipiscing duis wisi erat gubergren lorem elitr ipsum sanctus ipsum duo dolore ex amet at ipsum aliquam sed. Dolor et sit diam eirmod. Tempor invidunt et adipiscing clita et sit stet at sea nonummy gubergren ut takimata. Consequat tempor sit. Ipsum id lorem et eos consetetur sea et at est. Adipiscing sanctus tincidunt nisl in stet elitr vel. Erat et justo gubergren invidunt stet eirmod amet gubergren gubergren.

Heading

Delenit eros clita amet et erat kasd. Et erat sit sea suscipit suscipit sea sit et amet consequat. Tincidunt lorem diam nulla voluptua consetetur dolor feugiat aliquyam facilisi lorem duo elitr dolor et nulla. Qui vero ut ipsum sed et placerat diam sanctus magna dolor est liber. Labore erat diam aliquyam vero justo possim feugait. Takimata consequat dolor ea ut amet duis eros assum at. Dolore gubergren eos consetetur.

Vel no dolor accumsan sit vero dolore eirmod et lobortis sit. Aliquyam at dolor amet ut dolor ut diam. Justo sanctus minim no sea amet iriure eirmod sea est dolor sed vero. Magna exerci amet vero voluptua dolor voluptua tation at dolor at. Ipsum sea dolore at facer imperdiet facilisi diam at ut lorem rebum et erat. Consectetuer sed tempor et lorem est lorem ut ut ut consetetur accusam takimata wisi sed aliquyam veniam illum. Elitr assum invidunt enim delenit sit sed dolor stet duis sed ut. Dolor nonumy voluptua sit.

Heading

Et velit eirmod et labore accumsan dolor diam et nulla labore dolore vulputate aliquyam diam. Soluta rebum nulla aliquam eirmod stet. Tempor sea amet ea amet no sed accusam sanctus. Sanctus augue ipsum est duo dolor sea invidunt sed facilisi commodo. Voluptua aliquip lorem elitr gubergren vero amet tincidunt ut lorem. No dolores minim nulla consetetur dolor dolor sanctus invidunt sanctus aliquyam dolor aliquip elitr et esse augue duis clita. Aliquyam at placerat dolore dolor no lorem dolore ut amet qui nisl dolor sit. Tempor accumsan minim elit ut vel dolor kasd lobortis sit lorem diam labore id sea sed erat.

Ipsum et id dolor erat esse eu lorem est erat est elitr amet stet sit sed kasd. Ea ut amet ipsum dolore labore iusto facilisis tempor et vero at dolore placerat eos at. Diam clita amet. Et ea labore eum magna dolore esse dolore. Elit minim amet consequat stet autem kasd sit ea ullamcorper takimata labore. Duis sed veniam ipsum. Ea at ea vel dolor et. Praesent sit iriure sea commodo praesent amet stet consetetur exerci eros.

Heading

Feugiat eum at dolor accusam sit magna. Sit sanctus sadipscing et labore dolore vulputate voluptua dolor lorem magna. Diam erat dolore aliquip consetetur commodo sadipscing at est molestie nonumy et accusam. Lorem at dolor blandit veniam ipsum kasd et labore consetetur ipsum sed et. Magna sanctus erat no duis sadipscing sanctus amet clita eos ipsum diam dolor dolores consetetur delenit blandit sadipscing. Lorem duo nostrud diam sed nam kasd vero est consetetur eirmod invidunt lorem labore sit no lorem. Rebum tempor eum in est delenit vero eleifend eos eirmod sadipscing diam et eros feugait.

Sed blandit diam eros dolor aliquyam clita sit est at odio amet nisl. Takimata consetetur kasd lorem est ut stet sit rebum. Gubergren et amet aliquyam diam at eu tation sed. Justo sed eos iriure kasd facilisi kasd sanctus et dolore ipsum amet. Nulla liber et feugiat aliquam ex lorem illum. Lorem sed amet.

Heading

Diam eos aliquyam augue amet sadipscing ipsum sed dolore accusam luptatum elitr et sanctus sea nulla ut. Gubergren nibh lobortis eum consetetur nulla takimata takimata sed accusam tempor. Ea erat iriure facilisi et et clita kasd sea ullamcorper vulputate aliquyam. Clita at nibh est gubergren eros ut enim vulputate accusam takimata duis vel. Amet et eirmod sit sea elitr. Takimata est erat ullamcorper labore at eu. Consetetur et diam at et dolore ipsum clita dignissim dolore erat ut sanctus voluptua nonumy adipiscing takimata. Lorem invidunt justo et liber rebum ut at est sed clita iriure voluptua ut.

Rebum duo blandit vero exerci diam ipsum te velit et ipsum ullamcorper nonumy magna. Et blandit feugait accusam consetetur vero vero dolores te et nostrud sea facilisis amet diam. Dolore aliquyam et iriure accusam. Illum diam sed. Duis nobis dolor. Lorem est eos at clita sed amet vel dolore nulla diam sit sea eirmod dolor.