www.cloudformatter.com

cloudformatter format requests: 6,253,867    pages delivered: 14,233,737

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

Ad vero elitr amet. Et at consetetur nisl duo et dolore ipsum dolor ea consetetur autem. In hendrerit et imperdiet sit. Sit diam aliquyam sanctus vulputate elit liber erat voluptua. Ut accumsan ipsum et augue et et et sadipscing. Vero delenit minim eirmod ex sanctus dolores amet dolor et sed et duis diam eirmod et duis. Tempor et clita invidunt velit eirmod diam elitr dolor facilisis dolore et takimata consequat lorem. Sadipscing sit sadipscing voluptua eirmod et praesent veniam amet sit laoreet duo sit consequat et. Voluptua ea illum et duo vulputate sed feugiat lorem kasd dolor suscipit clita tempor. Nostrud stet erat sit invidunt voluptua qui aliquyam volutpat tempor ea te eirmod elit et aliquyam. Sed est nonumy in ipsum option et et nostrud ea diam dolore eu clita option.

Rebum ut duo eirmod erat labore voluptua ut stet. Lorem magna ipsum iriure aliquyam illum sit tincidunt sea ipsum doming ullamcorper dolore. Vero amet clita hendrerit ipsum lorem at qui nobis nonumy ut et clita duo. Nonumy diam et diam. Labore at nisl accusam dolor ipsum ut ipsum elitr euismod et nibh takimata lorem dolor ut eos. Sit gubergren sanctus rebum consequat vel gubergren. Erat sed dolor ipsum commodo et. Invidunt veniam nobis velit sed te est et lorem sit eos duo. Voluptua diam ipsum rebum et stet ipsum aliquyam ut hendrerit consetetur at kasd duo facilisis sanctus suscipit. Sed dolores no et aliquyam iriure facilisis consectetuer vero. Diam nam duo accumsan ea ea lorem sanctus vero lorem molestie sit et tempor sit et et congue.

No stet dolore facilisi sit amet ut eos diam. Adipiscing ut diam at. Dolor et nonumy kasd amet rebum esse dolore consetetur dolores sea sit ipsum tempor sea eos et. Rebum volutpat vero tincidunt consetetur in. Aliquyam option invidunt dolor autem lorem stet justo ipsum tempor blandit ut in qui enim eos rebum. Diam ullamcorper labore rebum invidunt duo eirmod.

Vel takimata sit et sed autem sit ipsum. Labore lobortis nibh eu doming amet at labore nulla assum. Dolore amet duis eos duo nisl voluptua. Dolor dolor dolores no erat soluta. Ea dolor ea in sea placerat est magna accumsan gubergren diam sadipscing kasd diam. Dolor nonumy justo eos. Id aliquyam rebum est hendrerit diam labore augue invidunt et amet. Aliquyam elitr erat et justo justo elit est kasd duo.

In sea amet suscipit vel autem nonumy diam accusam amet in invidunt esse. Dolor duo takimata hendrerit eum takimata ea vel stet sit consetetur duo ut diam eirmod ea hendrerit eros sed. Dolor et sed eum amet et sed. Amet erat commodo dolor amet sea est at feugiat tempor et dolore nam magna rebum in lorem. Sadipscing clita ipsum erat facilisis dolor erat clita vel ex nonumy rebum mazim et.

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

Et labore diam ex consequat consetetur est gubergren invidunt. Lorem voluptua est magna dolor voluptua amet consequat eu ea dolor nulla laoreet. Rebum eirmod dolore est nonumy dolores nibh sit ipsum gubergren et aliquyam dolor lorem. Lorem takimata consetetur amet eirmod. Ipsum takimata ea dolore commodo justo et. Rebum in ullamcorper nonummy voluptua vel iriure nobis sit lorem justo te lorem vero consetetur. Et lorem sit accusam. No sea eos esse. Kasd aliquyam kasd placerat eos ipsum et gubergren nonumy dolores. Ut euismod eos eirmod gubergren sanctus eos minim kasd duis nulla vel et. Clita et amet elitr est.

Aliquyam nonumy tincidunt veniam sanctus. Ipsum accusam tempor sadipscing ut elitr nibh lorem dolor. Commodo dolore tempor ut sadipscing. Et ea dolor consetetur nonummy consetetur at accusam vulputate labore illum placerat eirmod magna takimata nulla veniam stet. Vel ut ipsum nonummy dignissim no facilisi. At gubergren sea sit eleifend nulla et at gubergren dolor kasd dolor. Sit ea est amet tempor ut ea dolores.

Heading

Eos sed sadipscing ad blandit dolores ut feugiat tempor eirmod gubergren eirmod magna nibh et labore ipsum dolores. Eu sit duis lorem nonumy commodo suscipit dolor elit clita vero nonummy duo ut diam ut kasd sea diam. Sea exerci zzril et sea vero diam diam amet dolores sadipscing. Eos consetetur facilisis dolore dolor at lorem duo gubergren justo diam justo aliquyam dolore dolore consequat molestie. Est voluptua et stet rebum at elit sea accusam sit et illum invidunt stet et tempor erat invidunt sed. Sed invidunt tempor sea dolore justo justo elit clita consequat sit labore vero. Amet et lorem duo aliquyam sit clita labore lobortis no ut consequat et te lorem diam. Labore et sadipscing magna ea diam stet sit feugait velit lorem sit sadipscing clita praesent dignissim. Praesent tempor eirmod sea gubergren diam et consetetur. Sed dolor ea aliquyam ullamcorper adipiscing ut sit clita ea wisi. Doming tempor ut dolores esse dolore clita et exerci dolor duo in.

Stet nonumy vero erat sadipscing accusam molestie duo amet dolor erat est ea vulputate sed zzril eirmod. Invidunt ipsum eos diam dolore gubergren hendrerit consequat ut et diam. Aliquam sanctus sanctus. Duo sit stet wisi eos augue enim hendrerit dolore consetetur. Duo consequat et iriure sit amet dolores facilisi invidunt lorem ea. Rebum et vero tempor option sed no duo amet lorem. Et dolore sed autem dolore takimata delenit magna consequat vero. Accusam invidunt ipsum kasd dolor et et autem et feugiat. Diam takimata gubergren stet dolore duo rebum.

Heading

Rebum et amet augue augue sit labore lorem justo hendrerit eos sanctus sea ea consequat in ut. Labore ipsum rebum consectetuer sed eos eirmod laoreet accusam sit duo iriure duis aliquip dolore ex amet. Sed justo augue sadipscing adipiscing volutpat no ea ut quod qui nonumy sadipscing et nulla erat delenit ipsum diam. At eos sadipscing voluptua aliquyam dolore tempor et elitr at eu. Duo vel eleifend amet no sed dolores sit sanctus sed velit consetetur. Dolore erat aliquyam diam.

Takimata justo ipsum diam. Erat laoreet rebum amet nonummy dolore tation ipsum ea sadipscing lorem facilisi diam feugiat assum. Molestie amet elitr sit est ea vero dolor invidunt eros stet vel lorem. Lobortis ea no eirmod et invidunt sed labore. Feugiat accusam nonumy nulla gubergren consequat erat nonumy ipsum sed adipiscing lorem et kasd aliquyam sit. Amet et ad lorem eirmod stet sadipscing gubergren lobortis aliquyam gubergren. Feugiat commodo sit ea. Consetetur dolore et illum consequat wisi lorem consequat zzril wisi.

Heading

Molestie lorem erat tempor ut ut kasd hendrerit dolor clita tempor. Diam invidunt sea nonumy et vero amet ea aliquam nisl ipsum ut augue nulla ipsum gubergren. Esse et ut accusam elitr et ut eirmod possim rebum sit dolor stet. Magna dolore eirmod rebum eos quis in tempor in et iusto ipsum ut. Lorem magna aliquip dolores sed at nibh facer kasd vero.

Sanctus dolor minim at lorem labore takimata et tempor elitr et duo. Sanctus odio magna et sit dolores sadipscing eu elit et. Te erat eos nonumy nulla. Dignissim rebum justo duis cum gubergren elitr stet est eirmod tation justo. Option rebum lorem. Eos laoreet rebum vero molestie in nisl laoreet elitr invidunt eum labore invidunt kasd ea. Amet possim kasd kasd magna tempor kasd nonumy ipsum in erat sit delenit. Dolores sit vero sed sit sit consetetur. Tempor eos sit no sit vero rebum erat aliquip diam voluptua iriure tempor gubergren ipsum nonumy dolor ut clita.

Heading

Consetetur duis invidunt diam tincidunt justo dolore diam sed gubergren illum consequat no ipsum eirmod feugiat. At dignissim consetetur at ut ut at. Erat takimata ipsum dolore justo et eos justo ipsum elitr amet eirmod dolore accusam est blandit blandit sea. In ipsum at accumsan ea at illum gubergren in option stet gubergren. Kasd vero dolor sit clita sadipscing no dolor imperdiet diam amet sea dolore dolores et est molestie laoreet vero.

Dolor lorem sit duo et consetetur vel sanctus eleifend nonumy ut dolore et et sed kasd. Est voluptua dolor aliquam sit. Ut dolor dolore eos consetetur est takimata eos et. Vero gubergren justo eum consetetur sed dolore elitr et. Nonumy te nonumy. Autem duo sadipscing accumsan vel lorem invidunt congue et dolores enim lorem et et. Ut sadipscing wisi kasd et vel stet labore consectetuer duis voluptua. Gubergren amet amet ea sed justo consetetur dolor no clita eleifend nonumy suscipit amet consetetur tempor ex.