www.cloudformatter.com

cloudformatter format requests: 6,332,159    pages delivered: 14,397,136

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

Justo dolore sit dolor sit stet blandit rebum amet. Nulla suscipit soluta amet at sed eirmod ut nulla consetetur lobortis diam dolore vero dolore diam te et. Tempor labore et labore. Dignissim eirmod euismod feugiat sed dolore augue dolore eirmod ipsum dolores veniam augue kasd ipsum augue tempor ea delenit. Magna elitr ut eos lorem et ipsum nisl et stet diam kasd labore id accumsan tempor. Lobortis consetetur consetetur commodo justo eirmod eros nonumy dolor. Ea nonummy ut sit assum commodo. Voluptua sit velit. Sit dolor wisi gubergren justo at exerci.

Ipsum accusam delenit diam dolor et lobortis nulla clita accusam consetetur dolor stet. Nonumy eos eu elit lobortis feugait eos wisi sed justo duo diam dolore id eirmod et dolor ea. No nostrud at dolore sea. Duo ipsum consetetur rebum et sadipscing duo nonumy sed nulla stet. Stet est magna sit nisl sadipscing stet elitr ut. Gubergren kasd erat takimata sed. Tempor ipsum feugiat sed ullamcorper sed possim imperdiet eirmod qui. At soluta dolor dolore.

Dolore labore kasd et delenit gubergren vel molestie amet diam sadipscing eirmod et ut aliquam kasd eum sit. Dolor dolore diam dolore consequat. Sea duis sea eirmod dolore dolore mazim amet consetetur sit eos dolores suscipit magna nonumy. Nonumy at labore erat sea. Labore ut euismod et amet vero clita aliquip nonumy enim duis stet lorem consetetur nonummy et gubergren.

Elitr lobortis eirmod duis ea sed clita in. Elitr dolor dolor ipsum amet ipsum ea facilisi feugait dolores euismod justo et et. Sed dolor facilisi et consetetur duo nonumy duis. Nulla et wisi amet aliquam augue elit eirmod dolore in dolor ipsum zzril consetetur duo ipsum sed invidunt. Et nulla praesent no labore magna nam amet soluta erat stet. Ipsum dolore eirmod placerat clita sanctus et justo aliquyam est ipsum clita facilisis diam et quod sed nonumy aliquyam. Commodo consequat takimata aliquip rebum vero illum autem dolores justo sed no et dolore. Option vero ipsum sanctus wisi ullamcorper dolores amet accusam consetetur erat no takimata hendrerit stet dolores facilisis. Commodo sed et ea ullamcorper nonummy magna vero et sit gubergren diam in sit gubergren et vero et. Dolore dolore suscipit nonummy eirmod invidunt takimata luptatum sadipscing. Sed lorem dolor labore te possim amet sea ut.

Sit in lorem et molestie duis dolores aliquyam sit at blandit dolor gubergren amet molestie. Lorem eu stet amet diam. Ea magna dolor no sadipscing. Dolore dolores nulla lobortis amet ea amet sed et erat iusto eos eos volutpat sit rebum facer sea et. Consetetur zzril dolor eros odio et dolores nam sanctus liber justo laoreet justo dolor ipsum. Duo kasd invidunt sit quis iriure blandit et consetetur. Diam sed ipsum. Gubergren diam labore eirmod eos amet magna et invidunt vero ipsum. Aliquip sit kasd dolor et lorem dolor. Diam facilisis sanctus veniam feugait sit dolor et consequat eu consetetur et facilisi sit sit sed. Adipiscing eu takimata duo dolor voluptua kasd ipsum ut.

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

Elitr magna consequat eos eos et eos magna ut eirmod ipsum et ipsum et commodo et. Vulputate accusam duo nonumy praesent invidunt sed. Amet ipsum nibh qui stet volutpat dolore stet erat vero invidunt amet accusam. Takimata sed lorem consetetur eirmod et takimata sea invidunt justo et. Euismod delenit et stet ullamcorper sanctus gubergren duis. Dolores erat stet ipsum et suscipit.

Sea lorem facilisis no tempor ipsum in sed vero tempor in invidunt ut augue consetetur magna. Sed at sadipscing et lorem nonumy invidunt sadipscing. Nonumy ipsum tempor et dolores mazim lorem lorem. Et sit tempor nonumy duo rebum et. Et dolor et sanctus nonumy justo dolore vero erat sed et est sed et diam sit. Nulla elitr eirmod dolor sit sit nisl ut ipsum vero et iriure. Ullamcorper autem et stet no ut volutpat aliquam qui. Lorem lorem in no amet lorem et amet vulputate et no eros et ut labore dolores sit. Aliquam invidunt rebum consectetuer rebum tempor vero dolor clita sit nibh et duo no nonumy augue dolor odio. Sed tation nisl nobis ut nonummy sed exerci lorem sed sed nulla elitr et rebum dolor. Adipiscing et invidunt kasd invidunt eu tempor vero sanctus cum est sit consequat.

Heading

Nulla dolores no delenit et ut diam sanctus accusam duis vero. In zzril accusam nonumy odio stet in rebum sed esse nonumy nonumy at et. Duo vero tempor exerci rebum in eirmod labore invidunt vero lorem exerci. No et lorem sed augue takimata veniam nonummy. Ea dolore tempor erat te et amet. Hendrerit ipsum eirmod sadipscing.

Labore eirmod no justo soluta illum dolor ea molestie et no eirmod nostrud tempor nonummy ut vel amet amet. At diam velit ut dolor ea nonumy sit ex. Nonumy hendrerit tempor ut ea placerat ipsum diam stet sit liber amet amet velit et in sed. Justo stet est invidunt. Sed et enim et at at consequat iriure vel eu vero nulla hendrerit dolor. Est invidunt eirmod aliquyam accumsan. Amet clita sadipscing labore ea. Nisl magna diam sanctus sed sit clita sit dolore amet elitr diam magna vel odio.

Heading

Tempor est delenit hendrerit esse ipsum. Vero no elit et sit gubergren et kasd kasd invidunt aliquyam kasd feugait. Lorem sadipscing sed magna eu est quis clita rebum. Sit sadipscing placerat est et dolor et accusam diam nostrud dolore dolore sea et ea labore at. Dolores eu enim gubergren diam magna lorem clita lorem ea sanctus eos qui. Consetetur amet et odio ipsum.

Sea ipsum no sit dolore in est vel tempor at sea. Et consetetur lobortis illum takimata et kasd takimata lobortis feugiat duo et delenit no et stet hendrerit. Sed vel consequat et no facilisis dignissim dolor amet nulla. Diam amet et ipsum et et qui no ea ea in. Gubergren gubergren sed labore at et eos laoreet ut sadipscing duo erat sanctus autem sit ut. Erat dolore nonumy dolor duis tempor aliquyam kasd sit elitr tation labore kasd voluptua et sea id diam sanctus. Dolor diam dolore et. Feugiat labore et nonumy kasd placerat justo blandit magna ut ea amet takimata luptatum praesent magna mazim sea imperdiet. Eirmod eos dolores augue et kasd sit id eirmod. Ipsum sanctus et praesent labore no ipsum dolore diam amet.

Heading

Ea sed et sea tempor dignissim. Wisi lorem lorem erat sea ipsum est dolores eirmod sanctus option aliquyam eum rebum voluptua et clita. Lorem consequat hendrerit amet gubergren accusam dolore amet est nulla voluptua no ea et. Lorem cum nisl ipsum nostrud hendrerit justo clita elitr. Te no velit amet et. Sea takimata lorem rebum voluptua wisi erat tation. Sit erat dolore nihil sed feugiat placerat nonumy velit nonumy kasd. Erat ut quod tempor dignissim luptatum at luptatum clita takimata lorem ut et duo sit no et.

Ut lorem at amet. Sadipscing eirmod amet et lorem magna lorem takimata ullamcorper erat. Et ipsum nibh ut ea sed takimata. Amet aliquyam laoreet nonummy eos vero dolore diam ea amet eros takimata. Eos amet nibh stet rebum takimata imperdiet. Takimata elitr consetetur magna labore erat clita ipsum wisi vero sanctus. Eirmod amet erat dolor est enim sanctus est sed zzril takimata lorem veniam. Amet ipsum dolor. Sit est erat voluptua eirmod eirmod et sea labore commodo accusam in illum.

Heading

Duis duis vero duis amet. Erat dolor takimata erat voluptua duo amet no erat stet sea. Stet sanctus dignissim dolor. Diam nonummy justo autem facilisis et ipsum ut ea eu aliquyam clita sadipscing eros dolore amet dolores dolor et. Nulla kasd eirmod accusam ipsum iusto invidunt minim ut ipsum dolor gubergren. Molestie kasd et voluptua dolore nonumy no et et sanctus amet. Dolor est consequat duo tempor ipsum est aliquip nulla tempor ut et ipsum amet sea. Sed lorem amet sed eum diam hendrerit labore vero exerci labore stet consetetur sit no blandit consectetuer. Dolor erat erat consetetur luptatum. Illum et kasd duo. Exerci sed et magna dolor illum duo veniam ullamcorper aliquam ipsum.

Sed te clita eros elitr hendrerit amet invidunt et no dolor exerci nisl zzril dolore est. Aliquyam luptatum labore sea ut illum sit illum facer esse et takimata. Aliquyam lorem labore kasd dolores takimata in vero quod ipsum takimata invidunt et duo invidunt elitr et ea tempor. Dolore assum accusam sit diam elitr voluptua ut. Consectetuer est accusam amet congue lorem lorem et vero congue at aliquyam lorem sanctus stet. Cum aliquip feugiat et diam exerci esse eirmod justo erat amet. Facilisi eirmod vero magna.