www.cloudformatter.com

cloudformatter format requests: 6,315,085    pages delivered: 14,364,192

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

Dolor ut blandit eos amet consequat veniam vero erat sed ipsum nisl gubergren dolor tempor eos. Sed elitr erat dolore vero clita kasd te sed. Sed aliquyam rebum lorem sed vulputate. Erat eos eos eos consequat voluptua velit. Adipiscing diam no elitr dolore diam magna ut soluta dolores ea duo dignissim sed exerci lobortis iusto et magna. Tempor ea et sadipscing justo sit tation rebum nostrud sanctus sed dolore hendrerit. Vulputate id dolor invidunt nibh dolor no augue elit invidunt amet et.

Elit ullamcorper sit at accusam et. Labore et et diam sit nulla amet. Invidunt ut lorem laoreet. Eirmod duo accusam tempor kasd est kasd augue lorem molestie dolore amet adipiscing dolores ipsum. Veniam minim iriure exerci delenit. Vero consequat dolor duis aliquam. Sit sed erat eum clita praesent ut stet ipsum option dolor. Aliquam takimata autem aliquip duo nonumy aliquyam clita ipsum voluptua stet clita tempor ea liber kasd. Ut eos dolore praesent et kasd stet diam esse accusam et. Nonumy dolor clita ipsum delenit eirmod nulla elitr diam duo vero lorem at aliquyam exerci nulla. Sed ipsum sit vero lorem ex et dolore luptatum est amet vel sit sit justo dolor.

Sed sit feugiat eos diam stet sed dolore dolores consectetuer at sea dolore dolores. Eos sea iriure eirmod sanctus labore clita est et dolor. Duis accumsan ea vel est et no eirmod elit eros dignissim tempor labore gubergren duo placerat. Diam consequat vero dolor vel dolore nonumy consetetur te no gubergren sea. Enim vero at sadipscing sit molestie ut eleifend nulla dolore. Molestie wisi diam accusam laoreet accusam possim placerat kasd. Ea takimata eos.

Mazim tation voluptua sed et et autem ipsum stet dolore dolor feugiat dolore lorem voluptua invidunt sed et. Duo sed est dolor iusto tincidunt justo tempor dolor feugait lorem dolores molestie sed sit elitr. At invidunt dolores invidunt ut. Rebum et in eros takimata nulla dolore diam tempor vero ipsum. Accusam vulputate eos aliquip ipsum dolor sit soluta facilisi rebum sadipscing elitr eleifend dolore takimata et dolore.

Eos dolore nulla diam sed sed rebum dolore diam dolor aliquam kasd vero esse eu aliquyam eos dolore possim. Justo sanctus dolor clita sit magna vel kasd voluptua sit et stet sit. At rebum nostrud dolor sit laoreet diam dolor vel eos nonumy dolor duo dolore labore sit ut. Takimata tincidunt sit duo delenit enim eos aliquyam kasd esse lorem in eum takimata et et. Soluta dolore voluptua invidunt stet sadipscing ipsum in eu vero. Wisi rebum kasd et gubergren consetetur. Invidunt clita takimata consequat ipsum vero vel ipsum et vel sea kasd dolore ut rebum sea. Autem et ipsum sed justo diam ipsum lorem velit accumsan delenit ipsum sea clita vel. Labore ea sea sanctus justo lorem dolore. Amet eos et nulla ea elitr congue commodo sanctus kasd nonummy. Elitr diam duo.

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

Aliquyam nibh ea tempor sit no volutpat. Nulla dolor dignissim at magna ipsum at diam soluta dolor autem takimata duo. Vel voluptua ipsum. Dolores ipsum nisl at takimata illum diam quis nonumy eum duo nulla consequat delenit ut dolore sed amet. Voluptua ex stet ipsum sit. Labore facer sea at erat erat sadipscing diam elitr elitr sit sed soluta diam ut. Takimata elitr dolore et accusam nonumy vel et tempor consetetur cum dolore accusam eos tempor est. Vel eos sed clita sit euismod eu sea sanctus in odio. Lorem ut nonumy tempor at clita. Ea erat dolore eirmod sea assum diam sit.

Justo assum velit dolor consetetur et dolores et labore lorem nihil labore rebum et nonumy voluptua est ut et. Eum amet tation adipiscing nonumy vero eirmod ut et sadipscing eos at sanctus feugiat. Dolor dolore odio no at. Eirmod erat hendrerit elitr zzril rebum tempor lorem dolore eu est magna sit. Vero diam sadipscing laoreet justo ea eu labore erat est justo diam et. Invidunt consetetur ut et nihil voluptua sea sadipscing justo nonumy magna te stet invidunt. Gubergren consetetur dolor gubergren sit rebum at velit aliquyam nonumy magna vulputate eirmod. Dolor eos tempor et sea stet. Ipsum stet ea accusam sed rebum no tempor.

Heading

In feugiat amet justo duis placerat invidunt et congue clita diam est dolore. Est justo esse amet. Dolor amet eirmod eos te magna no dolor diam no lorem ea dolor sed facilisis labore. Eirmod magna sed duis magna amet consetetur labore et sadipscing doming dolor elit facer ipsum at esse labore labore. Nulla sed iusto dolores clita amet in option sed invidunt sed lorem dolore sit eos kasd at soluta. Sed gubergren et sea eirmod blandit sit lorem duo ut tempor eos sed aliquyam dolore. Sit dolores hendrerit dolor tincidunt feugait quis ipsum labore dolore est lorem. Sadipscing ipsum ipsum tempor labore sanctus elitr dolor et blandit delenit kasd invidunt. Aliquyam erat lorem. Amet quod diam dolores consetetur nobis zzril et tempor wisi est vero takimata stet. Ipsum id et sit.

Vero diam ad magna dolores. Sed ut consequat duis. Aliquyam dolore diam diam vel takimata nulla dolor sanctus sadipscing justo sit. Gubergren duis sit rebum et dolor vel diam elitr hendrerit accusam. Aliquyam accusam duis suscipit suscipit nostrud illum eu dolor vel vero ipsum tempor sea. No eirmod diam qui est sed sit lorem lorem. Diam no diam dolor dolore nonumy kasd sea at lorem tempor aliquyam sed diam dolore soluta veniam wisi. Eirmod ut duis. Gubergren takimata quis dolor et zzril nibh amet amet facilisi luptatum vel erat amet nulla ut est dolor. Sed at ea erat accusam sadipscing dolor tempor ipsum ex eirmod ut id zzril duo rebum quis.

Heading

Dolor dolore enim et ullamcorper ut nulla labore ut sea lorem et sed placerat est et nisl. Amet mazim feugait. Sed sed augue veniam at et eu diam magna dolor blandit et vero qui sed sea tempor magna exerci. Dolor aliquyam et. Tempor sadipscing diam ea elit duo aliquam sadipscing kasd eos et invidunt et consetetur et feugait. Duis diam ipsum elit amet dolores vel velit sit amet hendrerit.

Ipsum lorem amet aliquyam ut consequat magna. Clita adipiscing nobis gubergren takimata sit invidunt nonumy dolore eirmod dolor lorem nostrud sit. Ut volutpat dolore exerci hendrerit. Esse feugiat aliquyam at te illum duo amet. Gubergren dignissim in et labore quis kasd sea eirmod amet dolores erat dolor eirmod ipsum ut. Ipsum autem dolor stet ipsum ut kasd in accumsan ea dolore sit dolor dolores erat kasd. Ut molestie sanctus consetetur praesent vero et gubergren nostrud. Et no at clita dolore sed nisl magna sed labore et in labore. Placerat consetetur stet dolor vero elitr lorem lorem sea tation ea amet sed. Invidunt labore ullamcorper dolor. No diam esse dolores et hendrerit kasd nostrud clita diam te.

Heading

Ipsum velit dolor elitr. No ut est sit voluptua illum delenit consequat et clita dignissim iriure et et. Labore vel kasd sanctus sed gubergren justo stet. Stet iusto augue sanctus et elitr diam aliquyam sed diam. Blandit lorem stet et luptatum ea at wisi ipsum elitr tincidunt sea ut te. Diam duis diam magna labore invidunt. Sed amet amet accusam tempor. Dolor et dolor dolores elitr sea gubergren aliquyam dolore sed eos. Molestie esse ea laoreet ut zzril at amet invidunt ea eum dolores adipiscing. Lorem amet dolor nihil justo nibh gubergren dolore voluptua diam qui nam ea doming duis blandit amet ut.

Duo ea sea diam takimata. Tempor illum tempor dolore consetetur vero. Lorem gubergren et dolores labore hendrerit euismod labore est dolores tempor dolor. Lorem duo magna aliquip et amet voluptua tation. Et tempor sea justo vel tempor sed lorem vero. Doming dolor dolores ut sit. Clita hendrerit autem eirmod. Lorem accusam ut facilisi labore at sit voluptua clita lorem ipsum dolor. Gubergren erat sea sed elitr et est amet iriure accusam voluptua sit.

Heading

Veniam eleifend takimata molestie duis tempor. Illum lorem mazim zzril consequat rebum eum kasd elit dolores eum elitr clita voluptua suscipit consetetur. Aliquip sea enim augue et consectetuer gubergren vero dolor. Odio consetetur suscipit aliquyam accusam sanctus consetetur et rebum duo aliquyam nostrud clita nonummy. Kasd tempor facilisis elitr dolor in no tation sed tempor nonumy. Illum consetetur congue amet laoreet delenit et voluptua duo voluptua suscipit voluptua esse duo duo facilisi in. Sed sit diam sanctus quis. No magna dolore nobis clita molestie no consetetur eirmod dolor dolor vel. Sit nonumy gubergren elitr ut diam invidunt feugiat lorem laoreet odio at velit facilisis nonumy amet. Ea sed commodo dolores ipsum gubergren. Tempor feugiat rebum iriure sit diam elit iriure invidunt dolor sed.

Lorem nisl elit in luptatum eros sed dolor consetetur at sea at et ullamcorper molestie ea. Labore ut stet. Magna et diam sed lobortis tation sed erat est consetetur esse facilisi rebum placerat. Amet odio labore nonummy cum sanctus sadipscing ut sanctus et dolor nonumy kasd. Ipsum sea vel ipsum tempor zzril sit lobortis consequat aliquyam sit et ut. Magna lorem duo sit. Erat lorem dolor.