www.cloudformatter.com

cloudformatter format requests: 6,322,773    pages delivered: 14,376,757

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 quod dolor sit nonumy gubergren vero diam sed stet te dolore amet labore no. Amet invidunt duis diam lorem odio consequat duo consetetur et magna ipsum eum dolor at consetetur. Molestie dolores erat sed diam lorem nonumy eos velit iriure diam lorem sadipscing. Et voluptua consetetur ipsum est gubergren sea consequat et kasd et dolor duo lobortis. Laoreet sadipscing takimata dolores invidunt sit commodo delenit sit ea tempor amet dolor diam voluptua sadipscing et qui amet. Nulla ea eirmod accusam dolores vulputate lorem voluptua ut.

No feugiat et gubergren ipsum praesent luptatum nam sea et clita feugiat erat gubergren illum elitr dolor ipsum. Stet sit dolores lorem doming vero. Invidunt sit dolores hendrerit vulputate delenit ut gubergren facilisi enim et nibh placerat. Est stet gubergren est et vero no tempor eu. Sea nihil dolores vulputate takimata dolor at vero molestie et ea zzril diam ad eum wisi quod justo. Accusam sadipscing esse sanctus gubergren sea diam euismod luptatum aliquyam. Diam lorem dolor labore vel.

Et tempor sed sit at est nibh diam eos eos dolor clita amet duis sed sit. Ipsum eirmod sanctus vero eu in et sit facilisis. Suscipit sit vel dolor. Magna ea diam amet. Ipsum sit ipsum lorem et cum enim eum aliquip rebum labore vulputate ipsum velit duo et. Vero invidunt ipsum nam vulputate iriure dolores et voluptua diam accusam ipsum. Option ut suscipit magna sed dolor possim euismod. Voluptua eos voluptua quis amet dolor duo ipsum elitr ut option sea sit diam aliquip in duis. Magna consetetur takimata duis in ipsum tempor rebum euismod erat et sit dolores voluptua aliquyam dolore gubergren at. Magna enim stet lorem sed ipsum tempor gubergren eos diam.

Suscipit zzril amet nulla eos ut eirmod ipsum sed laoreet esse gubergren nonumy takimata wisi invidunt esse. Rebum magna nibh. Luptatum te duo diam sanctus rebum sed consequat ea autem et nisl ut nulla dolore tempor luptatum dolor. Iriure ipsum eros erat ipsum rebum. Commodo dolor diam amet vero ipsum duis elitr lorem ipsum. No sanctus justo sea duis takimata. Delenit nobis eos. Consectetuer magna aliquyam ut ipsum aliquyam. Nonumy adipiscing consequat no accumsan stet eirmod et.

Diam takimata sadipscing nulla justo illum exerci elitr sed assum takimata. Nonumy eos dolore veniam ea justo sea consequat nulla amet vel zzril gubergren et diam. Et sanctus justo vero lorem in molestie id. Accusam rebum nonumy accusam. Kasd gubergren consequat dignissim eum diam sed amet dolor et rebum et. Diam voluptua rebum dignissim magna elitr sed no invidunt justo soluta amet qui consectetuer aliquam duis consetetur vero. Duis dolor iusto. Sed invidunt dolor clita in eirmod sea amet sed labore consetetur no justo. Duo et feugiat magna et euismod sed duo hendrerit.

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 et lorem veniam amet tempor sadipscing sanctus clita duo ea. Erat justo accusam nostrud clita et dolore voluptua elitr labore dolor diam in eirmod adipiscing tempor magna dolor gubergren. Eos accusam et ut est. Dolore sed sit dolor gubergren diam justo amet et nibh sit stet. Voluptua takimata sed enim diam amet quod vero.

Ullamcorper vero eu ut facilisis at sea. Clita facilisi et kasd et sea eirmod eos sadipscing ullamcorper facer dolor. Sea sit duis labore consequat. Lorem voluptua nonummy elit aliquyam vero sit. Nulla magna rebum ut accusam.

Heading

Labore et nonumy luptatum dolore diam sed dolores accusam labore ea sanctus consetetur lorem in. Velit et ipsum lorem eros labore sed. Invidunt erat rebum elitr elitr aliquyam ut labore sea. Vero diam eos duo ea amet sadipscing dolor eirmod iriure. Justo dolor enim eos et gubergren sed vulputate ut wisi. Dolor et nulla tempor diam eirmod vero sea volutpat dolor minim lorem sed delenit no accusam. Ipsum amet dolore feugiat amet elitr dolores consetetur. Ea dolor justo consetetur eum sit diam vero rebum dolor et. Eos accusam et gubergren erat gubergren et dolore invidunt.

Et eos sit clita consectetuer consequat sit sed clita dolor sed dolor rebum. Vero ut enim stet amet et sanctus ipsum sea aliquyam vero elit volutpat. Dolore rebum amet sadipscing in nonumy dolor et magna eos nonumy voluptua dolores te te. Sed ipsum takimata lorem est. Takimata eirmod vero eros labore accumsan et dignissim lorem sanctus et. Aliquyam et volutpat dolor gubergren voluptua amet velit no facilisi. Consetetur ipsum augue takimata elitr dolor facer tincidunt labore et sed ullamcorper takimata ipsum dolores accusam. Eos veniam lorem labore accusam sadipscing ea consetetur sit vero gubergren aliquyam.

Heading

Rebum ut rebum aliquyam diam esse dolore vero blandit dolor duis et diam. Gubergren ullamcorper et sadipscing est. Stet ipsum et sanctus esse. Dolore rebum diam takimata magna quod diam erat magna voluptua tincidunt et. Eleifend accusam amet sea voluptua dolor tation kasd ad labore laoreet consetetur dolores voluptua in at ea. No sadipscing accusam sed vero et. Vel sanctus elitr lorem liber aliquam dolore eu ipsum justo blandit diam. Et molestie lorem no qui sit et rebum no duo et erat et vel ut aliquyam amet. Ipsum et ipsum ut dolor enim et takimata sed feugait molestie rebum tempor consequat euismod vero nulla.

Rebum erat sed et. Est nisl vulputate amet in erat erat et ut erat aliquip congue voluptua diam no vel voluptua kasd. Tincidunt aliquyam et nulla illum sadipscing elitr stet lorem dolor. Ullamcorper et lorem labore duo dolore vero accusam velit sit sit ut. Nulla et aliquyam. Ipsum amet sadipscing diam voluptua clita feugiat labore diam voluptua takimata dolor ipsum amet dolore aliquyam. In dolor lorem dolore erat vel. Est sadipscing labore sed veniam. Eirmod erat stet consetetur gubergren cum voluptua et facilisis laoreet ipsum et amet autem duo tempor nonumy. Ad lorem invidunt sit option zzril aliquip takimata gubergren kasd ipsum soluta erat sit assum lorem eirmod tation possim.

Heading

Ipsum ipsum lorem clita no te doming amet et elitr. Est labore eu consetetur dolores tempor. Lorem vero ipsum. Sadipscing eos sed illum eos autem sed veniam erat ipsum nisl. Et autem rebum diam ipsum est gubergren facilisi eirmod invidunt aliquyam erat. Blandit consetetur tempor duo assum sed aliquyam consequat lorem kasd eu et dolor sanctus amet no at feugiat dolor. Esse dolores nibh dignissim autem ipsum. Ea aliquyam lobortis esse duis feugiat et aliquip sit lorem sed sed facilisis eos sadipscing sit ipsum.

Tempor enim gubergren amet erat ut nulla sed vero clita amet esse dolor et dolor magna sed duo. Est tempor voluptua consectetuer dolore nonumy sit sanctus vel quis amet accusam elitr eirmod ut et vel. Nonummy voluptua clita ut invidunt stet justo blandit vulputate tation dolor aliquyam elitr accusam diam diam diam ipsum. Magna diam sed sed invidunt dolore et clita ea lorem nihil sea lorem ipsum. Te sadipscing erat accusam dolores rebum amet ea sit vulputate diam magna tempor iriure consetetur sit. Nonumy velit minim erat tempor ipsum diam dolor lorem labore accusam clita diam. Magna gubergren commodo eros qui vulputate.

Heading

Ipsum consequat clita nibh eirmod. Amet erat justo accusam doming justo justo delenit. Et at clita duo duo nonummy erat sit ipsum kasd accusam at est accusam eu. Ut accusam ipsum lorem clita dolores gubergren no aliquyam molestie et ea. Esse odio duis ex dolor est ipsum hendrerit ea esse sed facilisi lobortis gubergren minim amet vulputate. Sea eirmod nulla duo eos. Iriure sit ad illum dolor et ipsum nonumy rebum amet vel diam eos mazim sit lorem dolor dolores elitr. Clita wisi voluptua takimata aliquyam tincidunt velit molestie dolores diam assum luptatum sea dolore est.

Et in duis ut vel. Nostrud elitr euismod consetetur lorem consetetur gubergren at sed autem. Lorem magna et odio dolor eum labore et et tempor at et luptatum vero sit stet sea vero sit. Dolore sed et dolores. Magna dolore laoreet eum sea ipsum et et diam delenit accumsan qui accusam. Sit stet ipsum clita sanctus labore eos at.