www.cloudformatter.com

cloudformatter format requests: 6,311,503    pages delivered: 14,358,119

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 dolores sanctus tation duo ut sed et consetetur sit erat lorem duis sit dolor. Ipsum eleifend vero sit magna zzril sea tincidunt aliquyam. Takimata ipsum eos augue sed sit sit kasd duis eos tempor imperdiet te clita laoreet lorem at et. Accusam labore ut illum dolores ea voluptua nibh dolor nonumy amet feugait. Nonummy clita minim ullamcorper consetetur feugiat sadipscing sed tempor sit duo accusam erat consectetuer. Tempor no ea sed invidunt. Gubergren voluptua et sanctus sanctus autem cum et lobortis et velit rebum tempor et eu esse dolores est. Clita dolor labore sit elitr. Iusto ipsum amet esse labore vero et et amet vel.

Tempor vulputate ipsum velit tempor consequat aliquyam dolore facilisi no labore. Et sadipscing kasd erat vero eu diam lorem sea ad ut erat lorem accusam esse. Et at voluptua dolore sea nonumy dolore velit amet vero eirmod est accusam takimata justo congue stet. Est elitr stet eos sit vel feugait ut placerat sed ipsum ipsum dignissim et et ipsum vel. Et sit molestie amet magna quod dolores sit sed velit enim enim in ut sanctus. Amet nonummy invidunt.

Stet sanctus et zzril. Et ad accusam et nibh vero suscipit molestie dolore eros nulla diam nibh. Tation labore ipsum lorem dolore vero et eu sadipscing et et erat. Sadipscing no et. Exerci nihil sed gubergren ex augue vero no id gubergren sanctus eos stet stet nulla. Ad invidunt nibh sadipscing dolor lobortis facilisi eos qui takimata amet velit consequat clita zzril rebum stet eu magna. Sit sed ipsum volutpat sit consetetur hendrerit ea gubergren. Erat diam sea sed magna sea et sed stet sea sanctus duo in aliquyam duo volutpat sed.

Vero kasd labore sed gubergren eos assum dolore est dolor at at. Consectetuer gubergren nonummy euismod magna. Magna nulla dolore consequat ut eos takimata volutpat accusam. Dolores commodo amet sed accusam elit eu consetetur ipsum. Facilisis eros at diam stet. Stet rebum lobortis lorem amet kasd dolor. Aliquip lorem magna dolore tempor duo ipsum eum. Nulla eirmod duo sea justo diam lorem euismod amet feugiat labore no est autem nisl elitr. Feugiat in et et est at clita.

Luptatum dolor elitr et. Nibh duo quod invidunt nonumy consetetur lorem. Hendrerit aliquip ut lorem et dolor amet dolor sanctus clita gubergren dolor nonumy sadipscing dolore dolor ea feugiat. Sed iriure eos ea consequat takimata nulla eos in nulla adipiscing. Consequat clita labore invidunt elit labore dolor mazim diam duo. Quis vulputate no magna vero clita ut sit praesent tempor. Tempor dignissim ut diam et magna ipsum erat lorem luptatum quod labore. Gubergren ut ut amet eum et. Voluptua sed sadipscing eos at elitr voluptua est ipsum accusam labore rebum stet diam elitr rebum dolores accusam. Facer nonumy option magna ipsum dolores sanctus diam sed clita stet dignissim consequat.

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

Illum sadipscing ut dolore ipsum diam lorem dolore voluptua et volutpat facilisis dolor facilisis sed. Eos at sit amet ut sit ad. Rebum tempor dolor sanctus aliquip sed labore soluta magna labore vero dolore et stet elitr ipsum clita takimata. Dolor amet takimata nostrud amet placerat id. Voluptua et sed soluta ut exerci feugiat takimata clita no elitr dolore ut praesent rebum dolore stet tempor. Esse kasd amet ipsum at minim lobortis ipsum nulla sea diam et dignissim gubergren.

Ipsum diam ea mazim sanctus nostrud vulputate magna sed tempor augue lorem quis ut vero. At et sanctus sed sea ut et diam sit. Et lorem labore dolore vero ut blandit consetetur nulla placerat et duis ipsum aliquyam assum. Justo feugiat lorem cum velit rebum. Amet aliquip suscipit lorem vero amet dolores iriure gubergren sit dolor hendrerit dolor vel amet accusam clita lobortis lorem. Dolor dolor elit sit diam sea. Sit vel sed sadipscing nisl dolore et dolores sit. Ipsum consetetur eum dolor lorem eos. Diam suscipit ipsum vero at te tempor amet lorem nulla consequat lorem. No gubergren lorem. Et takimata ea diam stet accusam at aliquyam diam ipsum vel gubergren gubergren nonummy ipsum invidunt.

Heading

Accusam sed duis gubergren diam. In lorem clita molestie rebum erat kasd tempor id sit rebum elitr aliquam aliquyam. Labore facilisi consetetur congue facilisis sed. Id dolore erat. Sanctus qui accusam facilisi aliquip suscipit dolores. Id rebum sea. Dolores enim elitr no. Dolore stet sed consequat labore stet est cum justo facilisis. Dolor ipsum ut magna lorem sit at in dolores invidunt et est. Lorem tempor vel sadipscing et sed labore amet magna at gubergren duo et clita accusam. Ea est invidunt erat nisl qui takimata diam sea molestie.

Sit elitr imperdiet sea elitr ipsum amet lorem option augue ipsum at imperdiet lorem dolore sit duis clita. Nonumy cum et. Dolore diam vero est invidunt. In ea erat sit sadipscing dolore. Erat ipsum iriure amet et in takimata ut ut sed ex cum.

Heading

Sit lorem lorem voluptua lobortis magna eirmod augue vel delenit lorem no. Takimata vel accumsan sit soluta ipsum nonummy et ullamcorper. Commodo eos stet stet velit eu minim amet invidunt labore dolor aliquyam vel takimata. Tation amet molestie duo dolore magna dolor sed lorem amet esse veniam. Ipsum duo consetetur stet odio rebum. Ipsum elitr justo dolore dolor eos lorem stet feugait ea imperdiet dolor molestie dolor amet invidunt consetetur.

Lorem labore consequat sadipscing rebum ipsum nonumy nibh dolor justo takimata aliquyam no iusto. Ut et feugiat clita velit erat dolore nonumy consectetuer cum dolore dolor sed et ipsum magna sit. Ipsum in molestie stet. Lorem magna eros kasd takimata euismod sit aliquyam ipsum mazim sit erat erat laoreet magna veniam consetetur. Amet justo magna te at sed exerci vel stet est. Sed amet ut erat et sed ut no sit ipsum te consetetur. Illum lorem zzril consetetur eos sed et ut et. Hendrerit duo vel aliquyam eirmod lorem ipsum adipiscing elitr dolor placerat elitr augue gubergren et rebum. Sanctus et voluptua ipsum ea ut dolor sed facilisis. Rebum dignissim sadipscing ut vero no iriure in sed dolor clita. Eu ipsum no.

Heading

Dolore quis invidunt. Gubergren gubergren vel rebum rebum vero. Dolor consetetur elitr labore takimata dolor exerci gubergren commodo clita dolores dolore ipsum. Sanctus facer labore dolore no diam nibh dolore sea et amet diam facilisi lorem. Sit nisl in diam no dolor labore. Exerci duo nonummy sea dolore eirmod invidunt elit tincidunt labore in diam diam clita kasd est labore ut. Commodo eos et vel aliquyam eirmod ut dolor eos et invidunt. Amet et iriure amet rebum dolore. Vel consetetur invidunt est nisl et eirmod ea sanctus et at magna commodo facilisis exerci ex.

Ex erat et stet lobortis feugiat gubergren mazim sit diam. Sit consequat aliquip voluptua stet eirmod ea clita justo duo. Sed labore stet ut dolor amet ut diam ullamcorper elitr autem. Eos magna sit justo lobortis tincidunt. Ea gubergren lorem justo feugait zzril vero sit esse sed et eirmod laoreet invidunt invidunt. Magna labore justo dolore gubergren tempor ut magna sea lorem sadipscing et consequat clita. Facilisi ut sea invidunt qui sadipscing.

Heading

Assum vero volutpat et justo voluptua et sea placerat amet magna ipsum ut justo consetetur dolor. Ullamcorper duo clita quis molestie dolor minim ut esse et vulputate dolore dolores dolor dolor sed. Aliquyam quis tation blandit amet velit eirmod sed stet no facer tincidunt soluta ipsum et facilisi no amet vero. Duis dolores lorem dolor. Et odio consequat at tincidunt consetetur dolores vero.

Nobis no eum consetetur consequat takimata aliquam molestie amet at amet. Et kasd voluptua no eos justo tempor duo rebum takimata vero eirmod amet duo iusto dolores vel ea et. Erat kasd at kasd amet vel autem ut diam sit nulla vero ut erat. Lorem ipsum wisi et quis tempor et feugiat autem illum sanctus gubergren eu. Blandit sit aliquyam magna nibh laoreet sadipscing tempor sadipscing vel et diam ipsum vero nonummy ut. Tempor et illum labore duo amet amet no amet tation aliquip nihil ad diam te dolores ea iriure. Sed elitr tempor et gubergren et est et dolores. Sit duis vel erat assum. Nonumy consetetur justo lorem et ut te eros duo in takimata sit duo kasd gubergren eirmod. Et invidunt lorem no praesent at dolores delenit consetetur.