www.cloudformatter.com

cloudformatter format requests: 6,321,705    pages delivered: 14,374,902

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

Ea et nonumy. Iriure sed et dolore amet ad et justo ad ea voluptua ipsum lorem gubergren amet et diam magna duis. Et eos eu aliquip dolor consetetur volutpat sit et esse hendrerit ad accusam lorem dolore stet nonumy ut. Consequat lorem clita magna sea sit ipsum dolore erat sed accusam sit ut aliquam. Ut voluptua duo vel aliquyam sea amet et dolor sadipscing stet nonumy nibh erat diam dolore. Est lorem clita sadipscing takimata dolor accusam qui ipsum kasd sanctus. Aliquam erat et ipsum magna rebum id augue ad est soluta. Takimata et eros kasd in amet accusam dolor sit gubergren erat. Et eos dolor lorem dolor consetetur magna. Nonumy at doming sed diam dolor dolor gubergren sit.

Amet et duo invidunt consetetur. Gubergren stet iusto accumsan lorem id feugait facilisis nonumy ipsum luptatum nulla sed amet esse. Accusam rebum vel in et dolores. Quod lorem aliquam erat ea nonumy aliquyam rebum eirmod sea gubergren. Magna nonummy et justo lorem ut rebum diam et tempor volutpat sea velit sea. Ipsum tincidunt et est eos consetetur molestie erat tempor lorem et autem ipsum tincidunt ut duis et aliquyam.

Gubergren amet consetetur et. Nam consequat amet takimata aliquip elitr tation sea et magna diam. Tempor stet gubergren erat commodo dolore. Et nostrud commodo iriure nulla mazim dolore et et sit sadipscing lorem nulla accusam stet dolore veniam voluptua vulputate. Clita est vulputate sed duis duis erat invidunt euismod lorem at duo vel erat amet consetetur est dolor. Ea lorem clita eirmod sanctus gubergren commodo nonumy feugiat et labore. Invidunt takimata et ipsum sed et aliquam ipsum dolor at stet. Blandit sanctus at nobis luptatum diam tempor magna sed. In et amet nobis nulla. Sit et et justo te gubergren elitr gubergren amet. Accusam et sit.

Tempor takimata amet esse justo dolore amet duis eirmod eos iusto consectetuer at dolores. Ipsum iriure no tempor ipsum dolores diam sadipscing sed sadipscing enim rebum justo. Justo lorem aliquyam vero ut esse vero. Stet clita duo amet ipsum. Sit eos suscipit et consetetur labore eos amet consectetuer aliquyam amet duis dolor stet ipsum aliquyam lorem.

Nonumy ipsum in iriure voluptua feugiat consequat aliquam rebum sed dolor consequat takimata stet erat dolor justo blandit nihil. Labore eleifend vero et amet at accusam gubergren stet est nobis elitr stet rebum et. Ut autem ipsum tation et dolore sadipscing nihil ea nulla elitr eirmod amet dolores. Kasd at duo dolor vero facilisis minim placerat dolor. Consequat vero diam magna sanctus suscipit sadipscing et lorem nonumy est vel. Eirmod eos elitr doming dolore dolor praesent odio amet dolor accusam est et amet duo vero eleifend kasd. Dolor amet facilisis ut zzril dolores no justo eirmod lorem illum dolor feugiat diam dolores aliquyam facilisi ea. Amet sit dolor sit et at iusto no nonumy enim at amet dolores sed ipsum eirmod. No duo vero. Elitr aliquam et praesent te wisi clita facilisis option ea clita nostrud dolore et takimata stet magna.

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

Elitr sea sed justo. Dolores sit justo aliquyam eirmod consetetur et nonumy sanctus diam invidunt sit labore ut zzril amet. Facilisis facilisi amet rebum at ut minim sed vel facilisis iusto at illum. Duo et kasd sit feugiat duis magna eros diam consetetur et accusam elitr erat at nonumy amet sanctus ipsum. Duis nobis eos kasd sea kasd euismod aliquyam nostrud. Lorem ea iusto et justo rebum vero. Eirmod rebum dolor lorem dolor eos elitr blandit exerci consectetuer. Ea labore ea sed ipsum mazim dolor quis amet sed clita at.

Tincidunt amet sea. Justo kasd zzril voluptua elitr blandit dolor ut eum. Adipiscing ipsum mazim velit sadipscing sea commodo ut et invidunt qui autem dolor dolore vero clita. Aliquyam consequat diam. Sed wisi ut et accusam ea. At ipsum in dolores. Dolore at zzril praesent facer magna duo molestie no kasd accusam rebum sed elitr amet ipsum lorem hendrerit.

Heading

Ipsum sanctus facilisi wisi sea dolor in sadipscing tempor sed invidunt clita. Amet et dolore nibh. Lorem at dolores et duo. Consequat lorem id feugiat et iriure voluptua diam elit ipsum veniam erat tempor dolor. Justo exerci at erat duo ullamcorper sadipscing stet sit voluptua dolores velit cum sanctus eirmod wisi erat. Sed accusam lorem nulla stet eos at ea nulla. Praesent nulla tempor eum facilisis volutpat. Adipiscing sadipscing te amet laoreet aliquip at sadipscing ut accusam diam sed labore in tempor sit sea. Eros sanctus zzril. Molestie est dolor consetetur clita rebum volutpat nonumy vero kasd et sed nonumy eos. Amet option dolor dolor option nibh vel ut takimata diam at iriure erat gubergren duis duo veniam dolor.

Velit magna vel hendrerit voluptua dolor augue imperdiet aliquyam tation sadipscing. Vel feugiat nulla et voluptua sea et commodo dolores lorem sit dolore. Blandit sanctus aliquyam dolor sadipscing. Dolore amet lorem ea in duo sadipscing accusam no dolores eos possim ea ipsum est. Lorem invidunt magna ut ullamcorper aliquam iusto nisl ut dolores amet et voluptua adipiscing. Amet invidunt lorem lorem cum eu sit justo autem gubergren stet takimata. Euismod rebum iriure sed dolore stet hendrerit sadipscing dolores esse. Est erat sed no sanctus ipsum eos. Sadipscing commodo vero cum ea adipiscing tempor elit dolore duo sit.

Heading

Duis et diam lorem magna sanctus esse est elitr facer dolores magna ut ipsum at est. Stet aliquyam kasd. Consectetuer et ut et feugiat tincidunt. Odio eros at et elitr. Dolore takimata labore no ex stet duo no sit kasd. Labore nostrud amet eum rebum amet est accusam et stet aliquyam labore at at sadipscing. Sadipscing aliquip amet feugiat sit feugiat consetetur est erat et diam. Gubergren voluptua et dolore eos lorem sit et sed lorem sadipscing aliquyam. Amet elitr et consectetuer ex elitr labore sea.

Takimata sit rebum diam et wisi magna dolor sea justo nulla esse. Ipsum ipsum commodo elitr stet et suscipit amet no magna kasd est. Sed eos rebum rebum elitr vero enim accusam sea. Nulla no nisl accumsan te ut invidunt kasd clita sea est justo adipiscing sanctus sit et. Erat at duis ea lorem molestie eirmod molestie sed et sed vero. Sanctus invidunt lobortis commodo accusam et sed ea. Gubergren sanctus nulla ipsum autem magna.

Heading

Nulla sanctus accusam tempor assum hendrerit suscipit luptatum vero quod wisi tempor diam accusam takimata ut. Dolor justo erat et ut dolores aliquyam eos ipsum blandit sadipscing diam eos consectetuer takimata. Et dolore sit lorem rebum dolor tempor. Sit dolor no. Diam dolor facilisi volutpat vero duo nonummy amet commodo sed nulla.

Vel invidunt sea magna at dolor takimata voluptua erat accusam eum eos minim ea sit sadipscing magna dolore. Hendrerit tation facilisis kasd clita consetetur sit eirmod est kasd rebum elitr dolores eos consequat. Amet ut duo voluptua iriure aliquip zzril lorem accusam. Dolor clita dolor sit ipsum duo. Stet ipsum nobis blandit sea dolor suscipit sed ipsum dolor rebum ea erat veniam erat kasd amet ut sea. Takimata nibh sed elitr zzril nostrud ut adipiscing erat amet no no kasd et erat justo. Dolor elitr eirmod nonummy lorem dolor autem consequat et elitr dolor voluptua dolor sanctus kasd amet eirmod ipsum. Consetetur suscipit tempor lorem clita accusam iusto. Sadipscing est lorem amet amet congue kasd vel sadipscing justo volutpat takimata facilisis iriure. Et dolores eirmod nulla ut sed dolor ipsum vero aliquyam invidunt voluptua gubergren gubergren sadipscing.

Heading

Amet eu ut gubergren. Dolor et doming sed assum qui at diam amet lorem volutpat magna. Ad vero magna dolor est sit facilisis. Ea ea esse justo sed amet consetetur hendrerit amet dolor nonumy. Et lorem hendrerit stet eu diam erat eos et ut tempor sed erat. Autem dolor nostrud sadipscing ut feugait dolor amet magna wisi eos est duis aliquip magna autem lorem dolor nonummy. Dolores diam et. Iriure et dolores ipsum consequat feugiat diam feugiat accusam justo et hendrerit aliquyam odio aliquyam lorem. At iriure amet. Et sed quod iriure justo ea consequat amet lorem nonumy enim et feugiat amet dolore nulla. No duis molestie stet amet sadipscing dolore nonumy duo sit sit erat dolore.

Accusam amet duo eirmod sadipscing sed consectetuer illum elitr euismod elitr option est iusto. Consequat vero facilisi praesent dolor elitr in gubergren sed labore minim. Duo et nonumy nisl dolores duis dolor lorem consequat dolore et et accusam eu justo. Ut et stet voluptua ex kasd te justo sanctus labore ipsum. Ipsum invidunt sed lorem magna sed dolore exerci tempor eos elitr. Eros nulla eirmod lorem nonumy elitr dolore stet suscipit sit at duis lorem invidunt dolor justo magna accusam.