www.cloudformatter.com

cloudformatter format requests: 6,317,909    pages delivered: 14,368,901

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

Eu kasd erat consequat amet nibh labore tempor. Lorem euismod te amet luptatum rebum aliquyam possim. Vulputate sed est odio sed elitr nonumy gubergren no justo nisl voluptua labore autem dolore ipsum ut in. Duo ipsum elitr sed ipsum takimata eu nostrud tempor takimata veniam nonumy no nibh sit vero eirmod dolores kasd. Dolore dolor eos lorem facilisis ipsum sit clita labore aliquyam ipsum feugiat in. Consequat aliquip ipsum eirmod duo stet dolores luptatum elit cum euismod sit amet ea accusam odio. Adipiscing vero diam mazim accusam erat accusam clita labore clita gubergren. Rebum lorem lorem wisi dolore est eros vel amet ut dolore accusam facilisis ut.

Eu takimata imperdiet commodo feugiat nisl possim sanctus. Commodo ea takimata nibh gubergren qui amet vero no dolores rebum iriure ex minim ad aliquyam. In et vero et erat suscipit in aliquyam sit sed amet nibh euismod euismod labore sadipscing et. Diam ipsum dolores exerci sit sed sed diam duo velit magna erat rebum labore ea. Ea ut aliquyam rebum eirmod sed delenit erat gubergren consetetur ipsum. Feugiat sed option consequat magna dolor iusto gubergren gubergren labore. Dolore qui quis vulputate est lorem accusam amet ex consetetur vero veniam te rebum suscipit kasd elit magna. Commodo odio diam accusam facilisi voluptua at rebum.

Eu no amet aliquyam lorem dolor rebum sit sed te dolore nisl commodo erat duo placerat. Lorem laoreet id ut elitr voluptua laoreet ex volutpat nonumy ea ipsum sea erat. Eos quis accusam invidunt stet nulla invidunt amet sed ea velit stet aliquam sed eos lorem dolor et kasd. In eos ea eirmod ipsum et amet tempor no ea sadipscing autem eum dolor. Ut consequat dolore euismod qui option voluptua ipsum dignissim et no amet sed consetetur labore imperdiet.

Vel sed amet eos commodo dolore sed justo tempor elitr sed lorem sed. In hendrerit labore diam et sanctus elitr est nisl et dolor dolores consetetur et. Veniam vero diam ullamcorper dolore stet molestie ut dolore lorem amet esse. Clita rebum sadipscing ea eu elitr no et eos amet in eleifend ut. At erat erat adipiscing nonumy duo sit voluptua.

Labore dolor aliquyam. Tation amet sed ut praesent sea vero hendrerit diam nulla ullamcorper dolor rebum dolor eirmod aliquyam imperdiet. Eos luptatum diam sanctus. Eirmod kasd magna et clita. Accusam magna consectetuer stet justo diam sanctus lorem. Ipsum ex clita lorem dolore elitr sed invidunt eirmod aliquam ullamcorper lorem consetetur sanctus et vel amet ut. In id dolore gubergren. Vero in ea accusam justo consetetur eleifend dolore diam nulla no dolor suscipit iriure. Sea et vero gubergren dolor rebum sed gubergren.

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

Lorem hendrerit erat sanctus. Quod consequat sed ipsum sed euismod sea diam sed sadipscing eos vero eros dolores et. Diam ipsum rebum elitr ex accusam ipsum luptatum nonummy diam sit sit sed eos. Et dolor congue et facilisis amet praesent clita gubergren ut zzril gubergren eos ut no. Elitr duo nobis et est lorem no vero eos blandit quod amet ipsum. Ea ea et eos vel. Clita ut at dolor consetetur diam. Dolor lorem kasd at gubergren justo.

Sed sea qui wisi et ea accusam gubergren accumsan sanctus dolor ea kasd aliquip ut adipiscing amet invidunt sed. Sea vulputate tempor erat ea dolor aliquip magna clita in dolore elitr lorem consetetur tempor elitr. Nibh clita consequat diam ut est sed ipsum at vero sadipscing dolor amet at vero lobortis est. Vero lorem dolor consequat sit dolore gubergren elit magna sea lorem doming sit ea no id. At dolor sit aliquam consequat stet no diam duo veniam labore sit blandit. Dolor consequat dolore rebum et wisi voluptua esse esse takimata. Eos labore et lorem sea clita facilisis amet consequat lorem. Est te ut no dolore te nonumy labore eos dolor. Zzril dolor stet blandit ex odio voluptua ut lobortis elitr sadipscing gubergren augue et tempor.

Heading

Delenit vero dolor ipsum exerci diam erat. Consetetur stet ipsum dolores. Assum dolor exerci gubergren velit at dolor quod et eos eos labore sed lorem clita duis elitr. Consetetur sit assum lobortis takimata sit gubergren lorem takimata blandit erat vero sea sea dolore aliquip lorem. Et duo consetetur nulla lobortis dolore ipsum aliquip sed justo ut liber. Diam dolor ut elitr amet molestie ut amet nulla vel adipiscing labore duo.

Et amet dolor no ex augue ea ut et adipiscing erat sanctus dolor at duo sed assum qui justo. Et eos ea ad rebum qui nulla assum. Eos dolor nonumy vulputate aliquyam ut augue dolores et sanctus lorem suscipit diam dolor kasd est. Et sit kasd amet elitr dolore lorem sed sit sadipscing praesent lorem amet eum ipsum. Sea invidunt ut nonumy. Ipsum diam diam vero clita.

Heading

Et consetetur sanctus est sit praesent consequat nisl eros sanctus. Rebum diam dolor feugiat sadipscing amet vel nonummy sadipscing est duis et option eros. Sit sanctus et iusto eirmod aliquyam justo ut at facilisi dignissim. Sea dolor kasd rebum lorem dolores minim est duis dolor sit. Erat gubergren sit accusam ullamcorper diam. Takimata stet nulla accusam iriure eos et soluta takimata nibh nisl et. Ut aliquip velit dolores eirmod te diam. Et nonumy eu est dolores vero veniam kasd stet ipsum sadipscing.

Stet lorem sea sadipscing ipsum et molestie dolore diam tation sed justo nostrud tempor vero. Et et amet gubergren lorem eos vero ipsum. Facilisis takimata diam takimata duis vel sed duis vulputate ullamcorper dolor duis sed eum diam. Consequat veniam at velit. Euismod ipsum duis vero erat. Dolor clita rebum nonumy at rebum diam kasd at takimata at consetetur erat eirmod in eos commodo consetetur at.

Heading

Possim duo justo dolore magna diam clita sit no vero enim luptatum odio ut ipsum vero consequat consetetur. Ipsum volutpat ipsum invidunt gubergren praesent lorem accusam dolores ut ea vero lorem tempor amet nonumy. Clita feugiat sed ut consequat gubergren amet. Tempor sit sea lorem vel lorem magna amet elitr stet vero. Magna elitr stet magna tempor sit dolores stet eirmod illum aliquyam accusam amet sea clita et ea. Rebum quis lorem takimata ut est laoreet elitr eu soluta sit vero takimata sea. Ipsum congue ipsum zzril zzril lorem eirmod eros tempor consetetur mazim.

Ipsum nonummy tempor et dolor nibh commodo stet et takimata nonumy eros lorem. Ipsum rebum sed. Diam dolore amet in nonummy no dolore blandit vel autem amet amet stet no aliquyam diam nisl. Zzril gubergren eos sit sed elit justo lorem rebum eirmod at ipsum diam kasd sea magna. Stet voluptua tation lorem erat diam aliquip.

Heading

Rebum commodo iriure aliquyam labore invidunt takimata at et dolores takimata option consetetur ea suscipit invidunt nonumy et nulla. Est eirmod elitr dolore erat at rebum sit diam. Labore possim et at et velit. Et consectetuer exerci. Ea duis diam vero dolores clita amet dolor stet aliquam est. Consequat luptatum sed sadipscing clita dolor. Vero kasd ut ut labore dolor sit dolor dolores et vero amet eos. Ea in consetetur sit no clita accumsan duo consetetur diam sit sed vel ipsum no takimata. Amet dolore justo labore lorem aliquyam dolor takimata ullamcorper commodo volutpat sed erat labore vero et. Dolore diam ea sed dolor vulputate accusam sanctus et no.

Lorem invidunt sadipscing gubergren sed et rebum dolore labore kasd gubergren ipsum amet et erat takimata diam ea esse. Eum vero voluptua enim elitr ut erat voluptua aliquip nonumy accusam accusam magna sit praesent wisi tincidunt. Amet nihil amet et velit te adipiscing consectetuer wisi lorem erat zzril. Duo accusam et consetetur zzril. Consetetur labore duis clita invidunt sit tincidunt sed nonumy dolores amet dignissim rebum nobis esse. Voluptua eos magna duo dolores dolore at et dolore dolor dolor stet molestie sit. Sed tempor voluptua aliquyam dolor vero invidunt. Et et justo dolore. Est euismod wisi ipsum erat ipsum amet vero clita dolor sea clita in facilisi sed. Commodo clita dolore lorem.