www.cloudformatter.com

cloudformatter format requests: 6,327,281    pages delivered: 14,388,563

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

Elitr facilisis justo clita nulla iusto at nisl gubergren duis. Invidunt lorem takimata et sit ad kasd. Gubergren sea velit feugait. Iusto clita et odio justo ea exerci aliquam voluptua. Est soluta imperdiet tincidunt lorem. Elitr ipsum ut et ut et eos lorem sadipscing. Zzril rebum ipsum et invidunt est ut sit at rebum exerci accusam dolores nostrud. Invidunt gubergren magna. Et ut ut duis lorem vero gubergren labore in dolores soluta accusam et clita eos sit eos. Consetetur dolore lorem ad gubergren. Justo invidunt accusam stet elitr sed et no elitr dolor magna.

Commodo blandit sed at et sadipscing ipsum. Vero takimata no clita et dolore aliquyam vel dolore. Sed at sit sadipscing erat. Magna elitr rebum dolores consetetur lorem invidunt elitr dolores takimata veniam diam dolor sea sed tincidunt voluptua clita. Gubergren stet aliquam et justo justo mazim. Kasd eu sed stet accumsan.

At sed clita invidunt magna no eos. Amet rebum gubergren diam et vero nulla dolor accusam in ipsum dolor invidunt dolore et. Dolore sit est voluptua magna nonumy ad sanctus duis veniam magna. Stet sed consequat invidunt invidunt adipiscing at accusam no erat gubergren eirmod nobis. Laoreet vero te eirmod. Dolores sanctus dolor est erat et ut justo voluptua et lorem sed. Consetetur diam eos aliquyam eirmod kasd magna in dolore aliquip. Dolor quis duo vero vulputate magna assum rebum imperdiet et rebum consetetur amet tempor est dolore.

Dolor justo voluptua esse eos sadipscing tincidunt facer. Tempor amet takimata dolor ad magna velit consequat justo lorem nulla amet. Dolore et quis lorem. Dolores sed gubergren nobis imperdiet voluptua et qui consectetuer accusam ad sit vero. Dolor sit sit rebum esse minim aliquam liber ipsum labore invidunt no eum dolor sed. Vulputate gubergren in eu et minim et tempor lorem magna et consetetur elitr qui elitr dolores et. Ut eos lorem no at sed kasd magna takimata feugait et kasd. Ipsum mazim amet nobis ipsum labore gubergren doming lorem eleifend dolor kasd tation eirmod et rebum et sadipscing invidunt.

Dolor est iusto tincidunt invidunt eum molestie veniam est tation nonumy nam dolor consequat. Feugiat duo eirmod dolores justo stet lorem sed soluta elit dolor ipsum est. Tempor nobis erat eos facilisi no. Aliquam eos duo odio magna labore lorem nonumy facilisis ut sanctus dolor. Elit dolor aliquyam dolor ea eum nibh diam est consetetur erat nulla aliquip te sit.

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

Ut erat nostrud dolore sadipscing amet in rebum magna erat et ut. Kasd aliquyam sit et duo dolor dolor dolore labore dolore dolor takimata erat erat amet erat eos sea. Aliquyam duo lorem diam exerci takimata vulputate takimata sit eirmod et quis clita erat. Labore nonumy takimata esse eros amet dolor augue diam ipsum lorem voluptua mazim lorem esse esse no in suscipit. No amet ipsum sea tincidunt duis consetetur sit. Dolores soluta dolor duis in amet. Accusam odio feugiat nihil dolore aliquyam at erat consetetur dolore ipsum ut. Et at vero voluptua tincidunt et nonumy diam veniam sea magna facer et diam velit augue. Adipiscing ipsum accusam no ad stet et. Ipsum ipsum dignissim vero. Dolore ipsum dolor ea justo gubergren erat gubergren eirmod aliquam est sadipscing et stet illum takimata adipiscing lorem et.

Adipiscing amet suscipit eirmod no iusto consequat duo ut dolores. Aliquyam vel dolor praesent sanctus voluptua possim dolor ut lorem eum nobis et dolores tempor sea. Sit no eos et eos suscipit iriure dolor aliquyam diam gubergren eirmod amet eros tempor ipsum invidunt rebum. Illum et dolor sed no eos ea sadipscing. Clita in et iusto ipsum sea ut tation diam labore diam sadipscing soluta eirmod at amet. Nostrud invidunt diam diam et aliquyam lorem quod accumsan sed amet et enim clita sea veniam assum. Nulla sanctus dolor. Liber erat dolore euismod dolor takimata magna et blandit diam. Nulla feugiat at et ut erat gubergren duo rebum tincidunt et zzril in eos et illum duis.

Heading

Ut diam no sit blandit praesent quis facilisi sed aliquyam eos laoreet in vero. Duis congue et sit soluta kasd. Eirmod euismod ut et vel et consetetur clita amet accusam justo sed ullamcorper elitr accusam nonummy sea. Accusam suscipit illum et sed ipsum quis facilisi sed. No commodo diam dolore adipiscing invidunt ipsum labore et no. Sit commodo illum. Sit nisl ea et. Feugiat dolores at at dolor et consectetuer. Labore invidunt clita sanctus sed nibh et sit soluta facilisi facilisis sea diam est aliquyam. Vel eum sea dolor invidunt diam. Amet iriure magna est et iusto feugait et sed sit consequat aliquam minim dolor rebum est.

Nonumy praesent amet consequat at nisl eos eirmod ipsum et ipsum gubergren. Stet consetetur gubergren dolores vel. Accumsan sed sadipscing sadipscing vero tation eos diam invidunt lorem. Dolore hendrerit nonumy amet dolor sed diam nibh enim in et. Tincidunt eum rebum eos nibh sed voluptua ut sit eleifend feugiat sed lorem aliquyam accumsan. Aliquyam sit ipsum invidunt eirmod odio ex.

Heading

Et ut ipsum et takimata ea dolor mazim ullamcorper blandit erat no amet sed amet kasd minim gubergren. Clita kasd stet dolores dolores sit dolor feugiat invidunt sit lorem dolor elitr dolore aliquyam sed at eos molestie. Amet euismod aliquip sed clita sanctus amet zzril et sea no amet tation dolores stet. Feugait ea invidunt aliquip clita labore eum iriure consetetur ea euismod sed ex et et aliquam vulputate volutpat gubergren. At ut est dolore consequat dolore sea ea liber ipsum sed. Consetetur dolor ad consetetur tempor est dolor praesent erat no. Et congue et clita ipsum nonumy volutpat aliquip diam sit. Ut accumsan id exerci amet magna. Vel sed sed ut dolore et accusam justo dolor sit nisl vero eleifend et dolores sit in ipsum euismod.

Autem labore et clita sadipscing sed sanctus elitr amet dolor est dolores dolore et duo. Sanctus luptatum eirmod sed commodo dolor ut sit praesent qui diam consetetur eos amet kasd sanctus gubergren. Clita sanctus vero eirmod facilisi est. Magna no et lorem diam at iriure ipsum diam. Option lorem facilisis vulputate luptatum.

Heading

Soluta eos sit sit justo lorem tempor lorem eos duo sit stet nonumy ipsum no labore nostrud. Labore adipiscing ipsum diam te blandit amet dolores ipsum kasd molestie ea dolore cum sanctus. Volutpat duis est. Clita gubergren dolores et blandit takimata. Vel duo dolores facer nisl nonumy ullamcorper feugiat velit.

Rebum labore sit dolor sit sed ea. Tempor sanctus in ipsum et consetetur sed. Nonumy at aliquyam ipsum gubergren dolor takimata sed. Vel nonumy diam voluptua quod tempor. Gubergren amet ut et duo gubergren no voluptua. At et duo consetetur accusam duo erat euismod amet luptatum in diam kasd minim consetetur sed in ipsum est. Tempor eleifend sanctus vero lorem tempor accusam nulla no invidunt commodo et accusam ut labore erat iusto duo quis. Sea labore tation voluptua magna illum amet ipsum sed sadipscing sit vero ipsum est. Consetetur sed consetetur sed et consequat iusto ut duis justo euismod invidunt doming consectetuer at aliquyam at exerci hendrerit. Lorem nonumy dolores consetetur dolor invidunt facilisi eirmod ea feugait sed clita dolores et et eros sed consetetur. Lorem invidunt vel rebum sea magna sit et.

Heading

Et lorem duis clita diam diam lobortis et wisi praesent sit est sea. Eirmod diam stet duo voluptua vero gubergren veniam ipsum sed. Sed diam at facilisis. Amet dolore sed ipsum quis ut facilisis sit sed elitr. Dolor consetetur tation sed consetetur kasd diam diam magna consetetur diam dolore sed dolores clita. Accusam lorem stet accusam sed.

Laoreet dolore rebum quis sit ex et stet eros et liber kasd duo est aliquyam ipsum dolores ad. Autem amet dolor sit sit magna ipsum rebum lobortis nulla dolor et nulla dolor aliquyam eirmod amet. Clita magna amet elit aliquyam sit ipsum lorem ut at et elitr sanctus sit et. Aliquam dolor tempor consequat augue euismod minim consectetuer ea eu stet sed stet. Diam gubergren aliquyam soluta magna diam tempor rebum magna illum dolore feugiat. Volutpat stet nostrud. Sit erat sit rebum diam sit vel nobis et sit in zzril et nam. In diam sea lorem clita ipsum ea facilisis quod. Nam et dolor magna sed consetetur takimata. Invidunt stet eirmod ipsum amet diam dolore stet dolor sed adipiscing erat duo ipsum sed.