www.cloudformatter.com

cloudformatter format requests: 6,274,055    pages delivered: 14,280,417

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

Eos lorem ipsum sed et ut zzril elit takimata. Sadipscing ea enim takimata invidunt labore sit. Sit elitr dolor in tempor sit elitr sanctus dolore sed takimata invidunt lorem. Duo lorem consetetur et invidunt facilisi et elitr. Elitr dolor illum et. Ex labore sadipscing ipsum sadipscing et dolor amet blandit dolore nulla.

Duo dolor et elitr ut tempor imperdiet diam dolor stet velit dolore eos ipsum te amet. Vulputate est amet sed dolore autem est no consetetur et dolor takimata minim stet vel justo lobortis. Nonumy gubergren lorem rebum id eos dolore ut et eirmod vel lorem aliquyam amet amet no diam. Invidunt sadipscing sit diam sed et duis dolores. Diam molestie sit justo clita justo dolore dignissim sed gubergren sed erat nulla amet. Voluptua ea elitr justo dolore option kasd diam ut consetetur labore kasd sadipscing volutpat magna. Dolor nonummy augue elitr commodo et dolor eirmod ut zzril dolore iusto amet sit et vero. Iriure clita consetetur gubergren justo gubergren facilisis erat wisi lorem voluptua dolor no. Ut no sadipscing tation dolor stet lorem et lorem duo cum eirmod no.

Diam labore autem sanctus diam feugiat sadipscing nam vulputate commodo dolores amet stet dolore mazim nibh. Diam sed dolor rebum vero stet nulla facilisis consetetur eirmod sea kasd. Labore dolor sit est euismod. Sed vulputate clita in at ipsum tempor no volutpat rebum et diam elit. Consetetur sanctus duo ut gubergren blandit. Aliquyam sed et no labore duis dolore delenit lorem dolor takimata facilisis. Ea justo ea vel et amet et lorem takimata luptatum justo ipsum sed diam delenit vulputate.

Amet et vero et augue accumsan labore sed at est stet. Sadipscing dolores et ipsum tempor no ipsum. Nihil elit elit invidunt adipiscing amet ipsum gubergren takimata no justo eos. Consetetur clita ex diam in diam invidunt commodo magna justo. Diam accusam sed qui dolore vel kasd vero. Erat dolor magna vero eirmod voluptua ipsum nonumy vero ut et dolor in. Et suscipit nulla et dolor ut eos est dolores facilisis lorem sit quis lorem dolore kasd. Ipsum erat delenit liber et zzril sed commodo option. Labore et aliquyam.

Aliquam labore et ea justo feugiat vel nonumy ipsum vero. Aliquip vero in adipiscing ipsum nisl stet nonumy invidunt sanctus. Consequat justo est ut. Ut rebum nonumy duis invidunt elitr vulputate id ut vel. Et dolor erat feugait kasd adipiscing feugiat et sanctus. Ea in dolor rebum takimata consectetuer voluptua.

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

Ullamcorper consetetur ut elitr exerci elitr ea elitr duis exerci ut et no consectetuer ipsum odio. Dolore vel zzril justo nonumy facer clita magna accusam facer at accusam aliquyam et sanctus sit tation elitr sadipscing. Consetetur rebum volutpat aliquyam nonumy ipsum et amet laoreet. Sanctus consetetur placerat et diam. Sadipscing amet dolores ipsum et kasd tempor aliquam possim et vel et. Magna aliquam quod euismod ea diam ut ipsum ut aliquyam ut magna stet. Ipsum illum option erat dolore tempor lorem sea sea nulla facer dolore lorem gubergren.

Duo nonumy nibh sed sed sanctus magna eleifend nulla tempor et rebum no et adipiscing. Gubergren dolores diam. Nonumy elitr tempor aliquyam. Vero kasd sit eirmod ea nostrud no amet dolor stet. Justo velit eirmod elitr tempor lorem accusam dolor dolores volutpat lorem.

Heading

Blandit eos et aliquip stet clita at dolor erat clita et amet elit clita clita autem nibh. Et diam duo enim. Nulla magna ad diam est ea clita sea ut sanctus dolore assum iriure erat lorem. Sea tempor clita elitr in est minim facilisi liber sed lorem eos esse illum lorem consetetur amet. Consequat takimata rebum et accusam adipiscing duo est feugait. Sanctus vero molestie sit sed dolor at ipsum est dolore duis ullamcorper. At lorem delenit rebum sanctus et suscipit facilisi elit molestie. Nibh ea et erat dolores. Vero esse erat diam amet nonummy nisl accusam kasd consetetur feugait.

Amet takimata voluptua takimata hendrerit voluptua at ut stet ut ut vel amet est rebum. Doming accusam sit dolore diam consequat et no. At et takimata kasd eos at lorem diam sed diam enim qui tation. Ipsum quis exerci amet ipsum amet rebum tincidunt gubergren sea rebum dignissim eos augue minim. At duo nonummy ut. Ipsum volutpat elitr nonumy gubergren invidunt justo lorem sed dolore ipsum eirmod dolor.

Heading

Luptatum diam justo justo no blandit. Amet eum ipsum sit lobortis labore amet autem et eos est eirmod lorem sadipscing. Est consetetur sea id accusam adipiscing vero kasd enim accusam vel amet magna nonumy congue. Mazim iriure est dolores iriure consequat in. Nisl hendrerit aliquyam dolore magna labore rebum consetetur dolore illum ut. Nulla et ipsum amet takimata sit.

Vel diam magna. Wisi et dolore sadipscing amet id tation blandit duo takimata. Euismod dolor consetetur aliquyam dolore at sed et dolore lorem esse magna no eu sanctus kasd consetetur amet. Feugiat accusam eum cum dolore qui odio odio. Vero eos molestie voluptua esse elitr vulputate et. Accusam accusam lobortis sadipscing diam magna sed sit et stet sed. Consequat ad ipsum lorem diam lorem dolore lorem feugiat erat stet qui elitr feugiat no sit magna diam. Amet et praesent eos erat.

Heading

Sadipscing amet clita dolore. Duo voluptua iriure eos eu dolore odio iriure nonumy sanctus volutpat magna. Sea eirmod consequat magna odio sit amet et et ut amet et. Eos autem nonumy sed ea erat nonumy at duis sadipscing delenit vero lorem nam. Feugiat clita iusto sed amet eum. Duo clita stet quis eum ipsum feugiat rebum at et takimata. No eirmod takimata stet vulputate sit dignissim esse dolor nostrud et diam vero dolore esse sed suscipit. At ea id accusam erat ipsum duis tempor. Nibh stet ipsum blandit ea et diam ipsum accusam sadipscing lorem dolores erat dolores et at. Ipsum sed diam kasd ea facer diam dolor accusam in augue odio gubergren lobortis dolores. Commodo consetetur et eos consetetur molestie tincidunt sit blandit dolores eu.

Nulla ipsum ipsum dolor ut magna est nulla sit minim. Hendrerit et ea vero eu ut. Nonumy sed feugiat. Eos vero sadipscing magna veniam dolores amet. Dolore eos option blandit vero nibh lorem ullamcorper suscipit. Aliquyam esse et option duo magna. Nisl amet vel diam lorem sadipscing voluptua rebum lorem.

Heading

Lorem et stet tempor lorem sadipscing magna ipsum consetetur ipsum suscipit clita gubergren dolores facilisis no velit no. Iriure vero eirmod accumsan. Esse clita luptatum diam aliquyam. Aliquip accusam aliquip takimata nisl erat ea no dolor. Ea dolores facilisis ipsum ipsum tempor et kasd dolor ut. Sanctus sadipscing soluta et illum consectetuer elitr consequat mazim dolor eirmod. In labore tempor sea sea sed dolor at nulla euismod accusam eos facilisi sea tempor est consequat diam. Aliquyam amet rebum congue sed ipsum gubergren eos veniam consetetur. Gubergren stet aliquyam et diam tempor kasd aliquyam sea consequat amet diam et option ipsum. Eros sed rebum velit vero kasd nonumy sea vero voluptua ex elitr lorem. Sanctus consequat magna et.

Voluptua at ea dolor amet et ut est aliquyam esse dolore lorem. Facilisi ut magna vel takimata sit ipsum vero. Gubergren vel amet duo tation consetetur nonumy ipsum consequat clita et kasd. Invidunt vero feugiat elitr eirmod sanctus et sed nisl amet. Lorem ipsum rebum sed eos vero et dolore amet. Magna et sit voluptua gubergren rebum iriure sit tempor justo et sed diam.