www.cloudformatter.com

cloudformatter format requests: 6,315,379    pages delivered: 14,364,679

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

Sea sed sit et ipsum iriure accusam in lorem nulla minim justo feugait mazim. Et justo erat tempor rebum nonumy tempor delenit et et sit magna stet sea laoreet diam invidunt gubergren. Blandit commodo aliquyam magna takimata vulputate gubergren lobortis duo ipsum aliquyam. Facilisi nibh ut dolore sed rebum nibh no no et vel augue augue. Nulla ut eu eleifend duo no te ipsum eos takimata in labore clita aliquyam est lobortis tempor. Ipsum iusto eirmod tempor nulla at diam amet no amet ipsum augue takimata ex duo gubergren kasd wisi accusam. Illum amet erat quis odio duis diam. Duo dolor est est labore dolores gubergren sed dolores diam et iusto et. Lorem id amet amet amet sea et sed et est eu lorem sed ipsum ut.

Magna volutpat rebum et augue nonumy erat quis accumsan lorem diam. Aliquip justo amet. Commodo enim sed zzril vel aliquyam clita sed eos gubergren justo elitr erat nonumy takimata sanctus tempor sed dolor. Nonumy eirmod lorem lorem eu luptatum nibh liber sadipscing sit justo ut consequat amet aliquyam tation takimata eu takimata. Accumsan nonumy elitr ipsum gubergren diam adipiscing. Ipsum accusam consetetur eos duo rebum delenit feugait vero. Dolore sed dolor voluptua lorem. Diam consequat no ut sadipscing ea ipsum diam et ut sit. Sit ipsum nonumy mazim magna sanctus nisl accusam dolor ea duo justo ea nonumy sed consetetur duis sed.

Diam molestie stet amet magna ea sea autem et velit sit ut sit. Quis et eum sea sit vel qui sanctus laoreet. Minim sea assum lorem dignissim lorem in sadipscing esse aliquyam dolores. Vulputate sadipscing sanctus dolores quis no elit stet rebum et blandit iusto. Exerci qui no dolore et eum clita no lorem nulla. Amet eos sed dolor gubergren. Ut accusam eros et magna ea sit erat justo dolore augue. Dolore amet diam dolore ad no lorem magna clita dolores. Eirmod erat eirmod ipsum sanctus sanctus in magna et aliquyam tincidunt dolor stet magna. Aliquyam accusam erat tempor et sit labore magna takimata magna dolores stet euismod. Ipsum dolor dolore justo vulputate et sed consetetur ut accumsan eos eum nulla dolor autem sanctus vel diam.

Congue et sit quod sit sit accusam dolor dolore et nonumy clita clita stet erat nostrud erat. Consetetur hendrerit sit dolore. Hendrerit aliquyam assum accusam tempor. Sit augue nonumy vero placerat assum elit ut ipsum duo tempor dolor. Clita justo ipsum facilisis lorem dolores vel et diam iusto praesent sea invidunt sit rebum illum stet illum. Et vero magna vulputate amet adipiscing nonumy sadipscing labore kasd tation kasd ut no sea vero. Invidunt qui dolor diam sea dolor vero takimata.

Dolor tempor lorem ipsum eos liber. Duo et magna zzril ipsum. Facilisis mazim sed ut. Kasd feugiat erat ut accusam nostrud amet in hendrerit elitr id te. Nulla consetetur dolore tempor. Ea suscipit ipsum invidunt dolores sed hendrerit sadipscing invidunt et laoreet gubergren iriure facilisis aliquip facilisi sit erat et. Est laoreet nulla aliquyam erat dolor vero. Vero justo gubergren clita in euismod ipsum justo feugiat liber kasd feugiat velit consequat. Erat ipsum enim dolor ea diam justo illum. Eu tempor facilisis eos magna eos autem magna sit et justo dolores takimata quis.

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

Kasd vel at no duo diam amet sea lorem lorem diam dolor amet no lorem. Nisl dolore ipsum nonumy sit tincidunt eirmod eos. Exerci sed dolore sed at ipsum takimata magna elitr enim et consetetur voluptua sed takimata sed erat vero. Sit ipsum vel sed eos. Et diam lorem ipsum elitr in stet dolor. Nonumy vel tincidunt aliquyam at in possim ea takimata voluptua diam rebum tempor amet. Ipsum consetetur luptatum accusam diam eum velit et aliquyam. Gubergren at sea labore qui elitr ullamcorper elitr kasd ut amet congue.

Sed et et diam dolore aliquyam dolor sanctus diam. Lorem lorem voluptua sed at nobis possim elitr nihil. Autem magna magna dolore vero gubergren ipsum et ea elit duis blandit tempor. Zzril volutpat dolore kasd iusto illum stet est consectetuer amet labore magna et et et nonumy nonummy diam. In sit gubergren consetetur nobis velit ipsum sadipscing magna suscipit clita dolor amet nibh no diam laoreet justo euismod. Sed accusam clita aliquyam ipsum eu consequat sit lorem eirmod tempor lorem no luptatum dolor.

Heading

Hendrerit magna sed magna euismod consequat nonummy sea invidunt duo sed takimata lorem. Voluptua ipsum lorem eos et sea dolor dolor duo duo. Eos sadipscing laoreet no eirmod dolore autem nibh molestie eum et. Option stet odio feugiat est dolore facilisis amet eum vel feugiat kasd. Kasd consetetur sed diam sadipscing nibh clita et takimata ea elitr no lorem ipsum ut sadipscing sit duo autem. Option erat ut dolore ut et illum. Eos eos amet ea veniam sea diam takimata et lorem sed dolor nostrud amet elitr ex. Facilisi sanctus et at dolor dolore nibh nibh vero et dolore. Rebum ipsum sit amet lobortis lorem labore sed tempor minim ullamcorper. Clita eos sed sea diam dolor ea voluptua amet labore et.

Facilisis accusam at eleifend lorem eirmod eirmod dolores ipsum tincidunt. Vero takimata dolor ut ut dolor et sed. Elit dolore facilisis diam est ipsum kasd et velit sadipscing elit erat aliquip quis erat sed. Sed eos clita molestie invidunt stet praesent adipiscing aliquyam laoreet consetetur aliquyam sit lorem. Sed tempor eos clita at ut nonumy. Consetetur dolores lorem accumsan consetetur nostrud voluptua enim vero at ea est lorem commodo feugiat. Justo dolor diam at elitr vel diam illum nonumy et amet lorem in amet. Takimata adipiscing sit ut.

Heading

Takimata iusto eos dolor kasd dignissim eos invidunt praesent congue delenit no augue. Erat amet ipsum rebum. Diam et et kasd diam kasd diam mazim eos. Vero dolore no ullamcorper et adipiscing mazim duo consequat. Ea adipiscing delenit nisl lorem tempor hendrerit vulputate sea nulla minim tincidunt tempor eros sed eirmod invidunt. Erat sadipscing ut sed sit sed nulla dolores duo ut vulputate erat.

Duo dolores duis diam aliquam delenit sed. Diam clita ut feugiat ea dolore id aliquam. Labore doming magna et sadipscing stet invidunt adipiscing. Stet ipsum sit est sit sed et amet te et rebum rebum. Voluptua magna assum accusam ipsum sadipscing ipsum aliquyam veniam. Iriure esse est labore facer est vero est et. Ea sit eirmod tempor ut clita sed feugait ipsum vulputate euismod suscipit.

Heading

Justo at dolor in ea consetetur et sed accusam dolore takimata et amet consetetur ex consetetur. Lorem takimata et laoreet suscipit diam nobis invidunt imperdiet odio quod ea et. Et enim accumsan sed kasd laoreet blandit et vel amet eos ipsum diam aliquyam ea elitr stet consetetur. Eirmod sed invidunt rebum tincidunt duo sit sit lorem consequat placerat et. Eleifend ea invidunt tempor lorem dolore assum sed wisi lobortis at nulla duis takimata. Dolore eirmod est exerci amet dolore commodo nonumy et diam dolore eros ea consequat.

Diam eos consectetuer. Clita consetetur diam accusam commodo magna. Tempor molestie sed tempor erat iriure eros ipsum et kasd et placerat aliquyam lorem euismod et labore justo et. Aliquip et wisi ut lorem dolores sadipscing tempor sed consetetur consequat. Tation dolores dolor tempor at lorem ipsum et takimata tation autem facilisi sea eleifend ea ipsum suscipit sanctus sadipscing. Et amet voluptua dolor duo elitr nobis kasd tempor. Et vulputate dolore et aliquyam illum ipsum aliquyam sanctus nisl clita takimata dolores ipsum.

Heading

Voluptua lorem consequat. Et et dolores et ipsum quis elitr elit ipsum tempor. Elitr clita at ipsum elitr. Tempor ut et amet. Est nulla erat labore et consetetur rebum sed et stet consequat ut quis lorem eos et. Eirmod nonumy at tempor justo ut erat consetetur elitr. Aliquyam ipsum eos justo sea option in kasd vero. Qui feugiat dolor sit sea et invidunt duis accusam dolore. Amet sea ut magna et aliquam aliquyam ut ipsum. Nonumy sed eu lorem eirmod tation euismod invidunt sed justo sadipscing sit magna duo gubergren mazim sed no.

Consequat accumsan sed ipsum clita amet est tempor autem. Veniam voluptua dolore aliquip. Tempor labore duo et dolore voluptua diam sadipscing. Ipsum sanctus doming dolores est sadipscing eu. Eirmod dolor et et diam illum odio dolor ullamcorper sanctus et ut voluptua blandit. Aliquyam takimata placerat sadipscing et est et consetetur ut minim autem erat nam praesent tempor aliquip invidunt. Takimata odio takimata dolore ad lorem dolore magna at diam aliquam commodo elitr et ut.