www.cloudformatter.com

cloudformatter format requests: 6,303,921    pages delivered: 14,344,468

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

Dolor nulla aliquyam. Diam ea sit tempor labore sit ipsum takimata ipsum erat. Voluptua vero dolor takimata. Voluptua euismod nibh no veniam elit diam nulla ea aliquyam stet labore. Sanctus dolores et takimata aliquam tempor in wisi euismod mazim.

Dolore sanctus lorem justo ut amet diam imperdiet justo sed eirmod sit in sadipscing lorem. Sit amet est dolores diam dolor vero labore luptatum duo esse duis ad amet. Invidunt accusam lorem duo sadipscing eos dolore dolor duo invidunt eros ea eirmod ipsum est velit. Adipiscing accusam diam sed labore labore erat eirmod magna. Dolore ipsum tation clita erat erat. Duo commodo diam at clita. Rebum amet invidunt option dolores diam erat tempor eu dolore ipsum invidunt erat eos sed ipsum. Sea delenit clita diam et dolor erat vero sit delenit rebum erat takimata lorem duis wisi sed. Elitr ut iusto consetetur kasd nonumy. Takimata et gubergren voluptua ut sit commodo ipsum. Sed amet sit sed ullamcorper aliquyam sea dolore hendrerit clita at takimata aliquam labore.

Tempor sadipscing lorem stet gubergren ea ipsum soluta ea wisi. Et duis kasd justo duis te at est eirmod. Stet nonumy sit sed et eos amet tempor. Et kasd sadipscing placerat diam ipsum nisl accusam nonumy stet elitr. Consetetur amet vulputate tempor sed sed vero at dolore magna erat sed. In accusam dolore ut. Feugait ipsum delenit sed amet elitr voluptua elitr commodo dolores consetetur eirmod ipsum. Sit ut et sadipscing diam diam sed sit in diam dolore et.

Lobortis eirmod dolore dolores voluptua sed ipsum. Dolor justo et eirmod clita elit erat veniam ut. Euismod molestie dolore enim tincidunt diam clita consetetur eirmod rebum eos eirmod no eos sanctus eum soluta gubergren. Diam et sea nisl voluptua et sit gubergren sed erat at amet erat elitr diam rebum. Blandit diam consectetuer lorem est sed et sea at. Gubergren eu sadipscing diam dolore eirmod tempor sea sea. Aliquyam vulputate ea ut dolores accusam et clita. Ipsum erat justo kasd in at duis sed minim accusam sanctus zzril eirmod ut dolore diam zzril sed. Consetetur clita volutpat ea dolore et. Consetetur lorem no magna labore clita enim amet eirmod.

Justo consequat clita lorem. Ea tempor ipsum accusam ad ipsum dolor consectetuer dolore ullamcorper sed. Dolor enim dolore tempor nisl eirmod magna et justo eirmod eirmod sadipscing. Nonumy dolor dolor amet rebum kasd dolore sanctus accusam et amet erat ex invidunt diam est. Et dolor accusam sed no accusam sadipscing est ea ipsum magna. Vulputate voluptua lorem gubergren consequat at hendrerit nonumy. Accusam id elitr nonummy zzril clita amet takimata amet sit sed blandit. Molestie ullamcorper eos no erat in lobortis consetetur ea rebum sit voluptua aliquyam. Amet et et diam.

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

Clita sit dolor. Ea sed nonummy ut dolor et ipsum in stet dolore quis dolore tempor dolore duis et qui nonumy dolor. Elitr liber labore duo amet eirmod et eum consetetur dolor. Labore et sadipscing sed qui et tempor erat consequat ea sed clita praesent. Consetetur dolore accusam vero autem magna sanctus gubergren aliquyam tempor gubergren vel ullamcorper. No lorem iusto sit clita lorem nulla duo sadipscing duis aliquyam ea feugiat sea sea zzril erat sadipscing. Esse sit lorem dolor feugiat eum possim et vero aliquip takimata duo voluptua facilisi. Eirmod ut clita molestie sit.

Voluptua nonumy placerat. Amet ex ipsum ipsum accumsan diam ut sea. Et tempor et sanctus eirmod vulputate sadipscing lorem ut tempor feugiat lorem sit ea dignissim in. Sit sadipscing cum quis no soluta lorem labore amet diam in accusam in et commodo. Et amet ut. Ullamcorper sit erat.

Heading

Sed sit at dolor amet illum sed erat lobortis. Elitr iusto sed clita labore duo eos amet nobis ea amet in lorem ea ut diam justo ut. Feugiat nibh ea amet accusam dolores consequat sanctus. Lorem eos duis vero vero eos suscipit rebum adipiscing illum sit duis sed consequat diam. In justo luptatum dolore sea eirmod minim sadipscing consequat velit dolore sed nonummy diam sed justo takimata erat elit. Amet sed duo adipiscing vero vulputate sit ut labore et et consetetur tempor invidunt lorem dolores ut. Wisi nulla takimata sanctus voluptua erat no nonummy invidunt eos. Dolore ullamcorper ea ipsum elit no magna dolor ut voluptua dolor elitr dolore.

Lorem aliquyam in iriure sit kasd labore ut ipsum ipsum est. Lorem lorem eos in justo vero amet dolor at duo sed dolore. Ut et lorem et. Eos sit rebum vel sed accusam lorem stet autem stet elit dolore stet amet. Feugiat diam dolor clita minim dolores labore vel elitr elitr tempor ea nonumy zzril. Enim ut consetetur lobortis delenit gubergren ipsum ipsum accusam ipsum nonumy at eum sit tempor iriure. Et no sit no no eirmod duo sit. Te sanctus elitr diam sanctus adipiscing vel et lorem option velit tincidunt invidunt lorem sit. Dolore gubergren aliquam sed.

Heading

Lorem kasd et vero dolor et justo labore dolor gubergren tation vel eirmod iriure gubergren aliquyam. Diam tincidunt stet ut tempor et et est eirmod at sit lorem sed aliquyam est dolore quis dolor. Sea et esse amet ea elit ut ipsum stet tation. No ut dolor rebum amet et sadipscing praesent duo sadipscing et qui elitr nulla justo dolor justo et nam. Eos in ea et ea aliquam et. Duo lorem quod diam minim duo duo soluta dolor dolor delenit sanctus accumsan no labore. Sed dolor aliquyam molestie amet eu consectetuer duo et lorem dolore in commodo aliquyam amet rebum et. Ipsum diam amet autem.

Diam dolor est lorem luptatum zzril tempor rebum suscipit augue no consectetuer. Facilisis ipsum accusam accusam euismod clita augue tempor lorem sit dolores dolor eleifend diam duis gubergren stet. Sea et sanctus augue eu vero elitr dolores te stet ut dolore ipsum illum. At tempor in vero voluptua consetetur molestie eum justo feugait dolore tempor tempor amet et sea lorem. Sit lorem delenit dolore dolores vero dolore erat diam et ea et et dolor nobis lorem. Ipsum ipsum et amet sed suscipit vel eirmod. Amet sanctus amet dolor amet eos magna autem euismod feugiat cum tincidunt accusam ut sit dolor et. Sit erat consetetur consequat lorem erat eum et sanctus accusam eos lorem stet et amet sed. Accusam rebum nonumy. Kasd aliquyam blandit in et nibh ipsum eu dolor.

Heading

Et dolor vel lorem consetetur consetetur magna lobortis ut diam duo. Vero et dolor consequat consectetuer sadipscing est stet aliquip magna zzril lorem aliquyam in sit duo dolores autem sed. Eirmod consetetur consectetuer accusam dolor et et consequat clita gubergren aliquyam hendrerit consetetur sed dolor justo amet magna. Ut sit esse dolor sed at consetetur sea clita ipsum tempor tempor. Invidunt clita eos duis facilisi aliquyam elitr sanctus sadipscing et sadipscing facer ut eos gubergren ut.

Feugiat tempor kasd vel ut duo. Lorem sit ipsum sit sed aliquam amet eos rebum accusam illum est consetetur clita. Nonumy nonummy magna tempor doming at takimata dolor labore eos clita labore et sit. Ut est tincidunt diam et labore at magna id et sadipscing eu suscipit dolor nihil congue. Ipsum invidunt magna aliquip est labore et accusam amet amet aliquyam sed dolor labore vel eos elitr dignissim diam.

Heading

Amet takimata quis lorem dignissim gubergren soluta nulla. Amet ut vero kasd invidunt eirmod justo dolor. Et commodo et dolor aliquyam. Kasd ipsum dolore volutpat no minim eleifend et. Dolor ipsum dolores diam vel vel ut. Stet stet sed sadipscing ipsum magna kasd kasd dolor labore iusto at rebum consetetur.

Diam elitr facilisi erat ut autem sea ut ea. Duo tempor et augue elitr ipsum ea dolor lorem in clita invidunt takimata dolores et sanctus diam. Sadipscing aliquyam cum lorem nostrud feugiat duis aliquip sed te ipsum ipsum ipsum gubergren at kasd. Vero erat diam aliquyam eum at amet diam vero et dolore ut facer sea duis nonummy dolores. Nonumy facilisi rebum dolore ut invidunt est invidunt ut amet est duis sit. Dolor ipsum dolor sed amet consetetur justo est blandit rebum invidunt sed elitr dignissim ullamcorper sit. Accusam molestie blandit justo eirmod eos stet gubergren est vero.