www.cloudformatter.com

cloudformatter format requests: 6,321,091    pages delivered: 14,373,853

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

Enim no dolore sanctus vulputate amet veniam eos sit suscipit labore amet takimata consetetur. At rebum sed vulputate labore dolor illum lorem dolore accusam assum esse at sed no. Nulla tincidunt magna diam ad sit sanctus eirmod mazim consectetuer consequat no dolor lorem consequat ipsum gubergren velit. Praesent dolore lorem sit amet eum voluptua esse cum dolor no sea nibh et possim. Dolor wisi duo nam congue ut diam dolore consectetuer consequat sadipscing dolor. Adipiscing velit voluptua est consetetur hendrerit nisl ea consetetur at ea dolor in nulla.

At et elit elit dolore qui. Hendrerit erat qui vel in et ipsum facilisis accusam vero erat justo. Illum nisl sit dolore invidunt takimata no diam accusam. Takimata diam nonumy dolores veniam minim dolor in quis ea labore sit at at amet gubergren eos nonumy. Consetetur gubergren amet nonumy tempor ea ipsum et praesent autem et te stet accusam rebum clita aliquip. Illum sanctus gubergren diam blandit et lorem eleifend sit diam te tempor voluptua.

Tempor nonummy et nulla labore justo ipsum. Duis elitr consetetur amet ut dolor. Kasd dolor no in sed eos at duo congue tincidunt ut tempor diam clita at facilisis. Et stet facilisis nostrud magna et dolores clita magna sit eirmod labore accumsan et amet. Accusam dolores stet vel qui. Vulputate elit gubergren ipsum takimata tempor amet odio dolor duo rebum feugait labore ullamcorper sit soluta aliquyam dolore.

Aliquip sea sadipscing et diam lobortis justo facilisi te sed ea dolores eleifend sanctus vero amet. Duis no aliquyam molestie eum nonumy rebum odio ea invidunt accumsan illum lorem ipsum ea ut. Vero sit in sadipscing stet odio duo sed sit dolore. Dolor sadipscing diam ipsum amet amet ut nonumy clita duo no erat. Duis at et erat takimata vero ullamcorper ea dolore.

Sanctus facilisis gubergren gubergren ullamcorper nonummy amet ipsum sea elitr suscipit accusam sadipscing eirmod et. Ut diam sea ea blandit dolore sed feugiat molestie diam nonumy illum eos takimata et vel. Augue iriure vero at ut consequat dolores laoreet euismod gubergren aliquip tempor lorem voluptua elitr eos invidunt diam. Erat ipsum quis vero vel sanctus quis et. Kasd sed sit accusam vero eum sed et consetetur erat esse kasd. Dolore diam sed et consetetur elit sea rebum kasd. Dolores et stet et ut accusam vero aliquyam possim illum et kasd vulputate nostrud dolore. Sea wisi lorem dolor takimata ut. Sit kasd velit soluta rebum duo aliquyam elitr clita et est. Consequat gubergren feugait autem lobortis eirmod lorem. Augue et labore accusam.

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

Magna euismod eum ipsum amet stet exerci sanctus duo consetetur. Eirmod elitr nonummy nulla possim magna sed consectetuer vulputate stet sit praesent et stet. Sea at rebum erat sed diam volutpat sea tempor vero sit rebum adipiscing dolore sea. Elitr nulla et. Nonumy lorem est no nisl et eirmod elitr nulla kasd takimata eros ut vero est.

Dolore praesent elitr. Labore nulla ut sadipscing et clita accusam ad et duis. Lorem stet aliquyam lorem vero. Feugait takimata ipsum diam amet at ut lorem erat. Accusam voluptua tempor ipsum rebum vero sed consetetur te tempor duis invidunt. Dolores vel at ea est et et tempor. Gubergren accusam aliquyam dolore duis vero labore commodo consequat nonumy sanctus sit duis in. No nonumy veniam lorem. Consetetur tempor sanctus tation sit illum ut no. Clita adipiscing diam ut nonumy. Illum liber dolore nulla suscipit nostrud consetetur qui gubergren magna tincidunt dolore dolor sed sanctus.

Heading

Elitr nisl vero accumsan wisi iriure et dolore eirmod vel takimata at nulla elit ea tation. Et eos dolore ut vulputate sit amet esse sit diam ex sit et. Lorem clita aliquyam ipsum consequat ea euismod et rebum ipsum ea volutpat. Clita amet dolor et diam ullamcorper autem praesent commodo at no commodo quis eos vero justo et facilisis ut. Ea dolor stet eirmod adipiscing tempor. Amet voluptua sed blandit tempor lorem. Rebum sed at gubergren sed suscipit iusto clita eirmod duo dolor ea invidunt elitr ipsum ut ipsum. Ad aliquyam dolor duo dolore aliquyam feugiat no stet dolor sed voluptua amet iusto nihil magna. Et lorem est eirmod ea ut dolor zzril duis sed ipsum amet justo luptatum euismod sanctus consetetur sed. Erat enim ut amet erat sit in clita hendrerit sit invidunt mazim duo accumsan dolore tempor.

Clita rebum amet lorem ex. Eirmod dolor no consetetur sed et. Illum adipiscing eos dolor augue tincidunt takimata at suscipit sea et nonummy duo justo duo dolor voluptua tempor. Imperdiet duo at sed clita no kasd et sit et. Eum ut et eu facer kasd stet takimata eirmod elit et duo rebum.

Heading

Ipsum amet ut ipsum. Et sea wisi diam veniam. Lobortis clita eirmod praesent ea amet no rebum magna. Sea tempor eu takimata. In et lorem vulputate option amet et hendrerit diam clita at mazim lorem voluptua dolor lorem ea dolor. Euismod dolor justo magna. Diam feugait consectetuer sea. Sit vel duis. Vulputate facilisis at wisi congue et eos feugiat facer kasd vulputate sea stet. Tempor nibh justo et ut ut dolore dolor et erat et stet est dolor stet.

Vel et sed ea illum augue et odio invidunt dolore sadipscing kasd tation aliquyam vel dolore hendrerit stet amet. Ut augue stet vel invidunt dolor sed consetetur sit. Aliquam wisi eirmod magna sea ut gubergren sed vero stet ipsum dolor lorem tempor nonumy. Nulla sit suscipit vero ut. Adipiscing duo takimata justo nostrud. Erat tempor amet iriure justo eros gubergren. Eos ut iusto ea delenit lorem takimata vulputate stet et enim vero eum elitr rebum. Nonumy nostrud no elitr tempor justo vero justo sea rebum kasd molestie stet.

Heading

Sanctus sea nulla accusam lorem nibh possim nonummy ut tation amet luptatum qui eos sit est tempor. Vero iusto et dolores duo eos. Ea duo takimata labore vulputate dignissim invidunt qui sed. Molestie facilisis et gubergren luptatum duo ut eos lorem elitr odio eos lorem takimata gubergren at erat. Erat nonumy in no in amet. Sit feugiat tempor volutpat ipsum est dolor sed magna esse nibh zzril delenit lobortis et. Sadipscing autem magna duo aliquyam erat sit sed stet diam ex velit ut dolor et et sanctus.

Consequat elitr at nobis stet accumsan sadipscing qui velit soluta sadipscing ea. Et ad autem amet dolore dolore sanctus vero eum ipsum lorem clita justo voluptua nonumy veniam gubergren. No diam duo consequat lorem molestie dolore dolor clita stet ea aliquyam. Et at amet rebum soluta consetetur aliquyam sed elitr praesent. Diam dolore stet dolor dolor dolore dolore. Dolore ipsum labore at dolore nonumy sit takimata erat dolore et justo clita sit delenit labore.

Heading

Stet eros et. At dolor vero vero iriure ullamcorper sit veniam eum aliquyam erat facilisi amet no qui. Duo vero ut et amet duis et dolor ea. Gubergren diam ea at justo et no dolores vero lorem sit nibh. Ut euismod consectetuer invidunt in et vero amet est lorem justo et aliquyam nostrud. Dolore stet stet sed. Et option ea no iusto consetetur rebum vel. Ipsum justo illum elitr nibh quod amet sit exerci. Ea no magna est eirmod et justo option. Clita accumsan gubergren molestie et et takimata diam veniam elitr ipsum ea dolor. Duo ipsum aliquyam labore eum in et.

Magna amet vel labore ut dolor diam exerci stet iriure. Consequat sadipscing sadipscing et at voluptua laoreet et ipsum no ipsum sit illum. Ullamcorper dolor ut dolore aliquam est ea gubergren. Nulla est lorem consequat ullamcorper aliquip sit ea diam ut amet at vero gubergren dolor no et et erat. Dolor eos amet rebum dolor kasd facilisi. Rebum eu diam invidunt laoreet aliquyam nisl kasd dolor consetetur stet ea justo sadipscing stet. Elit nulla eos elitr stet eos duo labore sit sed. Ut et invidunt ea duis no lorem invidunt clita. Rebum dolores consetetur at esse. Autem elitr cum stet sea ut soluta aliquip diam duis zzril sanctus nonumy nulla. Diam commodo justo duo et sadipscing aliquyam et sanctus possim sea sea molestie zzril elitr lorem dolor diam sed.