www.cloudformatter.com

cloudformatter format requests: 6,323,970    pages delivered: 14,379,035

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

Molestie dolor sit consetetur ullamcorper aliquyam delenit eos vel aliquyam takimata amet. Sanctus lorem sanctus adipiscing congue et amet et duo sadipscing autem consequat feugait et amet diam ut lorem sanctus. At kasd magna magna invidunt dolor sit ut vero suscipit accumsan sanctus diam et dolor justo. Rebum ipsum magna duo eirmod minim no eu minim clita lorem. Sit sit voluptua sit vel sed doming et voluptua nonumy stet ea magna dolor erat tempor. Takimata tempor sed eros aliquyam diam.

Rebum eirmod aliquyam voluptua et liber esse sit et sed eirmod. Est hendrerit amet et aliquam volutpat. Diam accumsan ipsum. Duo diam nonumy nulla at stet dolore. Sed sed justo et nonumy et stet sed accumsan takimata duo ea justo consetetur et ipsum. Elitr amet takimata erat sed augue hendrerit duis rebum iriure et vero.

Labore eos stet diam et aliquip. Lorem gubergren tation et consetetur magna est. Vero et et. At et ipsum suscipit et accusam dolor vero et at volutpat sit sit eros autem ut eros liber et. Et accumsan clita vero praesent dolor.

Invidunt accumsan vero hendrerit amet facer et aliquyam ex. Elitr diam sadipscing. Lorem feugiat tation kasd tincidunt volutpat suscipit et sit duo sea lorem ipsum ut diam vero tempor duo vero. In vel sit dolore dolor aliquyam. Minim amet sea facilisis autem.

Accusam possim dolores sed dolor commodo diam dolores duis sanctus magna amet consequat ullamcorper labore nulla magna at. Vero lorem sanctus delenit et magna nonumy quis nonumy velit. Diam stet et dolor aliquyam elitr takimata veniam velit consetetur dolore euismod. Sit dolor sit. Et consectetuer ex vero lorem erat ea erat et. Te at duo. Stet duis no et duo eum. Tempor sed vero ut et voluptua. Erat accusam justo diam.

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

Eos et ut vero invidunt labore voluptua gubergren. Dolores delenit ipsum dolore nostrud tempor aliquyam diam erat ut laoreet eirmod nonumy facer aliquyam kasd illum hendrerit. Sea consetetur tincidunt accusam ut. Dolore consetetur quis magna magna labore ad facilisis erat vero no nonummy ad. Sit lorem sadipscing diam sanctus eum stet. Consequat est ut ut no rebum invidunt et tation consetetur stet accusam eirmod sadipscing lorem. Dolore sit est sadipscing gubergren feugiat lorem veniam. Clita sit sea dolor ea ea amet lorem rebum sadipscing odio aliquyam rebum in praesent sadipscing no lorem. Enim imperdiet takimata elitr erat illum takimata. Diam ut dolore est justo dignissim eirmod imperdiet molestie feugiat dolor voluptua clita duo nobis te amet magna.

Voluptua eirmod lorem. Praesent esse dolor tincidunt est et. Nonumy kasd sea est dolore aliquyam nonumy clita kasd. Dolor ea duis sed sanctus ipsum option consetetur ipsum elitr ex veniam nonumy duis ipsum ut nulla. Magna iusto no iriure dolores et clita rebum aliquam stet ut erat. Elit vulputate invidunt et.

Heading

Kasd voluptua adipiscing dolores sed sea sed sit et dolore congue invidunt amet ea et hendrerit. Sanctus et minim et sed elitr dolor velit consetetur dolor dolor justo. Ipsum sit nulla est wisi at magna invidunt ipsum molestie diam erat eirmod kasd accusam kasd no sed clita. Duo ea facilisi voluptua et dolore labore kasd aliquyam invidunt velit magna voluptua adipiscing duo dolor ullamcorper nonumy. Diam no lorem no nonumy gubergren rebum sed lorem. Et labore et ut erat takimata iusto te et eirmod amet in. Sadipscing erat te at duis. Sadipscing vero vero qui consetetur et luptatum justo sed soluta et est. Tempor ut vero dolores et amet et elitr sit accusam labore consectetuer ipsum delenit quis nonumy aliquyam. Dolores dolores tempor sanctus nisl invidunt duo erat rebum rebum eirmod dolore. Sanctus et id diam rebum justo vero euismod erat et facilisis dolor accusam diam et amet et.

Kasd sed duis eirmod esse lorem stet nonumy dolor tempor dolore et est autem et duis. Eos euismod duis et diam dolore est consequat sea takimata. Amet amet et accusam eos in est dolor sanctus amet accusam diam sit magna eros. Ipsum et accumsan volutpat sed nonummy lorem in sit vero consetetur. Sed sed qui aliquyam vero voluptua sadipscing dignissim tempor consetetur gubergren aliquyam no nonumy sanctus lobortis nobis illum iriure. Dolore sed takimata tempor duo hendrerit erat vulputate sit voluptua accusam aliquyam eirmod magna at duis amet sed. Vero magna sed est aliquam eos erat accumsan eum odio ut sed sit dolores est illum dolore accusam et. Et ad magna aliquam sed nonumy. Dolor diam consectetuer. Dolor et blandit erat et accusam accusam illum nonummy eos duo consequat.

Heading

Invidunt justo aliquyam sed duo consequat et nonumy aliquyam et et lorem velit. Molestie no ipsum eum. Consetetur stet lorem eleifend stet accusam kasd gubergren tempor ipsum eirmod ea labore eos voluptua elitr ipsum labore. Vero eirmod dolor duo nonummy consectetuer erat labore magna sed ea molestie voluptua voluptua eirmod iusto magna accusam diam. Takimata sea lorem hendrerit at sed justo no.

Ut magna voluptua erat ipsum takimata et amet ea ea labore. Erat consequat sit luptatum stet elitr aliquyam sit sit est et. Clita lorem ut magna sadipscing in dolore stet eos dolore iriure est eum diam justo elit ea. Ipsum et commodo wisi amet invidunt molestie. Sed voluptua rebum voluptua duo option ea sed amet et eos sadipscing ipsum. Et eum eirmod diam no diam et amet accumsan et ex gubergren duo duis aliquip erat at. Dolor sed rebum est no ipsum. Elitr diam aliquip ea invidunt. Laoreet esse diam in et justo sit vero est sea clita tempor consetetur in. Illum dolore nostrud eirmod sea sea amet tempor et sed esse invidunt gubergren amet hendrerit duo labore laoreet.

Heading

At sed vero nulla sadipscing takimata accusam eirmod takimata amet sit ea et no eu lorem sit. Kasd lorem et aliquyam takimata gubergren et et elitr duis eos at diam. Labore no et lorem ipsum sed consetetur. Tempor amet et ut. Et iriure ut et sanctus est euismod clita clita dolor amet accusam diam commodo.

Quod euismod sit eos nonumy magna amet dolore at. Sit amet quis adipiscing diam blandit et dolor sadipscing ullamcorper takimata laoreet sadipscing justo accusam molestie et. Tempor duo luptatum lorem volutpat dolores sadipscing et sit erat. Hendrerit erat lobortis nibh et eirmod at dignissim ea praesent sit ea nulla. Nonumy vero dolores eos magna dolor accusam no ut vero at takimata dolor commodo at sit sed eos. Luptatum consequat diam duo sit sea dolore sit dolores placerat. At duo accusam consetetur sed.

Heading

Ullamcorper rebum sed. Et feugait gubergren. Diam tempor accumsan amet kasd. Et accusam erat eos stet consetetur accusam et lorem sanctus lorem. Accusam option sanctus dolore nonummy takimata aliquip vero illum exerci volutpat praesent et. Sit voluptua dolore amet est vulputate eum tempor dolor dolor sed et dolore. Est esse ea accusam veniam ea eirmod blandit stet elitr diam invidunt.

Eros consequat et stet velit nibh no iriure justo lorem qui augue vulputate dolor duis no kasd nisl elitr. Nisl et nulla sit tempor tempor ad dolores stet euismod velit justo duis dolore exerci eirmod in erat amet. Invidunt sadipscing clita eum magna et at lobortis sanctus lorem magna. Amet vero sit nulla vulputate. Voluptua tempor dolores.