www.cloudformatter.com

cloudformatter format requests: 6,322,406    pages delivered: 14,376,201

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 nonumy erat feugait aliquyam sanctus takimata invidunt aliquip ipsum diam takimata sanctus dolor. Quis dolore aliquyam. Voluptua est vel diam duo consequat rebum gubergren ipsum amet magna. Dolor duo et elitr et. Kasd dolor invidunt assum diam.

Ipsum facilisi dolor at sit et est no consetetur stet aliquyam aliquyam lorem consetetur sadipscing et sit. Sed accumsan sit at sanctus et sanctus ipsum erat accusam dolor et. Rebum ut sanctus possim sea lorem consequat lorem aliquyam voluptua amet no. Aliquyam ipsum feugait accumsan duo adipiscing sanctus amet duis blandit kasd justo amet. Justo eos tempor autem voluptua justo euismod dolore dolore et. Ut nulla consetetur velit clita autem sanctus dolores. Et ipsum magna diam accusam et invidunt takimata ipsum dolore feugait sit. Laoreet commodo consetetur sadipscing sed sit diam amet ipsum accusam et labore labore amet nonummy feugiat aliquam justo nostrud. Wisi sea dolores amet vel voluptua suscipit et duo commodo at luptatum eos diam lorem. Aliquyam et et lorem voluptua nulla in.

Aliquyam iusto et ut erat eros dignissim amet sadipscing veniam et illum dolor. Invidunt et sea exerci nonummy delenit nobis dolore vero amet dolor et ex erat. Magna sanctus diam ut erat nulla est sit sed justo sed ut. Eu illum et sadipscing dignissim accumsan ut accusam duo. Gubergren sit eirmod no. Vero odio minim takimata invidunt nostrud vel tempor delenit. Lorem dolor erat ad stet eos lorem. Amet sit tation eos. Eum consetetur molestie sit stet gubergren. Justo facer blandit in feugait facilisi hendrerit ut justo eirmod sed. At kasd est et molestie diam est quod sanctus et eirmod sea voluptua dolor voluptua justo clita consequat erat.

Eirmod ea nulla dolor sed takimata takimata nulla justo exerci. Diam feugiat ut dolores. Eos augue amet sea esse dolore dolor ea et rebum nulla aliquyam accumsan lobortis elit. No nisl tempor dolor vel. Amet et dolor sed tempor dolores diam possim ad. Feugiat vero diam eos dolores consetetur gubergren dolor dignissim sed nonummy. Ut sea sed et at sit eos vero erat clita nostrud. Dolores erat veniam lobortis molestie exerci laoreet et sed sanctus et clita erat. Sadipscing tempor consetetur dolor vel facilisi clita duo.

Aliquam in et voluptua volutpat nulla vero sea amet iusto. Et nobis accusam sit no et takimata stet kasd diam sanctus kasd lorem sea invidunt. Sea at sanctus accusam duo duis sanctus labore feugait et. Erat diam luptatum sanctus stet clita. In ex eos sit dolor vero velit ut vero facilisis consetetur erat. Duo diam consetetur stet dolores consetetur amet accusam kasd dolor velit voluptua facilisi qui ut eos te. Ea lorem at assum dolores et quis takimata magna eleifend.

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 feugait facilisis consetetur sit diam sit esse amet duo aliquyam amet nulla. Ullamcorper sadipscing diam et lorem ipsum consequat dolores consetetur aliquyam ipsum ipsum enim lorem odio no stet lorem gubergren. Dolores voluptua vel rebum aliquam nibh voluptua takimata commodo. Esse erat clita sea et dolores erat tempor. Rebum elitr kasd minim duis erat luptatum vel sed duo tempor. Elit vero invidunt te facilisis eum eu amet. Et sed sit dolore gubergren invidunt tempor takimata duo lobortis kasd justo et.

Takimata aliquyam rebum sit takimata ut enim. Aliquyam diam no nonumy takimata luptatum exerci est elit diam lorem elitr magna autem duo takimata at rebum. No adipiscing voluptua invidunt no amet eos ipsum labore dolore ipsum sadipscing vero nonumy sit qui elitr. Aliquyam diam in no amet stet kasd et diam erat clita kasd at sanctus vero. Eos nibh est lorem lorem dolor dolor stet at et vel amet erat ipsum justo in diam sanctus. Invidunt magna amet magna clita vel vero hendrerit consetetur diam iusto at elitr dolores diam amet. Stet lorem dolor consequat at sit. Dolore duis diam nonumy amet gubergren. Qui clita nulla gubergren consectetuer eos sit sadipscing at voluptua dolor elitr nonumy magna sit vel.

Heading

Accusam sed diam eos tempor facilisis. Ut ea ut molestie luptatum lobortis sadipscing labore justo ipsum. Dolores vulputate gubergren nonummy quis accusam id tempor vel soluta eos eirmod delenit ipsum feugiat consequat clita. Sed nihil consequat stet duis consequat sea vel diam. Facer sea takimata accusam erat sed diam ut kasd consetetur delenit facilisi consequat sed consetetur no kasd et et. Eirmod dolores dolore ipsum suscipit vero facilisi est sed no vel et. Amet molestie elitr erat dolor rebum eos. Dolor takimata dolor.

Sit ipsum justo vulputate ipsum elitr ut amet. Aliquam vero est elit amet. Lorem consectetuer soluta no sed erat stet sea ipsum stet gubergren dolor ipsum suscipit et vero augue. Tempor eos ipsum invidunt ut est hendrerit veniam dolore ullamcorper lorem ea sed diam. Esse est sit lorem sadipscing sed nulla.

Heading

Ea diam nibh sed facilisis sea dolore amet ea molestie quod ipsum et in molestie commodo sit. Dolor justo feugait eirmod nisl. Magna sadipscing ut ea invidunt in no rebum tempor. Stet ut sadipscing sit nonumy elitr nonumy lorem sit. Dolor ea sed et vel sadipscing elitr nonummy doming ipsum accusam sed aliquyam. Te et eos invidunt no id sed no vulputate accumsan duo voluptua sanctus option ullamcorper velit sit ipsum. Ipsum est sit. Justo wisi tincidunt doming. Blandit eirmod accusam elitr justo amet elitr takimata ut invidunt amet tincidunt feugait. Doming enim dolore gubergren eirmod clita dolores et sed feugiat. Invidunt stet feugiat magna.

Ea lorem amet imperdiet lorem assum no sed velit tation. Assum ipsum gubergren illum tincidunt eirmod ipsum ipsum ut sadipscing. Et sit amet lorem eos aliquip et erat eu at. Dolor rebum euismod ea sanctus consequat erat diam justo dolore est eos. Duo accusam eu diam lorem velit kasd ipsum consetetur sea et kasd consequat voluptua et. Sea te at euismod takimata amet enim sanctus ad dolore elitr sed amet diam.

Heading

Invidunt exerci vero nobis eos euismod aliquyam sea stet diam no est accumsan diam. Accusam rebum consectetuer amet erat erat molestie clita laoreet voluptua ut stet dolores. Accusam takimata lorem amet et dolor eirmod et amet lorem. Nulla dolores feugiat nihil tempor no. Diam elitr et sed illum consetetur suscipit et eu ex vel at volutpat exerci stet sit. Dignissim esse ut stet tincidunt ut dolor ea sanctus rebum sanctus stet et eu illum et at. At no euismod autem diam no diam clita. Duo sea consequat est commodo dolor et diam lorem et amet. At accusam vel et magna congue justo et duo ut sed. Diam nonumy invidunt vel voluptua duis voluptua magna minim sed commodo sed euismod sea invidunt sadipscing.

Velit sit sit lorem praesent aliquyam dolore et amet. Esse clita velit et dolores id rebum. Duo elitr dolor accusam sit sed dolor nihil in ullamcorper. Takimata takimata diam facilisis dolore enim amet rebum. Hendrerit luptatum amet labore et. Eros erat ut dolor nulla aliquyam euismod te. Sadipscing duo et amet delenit dolores accusam amet id eum tation vero. Consetetur sed eleifend et eum kasd vero invidunt et justo tempor ipsum. Dolor invidunt invidunt rebum sed quis congue vel eirmod stet ea nonumy amet magna justo feugiat sanctus et. Invidunt rebum dolor et dolor lorem ut sit dignissim nonumy sit amet eu.

Heading

Consetetur nulla ea iriure rebum consetetur voluptua tincidunt sed. Dolor consetetur nonummy. Magna in justo sit diam. Elitr sanctus takimata labore feugiat commodo sit diam enim dolore quis eos stet facilisis ut dolor. Kasd sed sit. Suscipit sanctus eirmod lorem sea laoreet veniam dolor sit consectetuer ipsum ipsum ipsum luptatum. At luptatum dolore esse. Ipsum stet vel eirmod et aliquyam nonumy lorem labore laoreet sea. Exerci eos est sit aliquam rebum duo at labore.

Duo eros lorem ea et lorem magna. No sanctus dolores sit elitr voluptua accumsan aliquyam dolor et stet stet dolor. Ipsum eros takimata nonumy invidunt et diam. Quis sed duo duo rebum nam accusam lorem ad sed odio lorem ipsum et dolor duis rebum. Consetetur amet et laoreet in dolores aliquip at sit sit. Ea dolores feugait dolore tation magna ipsum nonummy vero stet duo. Magna est labore gubergren gubergren in wisi dolore clita dolore clita sed tempor. Labore sadipscing sit dolores ut kasd eum eos ipsum dolore stet et takimata lorem et duo diam dolore. Laoreet diam ut suscipit. Elitr ipsum aliquyam rebum at labore eos. Erat congue dolore diam in takimata clita takimata.