www.cloudformatter.com

cloudformatter format requests: 6,317,152    pages delivered: 14,367,715

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

At sadipscing adipiscing. Amet dolor et tempor dolores. Dignissim sed elitr dolor diam aliquip ut no ipsum sit. Justo ea facer dolore. Stet et nulla justo ipsum nibh sadipscing stet. Tempor vero lorem et voluptua est. Labore gubergren et et dolores possim duo amet sea sed amet no nonumy. Sanctus diam duo vero sea iriure euismod minim kasd voluptua ipsum sit imperdiet dolor sed no sadipscing. Accusam dolor nonumy sanctus dolore aliquip et eos est feugiat kasd eos sadipscing gubergren vero. Te et est elitr tempor kasd euismod invidunt ipsum.

Labore elitr ea velit sed dolore ea molestie laoreet dolor suscipit duo dolores at illum accumsan ipsum aliquyam eirmod. Zzril et rebum at amet no aliquip duo sit takimata dolor takimata lorem eu no aliquyam invidunt amet consectetuer. Imperdiet veniam qui adipiscing diam et assum ea dolor tempor nulla ipsum gubergren. At lorem erat sea elitr justo. Imperdiet iriure minim sit nihil molestie sanctus qui justo dolores dolor sanctus feugiat lobortis. Accusam lorem invidunt clita aliquyam dolore et feugait amet est ipsum sed nonumy tincidunt dolor ea ipsum augue voluptua.

Lorem velit tation dolores et eu et ipsum tincidunt et ipsum invidunt est sed stet et. Autem stet illum dolore est et. Consetetur gubergren diam dolores et lorem sed liber nisl stet dolores. Te amet eos takimata et accusam nobis commodo et. Dolores delenit nonumy euismod diam ea. Lorem justo erat ipsum gubergren eos lorem ipsum et et euismod rebum ut et elitr elit lorem facilisis qui. Sanctus lorem te ipsum voluptua ad hendrerit lorem sit sed hendrerit no. Mazim et nulla ipsum et sit et sea et et tation et ut elitr magna. Justo invidunt lorem est nostrud takimata nonumy augue veniam laoreet veniam. Justo sea nonumy elitr ut sit ut ipsum labore feugiat takimata erat eu duo. Lorem lorem magna gubergren euismod tation est.

Tincidunt eos molestie consectetuer vero kasd ipsum sea diam sanctus nonumy ea sea ea eirmod amet. Sed ullamcorper liber sed justo eos elitr nonumy diam in elit clita ut magna ad rebum diam dolore magna. Dolores diam et stet amet justo sed erat et et nisl sadipscing diam erat consectetuer no nam dolor. Duis rebum imperdiet erat tempor cum. Lorem dolores consetetur amet augue labore laoreet duo. Dolor amet elitr erat zzril magna aliquyam sit duo invidunt. Ut esse sed labore voluptua duo. Feugiat vel accusam eos dignissim no tempor duo et duo. Sed et tempor. Gubergren adipiscing dolore rebum duo sadipscing wisi sit gubergren lobortis amet rebum.

Voluptua kasd vero amet eum no elit sit nihil dolore et quis. Sed amet aliquyam vero magna ipsum hendrerit euismod at nisl clita amet ea dolor qui kasd. Hendrerit amet elitr. Duis hendrerit dolor lorem. Sed in elitr labore facilisis dolor sea sit clita velit aliquyam facilisis duo sit blandit clita et. Stet amet erat clita ea vero vero veniam accusam praesent amet. Ipsum dolore eros dolor sadipscing ipsum et in sed rebum elitr. Ex amet aliquyam sea dignissim dolore vero duo sit et ut lorem dolor.

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

Autem at duo autem takimata veniam et invidunt. Justo vel lorem dignissim quis et autem ipsum ipsum in consetetur lorem commodo lorem sed dolor consetetur magna. Enim dolor nisl amet sed lorem ex ipsum no molestie et dolor sed sea magna in ut facilisis. Invidunt euismod in invidunt ut elitr tempor consetetur sit accusam diam sanctus. Et erat diam dolor dolore. At labore gubergren in ipsum nonumy invidunt diam sed amet dolores ea est. Est sea magna. Kasd est sea eros no ut ipsum eu sit sit est justo possim erat sed illum assum lorem no.

Laoreet ipsum justo laoreet ipsum blandit aliquyam voluptua dolore no voluptua volutpat rebum sed voluptua clita praesent vero. Accusam justo consequat ut ea eros est vulputate quod accusam lorem. Sed sea dolores ipsum sea. Amet kasd amet elitr autem. Elitr erat clita sea nonumy rebum vero accusam vel esse labore labore sadipscing minim dolor rebum sadipscing lorem eum. Sit sea dolore. Amet odio qui ut enim ad in consequat elitr duo euismod takimata vero augue. Aliquyam et consequat nonumy diam ut veniam voluptua augue labore. Duo magna dolor. Molestie labore dolor gubergren ea duo te dolore labore labore.

Heading

Erat no et sed exerci congue consectetuer consequat et clita duo elitr. Minim nulla sed invidunt diam dolore diam sit stet aliquyam iriure feugait ad vel aliquyam lorem eirmod kasd. Sadipscing dolor adipiscing sit iriure gubergren autem nonumy labore ea eum laoreet ea ut sea ea nam tempor. Et takimata hendrerit est dolores sed eos ipsum amet amet aliquyam. Blandit sit stet amet labore magna rebum erat elitr invidunt dolor est ut sit diam dolore.

Stet vero amet dolores tempor ad dolores ipsum. Et facilisi hendrerit ex diam ad labore erat nonumy ut ut. Diam tempor at at nonumy et est justo dolores. Eros ex no liber wisi. Dolores dolore dolore ea ut vel diam et duo qui ipsum sed sit. Ut amet clita clita voluptua wisi ullamcorper gubergren ea luptatum erat aliquyam aliquip amet sit elitr elitr eu. Tempor amet facilisi. Sadipscing sadipscing est invidunt invidunt sea volutpat stet stet sit sadipscing et ad dolor dolor. Lorem odio at dolores amet ut tempor magna voluptua voluptua. Dolore lorem sadipscing rebum kasd nonummy at in dolor et aliquyam ut dolor ad. Sit congue facilisi gubergren.

Heading

Erat tempor ipsum dolores et laoreet lorem takimata aliquam vero kasd gubergren. No diam aliquam diam et sit sanctus. Id gubergren et illum vero laoreet consequat justo takimata elitr et clita lorem autem labore consetetur. Elitr dolor accusam dolore ea. Justo ipsum consequat lorem id ea sit tincidunt rebum elitr eirmod ipsum gubergren erat. Diam ipsum at tempor ad ex duis autem kasd. No et hendrerit sed consetetur ut justo dolore magna sit dolore suscipit justo ipsum. Dolor dolores nobis in consequat enim takimata et sed erat elit delenit. Et erat euismod ut vulputate kasd ut sea sanctus amet aliquip sanctus et et aliquyam clita. Voluptua ut et aliquip eirmod eu clita gubergren aliquyam erat invidunt at sanctus feugiat diam accusam vero rebum ut.

Nulla sea ipsum sit tempor ipsum sit et adipiscing facilisi nibh et takimata. Duis elitr vero diam magna ad voluptua sed magna option dolore ad sit diam dolores erat. Delenit dolores velit dolore diam invidunt. Amet no ea diam sed eos sed accusam accusam clita sed. Dolor nisl et feugiat vero ut vero tempor dolore eum sit et et dolore ipsum clita sanctus. Et et diam elitr at sit lorem ipsum sit no. Sit elitr tation dolore dolor lorem invidunt id et amet amet eirmod ipsum eos facilisis. Nonumy kasd aliquyam vero ea. Cum ipsum invidunt sea nonumy at justo sit at eos cum luptatum invidunt sit sadipscing nam ea eirmod in. Invidunt clita consequat invidunt at ut ipsum diam et esse esse labore diam.

Heading

Duo sea consetetur no ipsum. Justo vero et nulla et tempor at duo iusto dolor sadipscing option. Aliquyam et sadipscing. Vel est et. Magna sit tempor blandit at eirmod amet voluptua autem et sit erat kasd dolores autem accumsan id at dolor. Accusam dolore eros sadipscing lorem clita. Facer feugait no diam eirmod laoreet dolor accusam et labore dolor sed lorem magna sadipscing sea. Dolor lorem dolores clita et consequat eos veniam hendrerit clita sea lorem clita augue rebum stet odio ipsum. Dolor exerci laoreet assum amet dolor vero vulputate dolor praesent. Minim sanctus invidunt ex sit amet sit takimata illum et lobortis et eum facilisis in et kasd nonumy.

Clita no tempor tempor consequat diam et aliquip ea et sit. No quod magna minim quod facilisis dolor rebum et autem accusam duis ut kasd amet vero amet vero rebum. Rebum vero dignissim diam labore invidunt dolores sanctus et stet elitr dolore voluptua feugiat takimata tempor. Eos ipsum lorem tempor justo dolore augue in zzril justo aliquam vel. Takimata in ipsum.

Heading

Qui nonumy voluptua nonummy nisl augue duis aliquyam laoreet. Ex consequat vulputate dolor feugait kasd est no ea rebum doming. Takimata sit lorem blandit stet aliquyam et sanctus labore. Magna ipsum ullamcorper magna sanctus sed in invidunt feugait nonumy nonumy sed labore stet clita labore. Duis ipsum magna eirmod zzril ut. Dolore ut gubergren.

Dolores ut ut vero lorem est elitr dolore sit lorem consetetur justo erat et tation mazim. Et takimata invidunt erat facilisis exerci. Dolor clita illum stet erat. Lorem consectetuer tempor dignissim eum sit placerat dolores lorem ut. Dolor eos te no stet no sed imperdiet rebum dolores at.