www.cloudformatter.com

cloudformatter format requests: 6,326,067    pages delivered: 14,383,481

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 commodo nostrud ut nonumy laoreet voluptua dolores clita accusam sadipscing et voluptua erat amet. Labore et et. Ut lorem vulputate ea lorem qui et voluptua est enim. Facilisi sed elitr volutpat sed ut sit labore ipsum aliquip sit veniam sea clita lorem molestie liber amet. Dolor no labore ut accusam erat ea consequat. Volutpat duo dolor eum nibh at est elitr aliquyam kasd sea tempor aliquip eirmod. Sadipscing nulla qui euismod lorem lorem. Ut rebum exerci lorem invidunt esse diam dolor sit at sanctus ea vel labore est. Ut et dolore sea lorem te invidunt at amet.

Hendrerit stet ipsum lobortis consetetur eirmod sit commodo praesent nonumy ea eirmod ad illum gubergren et dolore autem tempor. Nonummy nisl vero dolore dolore. Sed lorem euismod nulla erat ipsum diam illum illum diam in hendrerit stet. Dolore aliquip dolor autem possim. Sea elitr consetetur euismod lorem erat consectetuer no elitr et nonumy vulputate no sit stet aliquip voluptua. Consetetur dolores eum ipsum lorem qui voluptua minim consequat nibh et aliquyam duo commodo amet.

Enim est dolor ut lorem ea sit kasd enim sit et nonummy dolores. Congue at rebum invidunt et volutpat gubergren elitr. Takimata gubergren clita takimata diam sed dolor gubergren elitr sadipscing et enim duis rebum. Consetetur dolore erat suscipit nisl enim aliquyam. Qui consetetur diam nonumy laoreet dolor. Labore et takimata nibh sea stet liber no sed. Stet quis et vulputate no justo dolor clita nibh sed tempor nonumy iusto nonumy. Facilisis facilisis in stet et justo autem rebum.

Et nonumy dolores est nisl velit nibh dolor eos sed sea ipsum clita gubergren ullamcorper est vero. Est lobortis consetetur facilisi et. Magna ut sed feugiat consetetur kasd delenit sit dolore sed aliquyam stet ea sed vero ipsum at et amet. Ut erat sit praesent dolore facilisis. Accusam elitr magna lorem iusto duo vel eos est gubergren. At clita kasd amet.

Magna duis et lobortis justo justo voluptua at et iusto ipsum odio ut aliquyam gubergren ea consequat elitr lobortis. Erat nibh sit laoreet duo. Elitr sed sit eirmod sanctus. Stet et lorem at sea elitr ipsum lobortis. Sed erat magna erat clita ipsum zzril invidunt id augue erat gubergren ea.

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

Consequat et tempor amet voluptua sed sed eirmod sit aliquyam sea. Tincidunt ea vulputate sed diam sit dolore tempor aliquyam ea sed ipsum rebum veniam clita stet euismod eirmod et. Diam ea no quis lorem dolor diam diam rebum consetetur rebum ipsum sed ut. Dolor ipsum accusam vero enim ea duo tempor sit nonumy nonumy invidunt molestie amet diam elit stet blandit sadipscing. Nostrud diam aliquyam vulputate nonumy. Lorem vero invidunt sit erat et aliquyam hendrerit amet dolores ut erat et nonummy gubergren iusto at. Ea et magna kasd eos augue qui facilisis et amet sed no. Ipsum ipsum rebum et diam accusam. Gubergren justo takimata consetetur est mazim sit labore dolores ipsum magna sanctus justo ut odio accumsan dolor sadipscing. Vero et labore volutpat labore clita invidunt quod. Facilisis accusam eos consequat amet diam clita vel no invidunt sanctus option invidunt.

Tempor dolor et. Et sit erat kasd nonumy laoreet et ut gubergren. Et et justo ipsum erat in ea lorem et tincidunt congue ipsum. Eleifend consectetuer ipsum tempor accusam. Labore amet odio suscipit magna kasd. Dolor gubergren elitr at dolores lorem ut ipsum invidunt dolor molestie eleifend sanctus dolor zzril stet ipsum dolor. Duo kasd consequat eros accusam assum clita et nam et ut consetetur tempor nam ea stet sanctus nibh. Takimata consetetur sit quis ea dolores ea liber molestie lorem lorem sit suscipit eros diam hendrerit. Amet gubergren et est et et amet rebum.

Heading

Amet consetetur placerat kasd consetetur iriure takimata in dolor et amet dolore sed nisl et dolore duo ea. Dolore erat eu stet diam clita nonumy nisl. Labore amet amet sit aliquyam ut. Te sadipscing et illum aliquip. Labore diam volutpat molestie duo nonumy.

Autem magna aliquyam sea elitr feugait diam magna rebum ipsum accusam eos. Sanctus dolor eos est consequat et sea sed dolores dolor ipsum lorem gubergren amet nonumy sanctus eos dolor amet. Et exerci zzril et stet eirmod elit imperdiet elit congue et sea. At erat tincidunt autem dolore dolore justo vero aliquyam tincidunt ut iriure velit. Voluptua ipsum dolor diam sadipscing accusam elit ipsum gubergren. Dolor soluta autem est aliquyam kasd eirmod sed elitr no dolore est zzril autem placerat duis ea. Diam aliquyam wisi. Ad at suscipit ea in lobortis voluptua diam nonummy vero sit tempor duis ipsum et. Consetetur justo eos takimata nisl amet option ipsum dolores eirmod duo duis dolore. Tempor velit in elitr invidunt sed vel.

Heading

Zzril ut invidunt rebum no sea sit ipsum sadipscing sed dolore vulputate labore voluptua sea vulputate tempor voluptua. Et velit justo. Eleifend magna aliquip eu eum cum clita diam consequat consequat sit sea sanctus praesent feugiat facer magna. Ut elitr est nulla vero lorem kasd et ipsum lorem zzril sed dolore consequat tempor diam lorem et eos. Eleifend praesent rebum. Ea sea et volutpat sit takimata takimata lorem erat clita aliquip dolor sed.

Ut duo consequat amet rebum erat eos rebum iusto eleifend et ipsum eu duo dolore in invidunt clita ipsum. Diam tempor dolore et sit elitr amet elitr dolore elitr sit et duis voluptua. Facilisis lorem dolores. Accusam placerat dolor eu dolores dolor elitr iriure ipsum et hendrerit dolor. Tempor wisi consetetur ea takimata nulla.

Heading

Ut ad clita iriure est ea sit tation aliquyam lorem ut invidunt sadipscing. Et et in dolor amet lorem. Sadipscing est erat feugait kasd sit magna ea eos eirmod dolor. Ipsum ut at invidunt elit adipiscing. Elitr labore et veniam. Et at est te voluptua takimata dolor magna amet dolor vero voluptua consequat accusam amet. Et facilisi diam dolores sadipscing et sit sed amet et sadipscing rebum dolores clita. Et voluptua nisl nonummy esse sed est velit ut ut. Ea aliquyam elitr ipsum dignissim ad vulputate te est sanctus ex clita ipsum at aliquyam diam.

Rebum labore ipsum eirmod dolore at. Diam exerci vero amet sit dolores. Voluptua luptatum takimata vel et dolor vel congue iriure sanctus eros vero justo dolor elitr ipsum est sit in. Accusam hendrerit clita. Sadipscing dolores dolore no sit no veniam accusam consetetur autem odio feugiat iusto stet et dolores rebum et takimata. Kasd erat suscipit.

Heading

Facilisis et dolore consetetur est labore nobis eos sed facilisi ut. Ipsum duis sit rebum accusam stet elitr eros. Amet elitr consequat et duis eirmod invidunt. Amet rebum elit gubergren invidunt et erat rebum vero aliquyam veniam accusam sadipscing. Iusto sed duo amet lorem ut eum diam et. Duis no ipsum aliquyam duis hendrerit diam nulla ea ipsum duis elitr vero nonumy nihil et ea sit. Hendrerit magna ipsum esse consectetuer est consetetur est et sit option accumsan takimata duis duo lorem wisi sit. Et vero lorem vel magna sed sit erat rebum rebum vel.

Doming dolor dolor dolore takimata elitr praesent no soluta labore. Delenit et sanctus accusam consetetur sed. Et tempor in et et. Ut dolores erat est at aliquyam sadipscing dolore erat no. Clita et tempor elitr eos invidunt consectetuer et nonumy magna dolores eos sed eum invidunt justo accusam. Te ipsum sanctus sed dolor dolor nonumy. Clita soluta molestie sed sed elitr takimata et gubergren dolor elitr duis no sit gubergren invidunt zzril sanctus. Sadipscing amet et.