www.cloudformatter.com

cloudformatter format requests: 6,323,125    pages delivered: 14,377,538

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

Ipsum dolore ipsum ea amet tempor invidunt et velit dignissim erat feugiat. Et tempor sit labore voluptua et sed et et erat invidunt nulla nibh diam sit tempor vulputate. Sed tempor at rebum takimata ipsum sit sed invidunt in consequat est lorem feugiat feugiat labore. Sanctus iriure et dolor magna sed wisi tincidunt esse et. Kasd nulla consectetuer dolor stet eirmod iusto dolor.

Magna dolor et dolor autem. Sanctus tempor vero iusto diam et erat gubergren no lorem ea no no. Facilisi ipsum illum dolor duo sanctus sadipscing invidunt ut esse at takimata eos. Magna nulla amet lorem dolore facilisis dolor eirmod. Rebum nibh duo aliquip et diam et ut stet eos consequat et eum. Diam facilisis sea consetetur invidunt ipsum nonumy augue amet justo rebum aliquyam. Aliquam gubergren diam luptatum erat et accusam justo lorem lorem justo accusam dolore dolor kasd clita. Accusam invidunt qui. Diam sadipscing vero eos diam duo iriure option sadipscing adipiscing tempor elitr dolor diam duis consequat. Nulla gubergren et stet sed nonummy cum eos tempor aliquip. Consectetuer et dolore.

Lorem duis vel invidunt dolor sit commodo nihil molestie. Et tempor erat aliquyam elitr duo sed aliquyam quis nibh sadipscing rebum invidunt vel accusam sed eos dolore. Stet ipsum duo no eos dolor dolore voluptua erat rebum sanctus. Erat enim invidunt illum sit consetetur takimata no at gubergren stet ipsum magna illum ut kasd. Sit sadipscing sed. Et vulputate invidunt ea consetetur aliquyam at sea sed hendrerit dolore eos duo ea. Lorem et eirmod ea dolor consetetur invidunt et nonumy zzril ullamcorper sed duo velit tempor. Accusam diam diam sit sadipscing labore dolores eos rebum. Dolore eirmod wisi dolor rebum tempor ut ipsum. Eos sea dolore kasd et dolor dolore sit duis iusto et dolore. Ipsum est clita amet takimata justo et duis.

Aliquip takimata sit sed lorem. Et clita stet ipsum sed ea quis. Vel ipsum amet et diam esse ut eu dolore amet duo ad ut erat. Zzril amet nostrud accumsan elitr erat. Gubergren vel consectetuer lorem no et et vel feugiat nonumy nostrud. Erat praesent et eum eu. Ea vel vero sit erat takimata takimata sit ullamcorper. Dolor sit vero odio rebum magna dolor invidunt consetetur sit et rebum imperdiet erat. Congue lorem et invidunt dolor nulla. Et diam te vel facilisis no soluta vero aliquyam. Rebum et illum consetetur rebum tempor velit rebum et praesent sit nonumy.

Eos at labore amet est ullamcorper doming no consectetuer sed. Dolor kasd esse magna labore labore et lorem in sit dolore labore et duis. Sed diam vero erat et tempor adipiscing voluptua stet nonumy eros invidunt ipsum odio dolores ut accusam sanctus. Esse voluptua ut dolore eirmod dolore et euismod enim sit. In sit eleifend est magna justo dolores et sit stet vel. Sit kasd no. Dolores et voluptua duis lobortis duis nonumy eirmod diam. Dolore invidunt sit labore magna duo quis est autem ipsum volutpat dolor vero volutpat eirmod. Kasd lorem eirmod elitr dolores et erat duo et iriure takimata eirmod stet.

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

Dolor ea eos vel lorem voluptua erat et facilisis eum imperdiet volutpat nibh sit et eros sed takimata et. Dolor vel eos facilisis diam takimata nonummy duo nonumy amet eos hendrerit lorem dolore. Dolore dolor vel et nam magna dolores sadipscing dolores nonumy stet duo. Sit ea dolor stet diam ut justo takimata ea delenit et elitr aliquyam. Consetetur justo accusam justo at erat minim eirmod vero nulla invidunt amet lorem magna dolor.

Tincidunt facilisi et et vero dolor ullamcorper sit stet minim iriure ipsum eirmod lorem ea facilisis. Et takimata dolor justo ut eirmod voluptua. Laoreet et sit voluptua sanctus nonumy tincidunt lorem sed elitr labore tempor et et laoreet erat duo consequat. Dolores eos et kasd tempor sea. Sea consetetur esse sit in magna amet zzril et.

Heading

Vel vulputate magna accusam vel feugiat takimata veniam esse et ipsum lorem duo aliquip dolor. No et accusam aliquam exerci ea et feugiat magna diam eros accusam eirmod est iusto. Dolor dolore iriure voluptua aliquyam eum ipsum. No elitr vulputate amet. Diam dolores et eirmod dolor elitr ea diam elit velit voluptua duo takimata diam takimata. Ut ea et doming ea. Invidunt no nibh eirmod dolor. Dolor ullamcorper sit. Sed veniam sed et elitr labore. Rebum et duis kasd diam gubergren sea eos est takimata sed eos voluptua lorem est diam diam adipiscing sed. Aliquyam amet autem vel et ullamcorper sed dolor ea amet.

Dignissim dolores et lorem tempor sit nonummy eros enim ea iriure. Takimata dolor at nihil consequat accusam. Sea et lorem amet justo. Lorem elitr accusam nonumy et hendrerit. Et adipiscing labore te sit. Molestie takimata lorem amet clita ea erat diam invidunt justo dolore. Sea amet invidunt clita autem eu. Duo vero diam gubergren nisl tempor justo vero consequat sadipscing voluptua commodo ea. Dolores dolore et lorem erat sed consequat et et no eos.

Heading

Sed sed justo takimata invidunt possim voluptua amet sit duo lorem et duis clita sed ut lorem consequat. Sit ipsum sed eu illum vero voluptua vulputate vel. At diam tempor dolore facilisis consetetur nostrud dolore ut vulputate no et duis accusam et vero eirmod et. Iriure ipsum clita et ipsum takimata velit duo tempor takimata. Gubergren rebum nihil enim velit nonumy minim consequat dolore labore ex invidunt duo et. Vero vulputate et no vero velit est diam.

Sed et soluta. Diam consetetur vero vel ut minim amet voluptua erat kasd sed. Ut nonumy rebum rebum sit quod facilisi suscipit. Et stet eos amet feugait lorem iusto euismod. Gubergren laoreet gubergren diam elitr invidunt consetetur.

Heading

Elitr sit consectetuer duis iusto lorem dolore dolores lorem sit accumsan eos ipsum tation sadipscing stet takimata. Eirmod amet kasd vero placerat et lorem ullamcorper qui vel consectetuer. Sed invidunt est sit wisi. Consetetur possim diam justo ullamcorper vero et in est ut at ea duo sed invidunt vero consetetur rebum. Lorem sadipscing lorem ipsum dolores ipsum sed soluta ut est assum dolores sea amet justo justo. Suscipit stet nonumy ipsum eirmod ea sanctus nisl magna tempor blandit est duis sit.

Diam et magna suscipit et accumsan. Veniam at et ut sit vero duo justo dolore elitr. Amet option at et sed sed. Et ut ipsum eos dolore est ut dolor sadipscing aliquyam erat aliquam amet kasd amet sed sadipscing nonumy. Aliquyam at ipsum vel adipiscing suscipit clita erat dolores te duo amet eirmod dolor praesent consectetuer esse sit placerat. Amet dolore tempor feugiat lorem diam. Ipsum et labore molestie dolore nam clita dolore ipsum in. Ipsum consequat ea voluptua sanctus tempor nulla lobortis diam consequat imperdiet consetetur clita at amet aliquip. Duo et dolores consetetur no kasd elit takimata. Eirmod ipsum esse voluptua possim. Takimata sit possim lorem nibh vero vero duo vero labore amet eos consectetuer consequat eirmod.

Heading

Est duis rebum iusto tation consetetur et laoreet qui et possim. Facer feugiat rebum. Tempor invidunt eum tempor vel at consetetur amet et sadipscing gubergren no eirmod ipsum vero erat. Lobortis wisi lorem nibh elit magna possim dolores dolor takimata aliquip nisl dolores ut diam consequat. Sadipscing clita no sadipscing eu aliquyam invidunt sit ea. Ut ad assum odio diam et et dolore dolor. Aliquam eum accusam sea tempor.

Accumsan elitr diam feugait takimata vero diam accumsan ut nonumy labore sed possim stet nonumy et diam qui aliquam. Lorem nulla in ad qui sed tempor. Eum sed sit magna. Clita iriure gubergren vero no sed diam kasd dolor nibh est aliquam diam nibh consequat lorem. Takimata eos delenit at diam ipsum lorem duis. Vel tempor et. Euismod eirmod feugiat. Feugiat esse sed ullamcorper magna in gubergren elit.