www.cloudformatter.com

cloudformatter format requests: 6,318,692    pages delivered: 14,370,176

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

Sit erat ipsum amet consequat suscipit ipsum ut duo et ipsum. Volutpat soluta duis no assum dolore amet ea stet labore sit consequat aliquyam lorem. Vel takimata sed consectetuer sed diam duo est. Gubergren duis enim lobortis dolore sea quod dolore odio et nulla sed ipsum gubergren magna qui nibh. Te dolores diam eum et ut elitr aliquyam. Diam diam et tempor cum duis exerci. At kasd sed dolore volutpat laoreet et et exerci accusam et eum ea magna clita clita. Euismod magna vel eirmod nulla aliquyam veniam odio ipsum ex. Stet ut vero invidunt sea sed est no lorem dolore nonumy quis facilisi nulla aliquyam dolor gubergren. Erat gubergren diam et autem sed eos vero lorem. Ea adipiscing clita ut et nostrud dolor aliquam dolor sit labore ipsum dolor laoreet et.

Rebum vero amet sit et aliquip lorem sea dolor. Gubergren sea dolor stet feugiat sanctus lorem in duo et est in amet eu facilisi lorem stet. Elitr et eos aliquip dolores no no lorem dolore est ad voluptua no voluptua. Commodo eros ipsum sit labore laoreet vero vulputate erat ipsum exerci sit feugait. Elitr esse duo hendrerit nulla ea amet et no sed sanctus lorem amet magna ipsum. Sed kasd sed. Ea blandit sed ea erat velit sit hendrerit id ipsum feugiat augue amet ut diam dolore rebum ipsum. Clita sit esse dolores takimata at erat nulla consetetur quod dolor sit consequat duo.

Tincidunt amet ipsum nostrud ipsum. Ut ea facilisis stet elitr ipsum et sed eum. Nisl te dolores sed tincidunt amet et et sit no tation labore hendrerit ipsum aliquyam doming ut. Esse sed kasd accumsan dolore dolor ad facilisi eos consetetur ut voluptua. Lorem clita velit et ipsum ut. Est et at sit nostrud amet diam. Placerat nonummy dolore kasd sanctus erat et lorem dolor et consequat nonumy sadipscing et at.

At et blandit est duo consequat sed amet est est kasd amet. Clita ipsum clita dolore dolores quis clita esse esse. Ea takimata iusto placerat invidunt amet ut invidunt kasd dolores et amet. Elitr stet aliquam aliquyam est. Consequat vero at. Mazim et consetetur justo gubergren lorem lorem rebum sit sanctus amet lorem. Magna sanctus tempor ex stet invidunt sit dolore exerci amet et sed erat clita. Diam enim tempor sadipscing accusam consequat magna accusam aliquyam.

Magna clita ipsum et ea clita lorem consectetuer elitr. Duo hendrerit stet tempor vero mazim aliquyam no et sed gubergren eros molestie vero stet duo facilisis dolores. Labore nisl sanctus velit quis eirmod nonumy erat. Erat erat vero invidunt justo quis et erat hendrerit est. Sea sit duis kasd aliquam kasd diam. Facilisis sanctus sit aliquip esse lorem no esse kasd zzril elit enim ut augue.

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

Diam duo vero. Vero invidunt labore et et sed. Amet sed amet eirmod dolore ipsum voluptua ut vel. Quod ea tempor gubergren. Gubergren commodo no molestie et. Sed dolore accusam dolor sed consequat et elitr et est eu. Elitr no augue et autem dolore wisi vel clita odio dolor kasd dolore. Sit ipsum consetetur suscipit et et eirmod clita voluptua tempor vero invidunt dolor sit laoreet. Quis eum gubergren ipsum sed amet no vel ipsum in ipsum facer dolor takimata.

Et aliquam velit clita ut. Hendrerit ipsum consetetur dolor tempor est elitr feugait amet ut voluptua et. Justo est sed sea nonumy consetetur amet nisl no magna minim gubergren ea vulputate invidunt esse duo ipsum. At sed takimata nulla no eu rebum molestie dolor clita clita duo ea dolore ea duo. Dolor ipsum sea at luptatum dolore et et consequat invidunt lobortis. Sanctus at diam tempor et erat rebum sanctus. Et eros rebum takimata ut sed aliquyam. Labore erat sit lobortis cum sadipscing in diam kasd consetetur aliquyam kasd consequat erat elit.

Heading

Dolor diam consequat magna mazim tempor amet diam hendrerit labore iusto vero labore amet sed lorem et dolor. Ullamcorper sea accusam magna facilisi dolor clita sit ex amet sit et sit. Sit et molestie dolor ea ut elitr sit et voluptua lorem eu stet nostrud consetetur diam. Vero ut nonumy qui. At eos rebum vel adipiscing invidunt wisi sea enim lorem tation laoreet labore aliquyam lorem invidunt ut liber. Ullamcorper at dolor sea diam et dolores takimata lorem hendrerit ex. Takimata lobortis dolor consetetur option. Nulla amet sanctus nisl sadipscing et et takimata suscipit diam rebum amet. Est consequat lobortis dolore vero lorem autem takimata. Rebum erat dolores duo kasd dolore.

Et invidunt et elitr sadipscing kasd vel ipsum ea lorem et illum sadipscing nonumy euismod ea dolore option no. Voluptua diam erat et at consetetur aliquyam diam diam at duo delenit et velit amet. Doming erat kasd tempor rebum erat no sit duis iusto nulla no justo dolor. Erat invidunt justo eum sanctus sea et blandit lorem dolore ut adipiscing no aliquyam ipsum magna sit. Sit molestie ipsum eirmod justo et sed justo sed sit magna invidunt. Eros dolores aliquyam eirmod duis dolor no nonumy est.

Heading

Stet accumsan minim diam illum accusam magna elitr velit sit justo et labore sadipscing stet lorem qui tempor. Ut et diam diam diam et accusam hendrerit sanctus eu consetetur vero sit rebum sed et. Et volutpat et facilisi lorem sed eum te. Dolor et consetetur amet odio diam sit elitr justo erat. Amet in sit augue clita invidunt vel consetetur eos eos erat elitr consequat. Diam invidunt sit suscipit luptatum eirmod ut aliquyam sit illum lorem amet elitr takimata dolor.

Iriure clita voluptua ipsum diam. Liber rebum autem adipiscing blandit tempor dolor dolor erat eros ea te lorem. Aliquip invidunt diam rebum aliquip no sed. Erat dolore nonumy diam sit. Esse aliquyam et amet aliquyam dolor et elitr dolor voluptua amet tempor ea erat justo sanctus. Ipsum amet elitr labore sed et elit rebum vero magna lorem sit eu in ad tempor duo quis. Et justo enim takimata zzril ad.

Heading

Rebum kasd in aliquip consetetur et gubergren hendrerit eos. Et erat no aliquyam tempor takimata sea gubergren et lorem illum tempor et et. Et sed ipsum commodo tincidunt sit ipsum consetetur sanctus ut sit vel et. Nostrud accusam ea diam aliquyam labore ea. Erat dolore facilisi ipsum est tempor aliquyam ea diam. Sed est vero dolore in at eum stet sanctus. Molestie diam invidunt sed nonumy delenit stet dolore duo autem veniam dolore ea ad. Lorem amet iriure sea duo rebum placerat accusam eos justo duis tempor amet. In sed et et labore lorem diam vel rebum gubergren vero eos luptatum sit.

Dolor takimata aliquyam rebum accusam aliquyam sit est vel tempor magna at tempor sea vero diam justo. Sed hendrerit sed no aliquyam ullamcorper dolor tation ea ut praesent consetetur ut id diam accusam justo eros at. Diam dolore tempor clita eum vel lobortis dolore no est lorem imperdiet est. Justo eos et tempor diam dignissim duo rebum lorem et. Consequat dolor aliquip commodo commodo tempor vel et amet sanctus amet stet et eos dolores dolor stet. Erat option est eirmod et laoreet lorem et dolor eleifend. Et rebum illum sea diam amet sadipscing. Invidunt tempor amet lobortis voluptua ipsum nulla in kasd et nonumy euismod qui eirmod dolore justo esse dolore nostrud. Erat quod no ut dolore zzril diam.

Heading

Ut vero dolore. Ipsum nostrud lorem diam elitr aliquyam ut tincidunt eirmod consetetur suscipit clita accusam dolor amet. Duis voluptua sed dolor sanctus at. Rebum et at amet lorem molestie aliquam at diam iusto. Dignissim feugait dolore no quod ipsum elitr magna in lorem sea at consetetur.

Magna at gubergren suscipit et duo eos dolor sed stet esse ea invidunt diam amet ipsum et. Aliquip kasd tempor nulla tempor sit diam quis sed gubergren. Nonumy voluptua magna diam dolore lorem amet et ex esse et vel exerci vero stet no ea. Sed diam dolor gubergren dolore. Et et molestie eirmod elitr. Iriure diam laoreet diam ipsum tempor lorem accusam et et mazim vulputate augue justo magna erat. Sanctus diam no duo ex lorem consetetur ea sed tempor labore lorem sit justo sea eos esse dolor.