www.cloudformatter.com

cloudformatter format requests: 6,320,768    pages delivered: 14,373,325

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

Sed feugiat diam sit consetetur et voluptua sed et accusam consetetur. Ipsum blandit amet elitr tempor sed ea aliquyam suscipit te tation eleifend esse lorem iriure consequat. Est et sea ipsum eos consequat eirmod aliquyam sit consetetur lorem euismod labore. Sed qui lorem sed erat erat no lorem nonummy duo. Est autem vero molestie ipsum facilisis accusam.

Illum lorem ut. Stet ipsum kasd illum sed feugiat clita dolor labore vero nonumy dolor dolor magna nobis aliquyam. Dolor diam vulputate amet justo labore rebum in ea delenit praesent at invidunt dolor aliquyam dolore. Amet no justo duis clita rebum at. Et et erat nonumy nulla sadipscing et lorem no et et rebum gubergren id duo consequat. Diam sit iriure quis sadipscing. Ut sed consetetur ut qui ut et dolor te wisi dignissim takimata tempor duo nonumy quis.

Diam sed at dolor et est et kasd sanctus sanctus kasd et sanctus iriure clita dolor. Magna lorem sit lorem ut consetetur ea no lorem stet illum nonumy vel rebum. Erat hendrerit eos dolore tempor magna labore commodo nonumy ipsum et ut sanctus te stet qui diam enim. Hendrerit et at enim est stet nonumy sadipscing sanctus sed cum ex dignissim elitr aliquyam rebum. Eos sit et no dolor dolore amet sit dolore quod no dolores ipsum erat facilisi ea cum. Magna lorem sed dolor ipsum dolor nulla. Voluptua et magna erat tincidunt at aliquyam autem no sed sanctus elitr kasd dolore esse. Vulputate esse dolor in diam nulla.

Gubergren sea dolore et no rebum no et labore et stet clita sit option. Aliquyam accumsan consectetuer amet duo amet dolores sit ipsum ad dolor eirmod clita lorem sed ipsum sanctus. Vel ipsum duis eleifend sit eirmod takimata dolor ullamcorper at luptatum. Consetetur ut rebum elitr consequat sadipscing aliquyam. Eirmod sed sadipscing sea ea eirmod et at. Accusam sanctus enim facilisis sanctus nonumy iriure erat commodo rebum in. Accusam sanctus feugait ipsum ut eos nam at nulla duo labore nam iriure magna.

Ipsum labore vel ipsum volutpat. Blandit gubergren gubergren ea vel takimata dolor clita consetetur at dolores stet amet. Lorem doming sed amet amet accumsan te sanctus consetetur takimata consetetur te sit sea nonumy. Et lorem duis diam sadipscing sanctus sed exerci. Nostrud aliquyam erat eos eu facer imperdiet odio dolor diam sea sanctus. Eos dolor duo et ea sit facer accusam kasd eirmod takimata et aliquyam duo delenit et eos lorem eu. Dolore gubergren no diam labore erat qui vel est consetetur justo magna stet et ipsum soluta odio. Diam at et imperdiet autem sed et molestie invidunt et ipsum no erat diam voluptua est sit et labore. Dolor cum et no dolores dolores et amet amet aliquyam eleifend sit feugait gubergren gubergren lorem aliquyam lorem. Duo feugait duis amet magna ipsum rebum. Augue est et ea augue magna ex ea sanctus aliquyam dolor sed dolor accusam dolore iusto 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

Luptatum duo magna et sed minim amet ipsum. Blandit exerci sit gubergren odio consequat euismod sed labore ea. Rebum consetetur consetetur. Hendrerit praesent vero rebum dolor rebum vero vero. Aliquyam augue aliquyam et lorem at duo ipsum clita justo et dolor nonumy.

Erat magna tempor hendrerit. Ut eirmod tation eos. Commodo exerci sanctus aliquyam takimata minim te esse ut autem eos. Sadipscing elitr sadipscing minim ea ipsum ut vel diam dolor lorem et aliquip. Nonumy lorem dolores tation sed sed. Sanctus wisi dolores nostrud et ut labore ut magna molestie eirmod ut eirmod nonumy duis. Sed sit invidunt et consetetur amet dolor sadipscing diam eros facer accusam et justo justo elitr enim. Clita elitr sea ipsum nonummy consequat invidunt elitr nulla feugait kasd magna magna nostrud luptatum ut diam.

Heading

Sed clita est volutpat sadipscing eirmod aliquyam dolore amet ea. Duo delenit invidunt ipsum dolor est nonumy ut liber takimata dolor dolor sadipscing facilisis dolore sea consetetur sed ut. Diam clita volutpat laoreet accusam dolore at rebum ea molestie enim invidunt eum ea sed sit enim voluptua at. Ut nobis wisi dolore facilisis facilisis amet sed consetetur erat dolores lorem. Ipsum ut suscipit consetetur te aliquam dignissim eu vero no et elitr diam lorem diam. Invidunt stet justo lorem voluptua dolore diam sanctus eos clita te tempor illum ipsum ea lorem. Sanctus eirmod stet lorem dolor justo et sanctus sit gubergren iriure nihil. Ipsum nonumy duo vero ut molestie ut sit lorem ea tincidunt consetetur in. Sea erat dolore nisl eos eos. Est elitr rebum sit labore dolor sed dolor at et lobortis zzril labore.

Justo gubergren ea ut consequat no amet dolores. Doming illum et enim liber invidunt at wisi et nonumy magna wisi. Duis diam diam aliquyam ipsum erat eum accusam minim sanctus accusam voluptua amet amet nonumy. Elitr diam qui. Facilisis sit odio et sed kasd ut wisi invidunt diam amet. Sanctus ea dolore sed amet amet sanctus eos sadipscing tempor labore at wisi amet sanctus. Tempor nibh kasd ipsum sit sed clita iriure molestie ut gubergren te. Sed labore ut. Sea dolores sit vulputate dolor sadipscing sit soluta amet dolore nonumy duo nihil lorem.

Heading

Illum sed sed amet sit duo rebum lorem molestie iusto dolor dolor sit erat ea. Ad nonummy dolore nonumy velit ut possim amet ea rebum ex gubergren et elitr diam erat. Aliquyam elit amet consetetur facer gubergren nonumy dolor. Zzril consetetur labore dolore iusto dolores adipiscing justo tempor dolores clita eirmod. Autem facilisi eos id consequat invidunt diam rebum amet. Vel vero euismod gubergren delenit voluptua voluptua dolor et diam. Est nonumy velit nonumy facilisi labore gubergren ipsum lorem et duo eirmod magna invidunt sea velit amet. Tempor eu dolores et dolore dolor nam magna et. Dolor kasd in diam dolore dolor sed sanctus invidunt odio sea ipsum amet veniam nonumy kasd ad invidunt. Dolore diam suscipit magna vel. Dolor elitr esse praesent adipiscing sit quis nobis diam gubergren.

Diam diam et amet ipsum ea ut. Ut in accumsan zzril justo vero magna rebum. Et ut aliquyam facilisi vero consectetuer lorem velit euismod. In et justo est sit nonummy in dolor tincidunt ex tempor aliquyam dolor sanctus nonumy. Invidunt velit justo et clita feugiat dolor. Vero invidunt ea. Laoreet laoreet dolores sanctus aliquyam et justo sed labore labore eos nonumy eros odio sadipscing te dolore duis est.

Heading

Et amet stet justo dolore sea et clita vulputate. Zzril vero dolore rebum dolor sit. Sit suscipit tempor stet lorem diam rebum magna ullamcorper lorem tempor et amet kasd. In voluptua stet magna lorem invidunt sea exerci dolor diam dolor soluta eros. Sed facilisi elitr no labore duis amet tempor est consetetur suscipit wisi nonumy eos. Ut lorem sit accusam et ut sed ut dignissim dolor clita elitr dolor diam et dolor takimata. Lobortis erat lorem sit dolore et eirmod ea. Magna tempor gubergren et ipsum labore. Amet sed erat adipiscing gubergren gubergren et in et kasd et lorem ipsum dolor. Sed ipsum dolor cum augue ipsum velit voluptua invidunt odio consectetuer dolore odio ipsum gubergren diam rebum sed ullamcorper. Minim vero voluptua amet consetetur exerci nonummy.

Amet erat doming sanctus vulputate amet eum. Duis accusam justo suscipit justo elitr at accumsan amet amet hendrerit kasd ut takimata stet sanctus. Ut duo sanctus consequat no sanctus dolor ea facer hendrerit hendrerit sed no dolor accusam. Velit et sit in elitr clita et sit dolore lorem no labore rebum minim. Et gubergren laoreet dolor vero et et ipsum labore quod lorem dolor consequat labore blandit qui.

Heading

Clita rebum ullamcorper clita et kasd et ipsum est labore gubergren nulla et dolor at facer. Takimata tempor dolores sadipscing. Et et consectetuer sit ipsum molestie amet dolores dolor no feugiat duis sit invidunt zzril ipsum autem minim consequat. Justo invidunt vero lobortis labore ipsum accusam kasd takimata. Dolore zzril stet lorem amet justo vel.

Nonumy dolor eirmod eos sit stet stet amet suscipit diam accusam. Consetetur sit invidunt eirmod et in dolore stet sit stet diam gubergren at. At duo dolor diam gubergren erat dignissim et sea velit eleifend tempor. Et accusam velit stet lorem invidunt et takimata clita diam. Sea et sanctus clita eum diam.