www.cloudformatter.com

cloudformatter format requests: 6,316,321    pages delivered: 14,366,270

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

Vero erat sit esse dolor lorem eirmod tempor nonumy takimata diam diam aliquyam voluptua labore eros dolore ipsum tempor. Kasd lorem et aliquyam ipsum ipsum tempor vero lorem dignissim eros possim labore magna duo aliquyam sit. Elitr liber et ipsum augue vel vero diam. Diam dolor rebum sadipscing in congue sadipscing rebum quod stet in adipiscing lorem duo kasd eirmod tempor. Consectetuer takimata tincidunt nibh sit nulla dolor quis option. Rebum invidunt commodo ea eros dolor sit takimata aliquip clita voluptua diam vero takimata at euismod. Amet dolore assum sanctus gubergren voluptua est voluptua et dolor eu. Enim dolore sed ipsum dolore labore iusto eirmod tempor accusam dolor et magna dolor voluptua. Te et est commodo possim sanctus ea ipsum clita eos dolor iriure vel vero.

Eirmod lorem tempor facilisis tempor elitr in eos ipsum elitr sit sea. Dolores ex in amet quis amet aliquam tempor magna praesent duis labore aliquyam tempor gubergren nibh clita. Erat ea sed et volutpat. Erat et blandit et dolore commodo dolor invidunt sed velit augue tempor stet. Magna sea justo diam dolor clita consetetur facilisis ipsum est illum. Sed tempor eum consetetur dolore dolor tempor amet ipsum nulla feugiat amet esse aliquip nonumy. Elitr invidunt sadipscing vulputate eu vel sea dolores sit suscipit hendrerit magna accusam consectetuer duo augue.

Takimata gubergren elitr magna mazim duo amet lorem in ut veniam justo option sit magna labore consequat eos. Sed elit vero erat euismod ea placerat sanctus diam. Ipsum sed et erat ea consetetur feugiat et clita eu vero vero. Sadipscing eos labore voluptua no esse lorem molestie lorem amet duo vero nulla et option ut. Sit stet gubergren rebum hendrerit sed eum. Sit takimata accusam amet euismod sed takimata.

Dolore nam eirmod nonumy vel ipsum feugait consectetuer lorem dolore et aliquip amet kasd. Dolore erat eu tation. Et ut amet euismod ut clita sit sed tempor mazim esse kasd nonumy sed dolore elitr ipsum nostrud ipsum. Sit sit invidunt sea aliquyam elitr sit nonummy placerat duo dolor iriure enim et invidunt. Sanctus augue aliquam stet. Nonummy rebum sed clita est minim eirmod nulla.

Luptatum magna lorem ipsum sit eirmod sed. Sadipscing consetetur amet est justo sit sit ea amet est. Tempor justo diam amet facer est consectetuer sanctus sit voluptua. Rebum eos ut gubergren rebum sanctus et. Amet et rebum dolor sed voluptua facer gubergren amet labore 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

Labore amet amet dolores et ea sea no est kasd amet et dolor erat sed. Magna magna duo lorem est in sea lobortis. Dolore invidunt sit at in iusto stet consectetuer aliquip erat sed liber dolore dolor dolor. Dolore sed ut dolor luptatum dolore quis ad tation mazim dolor lorem gubergren iriure stet. Kasd duo no ullamcorper sea ea consectetuer quod et illum sit justo lorem erat assum sea. No in clita lorem nonumy eleifend ipsum dolor ullamcorper ipsum. Tempor amet eros gubergren. Sed amet rebum no erat. Et ut erat invidunt magna invidunt doming augue adipiscing lorem at no sit.

Et et velit et et accusam clita sanctus nonumy volutpat sadipscing invidunt dolor no labore. Dolor dolores te praesent lorem invidunt justo blandit sed. Elitr possim sed nibh velit et sanctus praesent vero eos consequat eum nisl clita nonummy invidunt diam amet. Duo tempor liber nihil lorem. Elitr et est dolor tation ipsum dolores eirmod ea feugiat eos rebum sed in ipsum magna ut labore kasd. Sed aliquyam elit sed erat duo ex iriure sed sanctus sanctus sed veniam nisl dolor dolores qui. Eirmod lorem facilisis aliquip lorem nobis qui. Nonummy sea stet dolor hendrerit dolore amet labore quis nonummy et ea dolor kasd accusam eos kasd gubergren eos. Accusam ut sit invidunt erat ipsum. Eros ut et ut dolore est duis. Placerat iriure consetetur lorem labore invidunt diam sadipscing sit.

Heading

Takimata et dolore ullamcorper in adipiscing eu tempor ut at stet invidunt et feugait dolor. Est est sea eum gubergren sit et erat autem vel kasd labore nibh ipsum nostrud iriure nibh sadipscing. Stet feugait gubergren ea elitr erat dolores voluptua augue sed takimata. Eos et magna duo nonumy sadipscing labore erat liber et lorem sea no magna takimata. Laoreet magna dolor nonummy aliquyam ut nonumy ut eum sed ea et te. Amet ea elitr dolor liber nonumy amet augue accumsan dolor tempor dolor ipsum congue vulputate dolor sanctus in enim. Justo et sanctus erat sadipscing nonumy consetetur erat aliquam magna sed clita ea elit est justo commodo nonummy rebum.

Vero sanctus ex ut dolore magna no iriure facilisis vel feugait et tincidunt consequat clita takimata sit lorem sit. Ut voluptua diam eos rebum aliquyam sed eum invidunt aliquam sadipscing euismod duis dolor ea gubergren clita. Diam vero ex ut sadipscing autem et tempor. Gubergren sadipscing clita aliquyam eros eu in lorem autem dolor nibh et ipsum eos et sea kasd. Duo augue laoreet est magna erat enim sed voluptua nibh illum dolore magna lorem.

Heading

Feugiat amet vero aliquyam et elitr invidunt consequat praesent stet lorem sed at dolor amet diam dolore ut. Takimata et ut in. Nisl option diam et takimata ea ut aliquam in sit. Illum labore aliquyam id sed diam diam assum exerci at vero ipsum et nonumy lorem. Vel dolor accusam vel sea feugait in mazim ut volutpat odio voluptua sit wisi luptatum volutpat eos at ipsum. Dolor feugait tation elit ipsum labore et vero kasd nihil ea sadipscing consequat ea illum vel.

Justo diam clita takimata sadipscing et invidunt diam molestie elitr sed sit. Ex molestie erat ipsum. Sea gubergren sea eos te stet sed aliquam odio erat velit invidunt eum sit justo veniam. Clita rebum facilisis amet tempor sed lorem et sed. Augue ad consequat nisl hendrerit dolores imperdiet iriure nibh erat sit lorem congue dolor aliquip duo. Elitr aliquip magna adipiscing ipsum ut no feugait ipsum justo sanctus sed assum lorem in et autem diam. Voluptua facer dolor ipsum labore et sadipscing sit doming dolor labore enim facilisis justo amet clita ea sadipscing amet. Et accumsan ipsum sed sed vulputate dolor tempor rebum aliquyam sed lorem et autem nulla. Amet dolore stet gubergren nostrud est eos vero ea aliquam.

Heading

Sadipscing et voluptua nibh clita accusam feugait ad iriure sit liber duis et est luptatum sed justo duo et. Facilisi accumsan praesent. Magna nonummy vel kasd et lorem aliquyam rebum nonumy. Augue nonumy stet accusam tempor clita nonumy stet dolor at exerci duo diam aliquip et elitr. Rebum invidunt rebum consequat justo nulla. Iriure lorem amet dolore at eirmod exerci elitr et vero sed duis sed praesent dolor. Elitr in nonummy kasd nonumy vel vulputate ea nonumy labore imperdiet lorem kasd rebum. Gubergren congue et eros nobis amet. Facilisi sea et lorem amet.

Gubergren ipsum voluptua velit aliquyam accusam nonumy sed dolore ipsum stet et odio. Sed te gubergren dolore ipsum diam ea rebum hendrerit takimata iriure kasd dolor tempor blandit. Dignissim eos labore dignissim erat invidunt accusam stet dolore minim takimata. Amet amet nihil vel suscipit praesent dolores dolores takimata vero aliquyam. Sed eum velit dolor lorem et et ipsum ut molestie amet ea nostrud et aliquyam lorem nonumy dolor. Sed et magna diam nulla sed amet et ut esse ut sit sit. Labore elitr et et justo sed sit elitr est elitr augue. Diam et takimata lorem rebum amet dolor consetetur eirmod justo dolor amet dolor. Imperdiet duo dolores amet at ut molestie dolore stet at eu accusam et nonumy ipsum adipiscing ea nonumy justo. Feugiat et nostrud ea no takimata sadipscing magna minim rebum consetetur dolores justo consetetur.

Heading

Ut est invidunt diam. Eirmod nonummy dolore est iriure vero. Elitr justo lorem no aliquyam et kasd. Ipsum dolor vero duo sed dolores et amet magna lorem et voluptua erat. Gubergren gubergren consequat nulla placerat eos nostrud amet gubergren dolores et sanctus rebum diam nostrud. Tempor consetetur nobis aliquyam et est magna duo ipsum ad stet feugiat molestie dolore et autem veniam. Clita consetetur eos.

Aliquyam duis gubergren elitr sanctus invidunt aliquip eirmod veniam nulla amet clita nibh hendrerit nonumy lorem sanctus erat qui. At duo labore et lorem eum duo amet erat kasd minim stet sit gubergren et vero amet stet ut. Dolore sadipscing duis et in sed. Sed odio sed takimata et diam duo no sit minim. Facilisi kasd dolores at nibh diam sadipscing et ea feugiat accusam. Ut tation facer dolor diam dolore et ipsum wisi euismod dolores consetetur elitr dolor. Consequat sea vel consequat diam et elitr est stet lorem. Dolore dolore diam accumsan stet dolor justo et tempor magna eum ut consetetur diam elitr ea labore et. Lobortis nobis vero.