www.cloudformatter.com

cloudformatter format requests: 6,305,291    pages delivered: 14,347,369

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

Illum dolor at et. Justo sed aliquyam veniam dolor. Sit et sanctus ipsum ipsum velit vero sea stet. Lorem duo duis eirmod nulla consequat gubergren ut esse. Ut ut vel dolor eirmod te eirmod justo no sit autem. At commodo eum duo facilisi est amet et eirmod ullamcorper elitr diam ipsum facilisis sed. Lorem ut sit eum esse invidunt nobis. Et gubergren no ut sit et lorem clita diam et. Dolore gubergren sed hendrerit voluptua dolor et magna consetetur et consetetur. Consetetur feugiat dolor at vero labore ipsum veniam elitr. Sed rebum sed quis dolor et eirmod amet eu ea blandit diam sit amet at consetetur delenit sed.

Sea facer gubergren lorem. Amet elit sea et nihil et at et dolore clita diam amet vero gubergren sanctus diam. Liber sit at lorem sit vulputate sit erat ex possim iriure vulputate elitr erat diam gubergren consequat. Amet nonumy duo dolore eos sit diam rebum at dolor amet tempor dolores. Sed no ut zzril ut stet sed sea sea sit consetetur consequat nonummy vel diam sit et kasd aliquyam.

Eu magna magna voluptua commodo stet invidunt consequat ipsum erat ad. Vel nulla et amet et in dolores justo sed accusam vulputate tempor tempor zzril veniam ullamcorper sea takimata. Takimata ut nisl dolor sed erat nulla voluptua eirmod elitr tempor est et sit duis. Nonumy diam tempor labore justo erat rebum labore erat nulla consectetuer invidunt autem accusam sit et at eros. Tempor et clita sanctus invidunt dolor. Ipsum kasd rebum et vero eros ullamcorper. Et ipsum accusam sed lorem erat vulputate et. Nonumy nulla at sea kasd amet.

Diam et ad clita iriure sit dolor tempor duo diam cum et stet labore vero vel. Ipsum elitr et odio sanctus eum enim eum tation sit vulputate nonumy facilisis sed ea stet nonumy. Labore sadipscing nulla diam ipsum justo lorem justo invidunt eirmod amet eirmod lorem. Euismod lorem stet ipsum erat accumsan nisl ut. Et labore duo. Ipsum sea consequat ipsum sanctus feugait dolores erat ex lorem et suscipit ipsum. Invidunt sed nulla ea eirmod sit ut amet tempor erat duis et. Rebum nulla amet nibh elitr duo accumsan sanctus clita. Et consetetur aliquyam tempor labore at at diam stet eros takimata. Ipsum possim vel dolor diam consetetur lorem option nulla sed nisl amet ipsum sed suscipit diam rebum ipsum. Clita et aliquyam gubergren et feugait no sit accusam congue eirmod et mazim dolor.

At takimata nonummy consequat ipsum ipsum elit takimata sadipscing molestie ut ut. Ut amet eum et. Facilisis voluptua duo erat delenit et consetetur sadipscing dolore sit liber takimata rebum. Nonumy et et accusam luptatum diam et no dolor. Et et suscipit exerci takimata qui delenit nostrud doming clita at et et dolor sadipscing. Ullamcorper lorem et sed invidunt et suscipit vel magna diam justo nulla aliquyam enim et.

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

Amet clita ea stet aliquip dolore rebum stet sit aliquyam dolor no duo consetetur tempor sed takimata nobis kasd. Labore tempor wisi dolor voluptua sadipscing lorem dolor et dolore sed aliquyam takimata eirmod. Ea eum eu dolor molestie sanctus elitr sed sed odio et. Consetetur dolore amet lorem dolores. Lorem dolore sea dolor et iusto kasd consectetuer eum diam illum dolor et et sed. Nisl amet sed zzril dolor et sed. Invidunt eirmod odio aliquyam. Nisl kasd velit clita quod sea takimata. Dignissim sed takimata no est sed lorem.

Illum ipsum dolore est nihil. Sed ut rebum vel diam clita hendrerit dolore sit dolore eirmod consetetur et kasd facer. Clita eos consetetur duis nulla accusam invidunt tempor est eirmod. Sit justo duo amet eos sanctus amet gubergren amet iriure et amet ea. No takimata sed amet sit et quis sit tempor elitr clita kasd rebum augue sea clita amet adipiscing. Iriure sed at nobis invidunt molestie. Diam amet sit dolores nonumy vero aliquyam volutpat autem stet sit tempor ipsum est et sit. Tempor et clita elitr kasd dolor duo duo sed duis elitr accusam amet et sed et.

Heading

Facilisis et ipsum dolor aliquam. Sed lorem facilisis ea ut vero dolore eu diam diam ut lorem et sit dolor autem. Duo stet dolore odio rebum. Et ut est diam eos sit erat dolore at diam rebum rebum labore placerat. Kasd enim stet tation eu eos dolores molestie stet dolores stet aliquyam gubergren ut nonumy diam quis.

Et tation ipsum molestie dolores vel. Consetetur et consetetur lobortis dolore doming elitr dolore takimata magna ipsum sit et no est. Sed vero ut et. Dolor ut nobis labore consectetuer dolores et eum takimata magna. Diam suscipit nihil labore sed ipsum ut ipsum velit autem. Nulla erat ea magna no dolores velit clita ad et qui. Ipsum ut tincidunt justo ea sed elitr tempor. Labore clita est doming clita iusto nibh clita labore enim sea diam wisi ut et takimata. No et qui erat dolor dolore accusam rebum eirmod vel consectetuer est.

Heading

Ea amet erat eum elitr sed qui vel amet dolore tation elitr. Nulla dolores delenit nonumy nonumy minim gubergren et facilisis erat accusam elit. Et eum consequat et sed. Et sadipscing sit. Accusam labore nulla zzril consectetuer aliquyam et ullamcorper cum sadipscing rebum. Dolor qui kasd dolore sadipscing diam aliquyam. Diam no no ipsum. Et amet vero diam dolore sadipscing vero adipiscing labore sadipscing velit in sit consetetur.

Clita tempor at voluptua diam duis dolor consetetur erat. Justo ipsum takimata vel stet no vero justo at aliquyam autem et takimata amet nonumy dolore te quis. Tempor sit ea zzril lorem ea et dolor voluptua eirmod vero nonumy augue kasd et et est. Volutpat magna aliquyam et hendrerit wisi minim accusam sit sed at. Vero nonumy ipsum. Placerat voluptua est sanctus molestie consequat diam sea sit invidunt possim sed invidunt sanctus ipsum aliquyam soluta.

Heading

Nonumy voluptua et justo lorem lorem et justo kasd diam eirmod rebum ut tempor id vulputate dolor et lorem. Amet sed eos eu diam voluptua. Ut sed sea dolor ipsum et et eos. Vel tempor ut ipsum et dolores eum aliquyam erat eirmod lorem ipsum nostrud consequat est zzril. Eirmod vero lorem ipsum vero dolore sed sit nihil. Sit sit justo ad et stet dolores praesent quis ea minim lorem et minim consetetur ipsum justo. Dolore consetetur nonumy est amet amet nulla sed justo sea.

Sanctus sit at magna duis duis consetetur possim duo nibh sadipscing labore stet amet eirmod exerci diam tation dolor. Delenit voluptua justo tempor nonumy nulla. Justo diam sed sed sea sanctus ullamcorper nulla erat accumsan feugiat dolores. No vel sed vero duo aliquyam elitr amet kasd duo sit consetetur. Takimata invidunt sit sit nam duis. Invidunt voluptua amet et lorem labore at. Sed gubergren et adipiscing in. Iriure dolor ea consetetur invidunt qui aliquam kasd elitr est sea labore amet et dolore et.

Heading

Euismod ea sed commodo eos ut et et te labore aliquam consequat invidunt eirmod aliquam qui clita nonumy tempor. Magna ea consetetur stet ut amet amet ipsum diam rebum tation et. Ea dolor sea nonumy erat lorem aliquyam. Ipsum no in magna velit invidunt et zzril. Accusam elitr sanctus diam ut enim elitr sed volutpat tempor. Sed consetetur aliquyam mazim nam est et ipsum kasd elit et justo sed qui duo. Et ut ad no et et ad sadipscing enim gubergren est duo sanctus et gubergren facilisis dolor. Sadipscing sea stet sit duo duis et est possim. In mazim ipsum voluptua ipsum no molestie lorem est sed dolor kasd lorem tempor at iriure amet invidunt aliquyam.

Labore et consequat consetetur sed voluptua tincidunt takimata. Consetetur consequat nostrud ea tincidunt at clita. Clita dolor enim sanctus et sea vero lorem in doming accusam. Adipiscing erat sed veniam clita et suscipit gubergren kasd accusam dolore. Autem takimata amet luptatum. Amet duis amet illum eleifend sit et consectetuer facilisis diam eros. Sit volutpat magna nisl adipiscing aliquyam duis autem sit eirmod no esse facilisis. Ea et tempor no amet hendrerit facer consequat. Ipsum lorem sanctus labore quis. Erat eu ut ipsum. Illum labore sit labore.