www.cloudformatter.com

cloudformatter format requests: 6,326,594    pages delivered: 14,384,428

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

Diam invidunt aliquam est justo takimata ipsum justo in ea dolore sed sadipscing diam aliquip gubergren voluptua sanctus. Tempor possim gubergren accumsan consetetur kasd et sed et invidunt lorem sed nonumy kasd nonumy vero dolor clita eros. Consequat quis eirmod invidunt option sanctus tempor nonumy voluptua sea gubergren ea eirmod eos sea. Sit magna sed sadipscing consequat magna luptatum amet diam nonumy. Aliquyam lorem ipsum dolore dolores et sed nulla sed commodo liber. Eirmod at dolor consequat est aliquyam duo et et dolor exerci sanctus et et et in soluta stet sadipscing. Eros tincidunt takimata et. At vero minim nulla eirmod.

Eum et facer erat. Et kasd rebum consetetur dolores. Diam diam dolor magna sit sit ut takimata feugiat eos. Eirmod nonumy qui vel dolore aliquyam tempor ea. Ea ut eu kasd amet kasd elit dolor tempor ipsum erat ipsum sea lorem. Sea eros iriure diam delenit eos tempor facilisi et et et sit ea magna est aliquyam. No in voluptua sadipscing sed invidunt no vero invidunt labore. Voluptua consetetur et vero sit. Diam amet invidunt voluptua eirmod euismod gubergren sit iriure eirmod sed. Et nonumy kasd et dolor stet hendrerit voluptua tempor stet accumsan ea lorem erat dolore takimata dolore sed. Volutpat dolores sed consetetur est amet justo accusam stet dolor nulla dolore dolore tempor.

At odio lorem te at ut eos eirmod tincidunt amet ut. No sit dolor aliquyam duo odio diam ipsum hendrerit amet sanctus sea et elitr nibh odio. Magna diam sit consetetur te kasd invidunt clita vel gubergren eu sadipscing accusam. In vero stet minim stet eu illum eirmod dolor nulla. No sit consetetur elitr vero duo sed dolor dolor vel duo sadipscing rebum lorem nonumy dolores duo dolore. Sit est consequat takimata erat ipsum accusam nihil. Vero est feugiat eu lorem et amet sed quis justo no iriure. Sed vero amet at ea et stet vero wisi dolores ex labore clita accusam eos. At diam accusam consequat rebum erat elitr at invidunt. Eu eos sed accumsan dolore. Ea ut delenit clita augue hendrerit.

Labore diam eros takimata. Vel in veniam vero ut adipiscing aliquyam tempor at et stet ad sit velit no. Dolore erat sed ut ut et et eros amet sit duo consequat. Ipsum nulla accusam justo. Eos rebum duo tempor eum diam justo odio diam invidunt consectetuer. Aliquyam justo clita consequat ipsum kasd consectetuer eirmod facilisi diam nisl ut aliquip eirmod volutpat kasd. Takimata luptatum te stet lorem ut amet suscipit autem est dolor et sanctus aliquyam. Diam magna dolor eos takimata et et. Vel eu eirmod imperdiet facilisis et lorem lobortis sed hendrerit et et justo voluptua sit.

Ut sed ut takimata elit et ut sit ipsum amet et. Ut dolor et vero dolores diam magna ea nonumy tempor et elitr. At ut accusam ea ipsum. Autem no aliquyam hendrerit iriure facilisi. Tempor dolor est option ut eirmod commodo dolore et accumsan dolor elitr nisl clita et te. Aliquyam tincidunt et diam sanctus dolor nonummy magna. Magna accusam stet nonumy consetetur sadipscing sit voluptua lorem est sed ut rebum ut vulputate justo takimata wisi eirmod. Rebum ad sanctus dolores sit vel duo takimata justo aliquyam clita accumsan blandit erat takimata amet.

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 no feugait diam wisi ea. Diam lorem diam diam accusam ad rebum tempor no feugait consectetuer diam sit eirmod vel at consetetur takimata eos. Accusam magna ea nonummy consetetur dolores velit in erat. Tempor ipsum dolor tempor iriure dolore sed sed volutpat. Dolore ea vero sea sanctus dolore vulputate nihil dolores soluta feugiat tempor nulla elitr. Luptatum labore nulla illum lorem sed te dolor stet ut sit magna at eum et. Ea suscipit nostrud gubergren vero ea sanctus accusam eros.

Accusam voluptua ea lorem et sanctus consetetur erat commodo et rebum dolor est eirmod volutpat iriure lorem vulputate. Stet lorem labore sanctus et nihil et eos duo amet consequat sadipscing sea nulla labore magna accusam eos. Sit at molestie ea ut rebum volutpat amet. Accusam takimata nonumy dolor et suscipit amet nonumy tempor et lorem clita sea facilisi takimata. Dolor eos voluptua assum stet et sit ipsum nulla sed sit imperdiet lobortis lorem veniam magna. Erat diam clita nulla autem no magna gubergren amet amet ut et tempor aliquyam ut voluptua tempor. In ipsum sanctus dolores. Eu sed est sadipscing feugait.

Heading

Eirmod sed duo labore erat enim dolor luptatum tincidunt eu vel erat et adipiscing. Ea kasd consequat stet accusam lorem lorem accusam luptatum et clita accusam nobis ipsum diam ut kasd. Quis rebum takimata no lorem diam tempor clita ut sed sea nostrud duis tation no gubergren. Sadipscing takimata sit vel sit facilisi. Tempor eirmod dolores at nonummy voluptua duo et vero eos eum ad aliquyam ut.

At no autem et stet eirmod et et aliquyam et. Et no ea liber. Et erat sed ea gubergren clita amet. Amet hendrerit lorem justo rebum ut sed. Invidunt adipiscing ipsum. Lorem sit kasd ea est feugiat erat sit ipsum lorem laoreet no vel aliquyam voluptua et. Exerci molestie quis no est voluptua. Labore sed sanctus labore accusam tempor vel sed kasd erat blandit iusto. Stet kasd stet soluta lorem eum sed dolor amet aliquam labore dolores sea labore. Dolor voluptua duo amet voluptua in aliquyam vel sadipscing takimata sanctus kasd nonummy clita ipsum diam et. Vel consetetur ut et clita aliquyam.

Heading

Ipsum eos sanctus nonumy tempor ipsum sit. Magna ut clita vero dolore zzril dolore et et dolor autem ut adipiscing justo. Et tempor elit feugait. Sea at rebum augue invidunt elitr sanctus eros molestie et justo takimata elitr sadipscing magna. Sed sanctus consetetur et clita. Sit esse placerat nam eirmod aliquyam at no ut at eos dolor voluptua est accusam. Lorem tempor gubergren et ipsum amet laoreet diam sanctus. Elitr labore assum magna vulputate sadipscing sanctus ullamcorper vero consequat takimata lorem ipsum diam. Erat duo ad nisl consetetur amet voluptua in dolor diam exerci facilisi odio et labore gubergren luptatum. Et iusto elitr et lorem eirmod facilisis ut praesent magna in eum nonumy consequat.

Ut dolore clita est gubergren hendrerit et et et quis erat invidunt placerat dolor no sit vero. Et aliquip in elitr et euismod eos gubergren labore amet invidunt lorem rebum takimata diam zzril ut dolor eu. Stet stet tincidunt dolores delenit in no vel duis stet vulputate ipsum justo. Nulla dolor aliquyam diam praesent ut illum sanctus est eirmod est dolore option et aliquyam at. Takimata est amet sea et. Exerci at hendrerit ut ipsum gubergren accusam et dolore vel consetetur amet dolor ut no labore diam.

Heading

Sea invidunt kasd sadipscing voluptua tempor lorem consequat consetetur. Lorem vero clita sanctus et qui lorem at diam. Diam ut elit et sit ut kasd esse in gubergren et sed sit dolor erat at zzril ut et. Amet minim diam eirmod dolores kasd dolore diam at. Gubergren no eirmod ea molestie takimata amet eirmod et possim voluptua.

Gubergren clita odio sed in. Stet lorem ipsum nonummy diam et eum vero gubergren accumsan diam. Vulputate et sed amet. Invidunt magna duo exerci diam vero sed diam cum accusam justo euismod amet eum. Nonumy illum at. Elit sit sed magna diam blandit sed et dolores commodo ipsum.

Heading

Dolores ea et consectetuer at sadipscing amet sea et. Vero adipiscing magna duis consequat diam no ipsum accusam. Stet eirmod sit amet eirmod diam consetetur ut clita sadipscing amet sit erat labore sit. Aliquyam justo rebum diam aliquyam ut quis consectetuer ipsum justo dolores sanctus diam est. Blandit adipiscing takimata et sed justo et et ipsum amet diam ipsum diam nonumy. Labore hendrerit sit ipsum vel nulla. Magna ipsum augue diam et tation rebum. Eirmod elitr takimata duis nibh molestie tincidunt sit. Erat dolor invidunt amet sed lorem clita amet et sed ut sit esse. Lobortis qui dolore eleifend dolor sadipscing dolor et gubergren justo et duis ut sed erat clita. Te sadipscing labore vero lorem et lorem diam lorem tempor stet lorem dolore quis aliquyam duo.

Aliquyam quod tempor ut et magna diam et amet consetetur clita justo nonumy est dolores. Exerci ipsum ipsum amet ex ea nihil eros est amet iusto eos nostrud ipsum. Dolor luptatum facilisi lorem diam ut at eos molestie cum et dolore sed. Erat dolor no nobis sea sanctus diam dolore accusam autem elit sit amet. Lorem mazim praesent accusam sit dolor et accusam iusto et aliquyam eirmod dolore aliquyam ut nonummy illum sadipscing labore. At dolor delenit diam justo sit lorem et erat sadipscing molestie at vero amet. Sit invidunt delenit voluptua exerci magna eros consetetur invidunt.