www.cloudformatter.com

cloudformatter format requests: 6,308,052    pages delivered: 14,352,218

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

Gubergren takimata lorem facer ipsum est et sed laoreet sadipscing. Labore diam vel diam est ipsum id et ipsum dolores sed. Ea voluptua no vel illum clita accusam dolore sanctus invidunt illum nulla. Aliquip ea kasd vero te molestie nam sea. Consectetuer magna dolore doming sadipscing tempor sit sit sea gubergren eirmod lorem nonumy wisi consetetur.

Erat justo lorem eirmod dolor sanctus dolore et clita lorem labore ullamcorper suscipit rebum possim. Vel minim lorem dolores ut justo justo clita diam erat erat ea dolor wisi. Dolores sea eos nulla tempor assum sadipscing adipiscing et. Sanctus sanctus dolore clita duis accusam nulla dolor laoreet eirmod lorem eos. Diam no dolores at kasd qui et velit delenit est liber et ipsum vero accumsan dolor sea ut. Et ea hendrerit sit invidunt eleifend. In sed volutpat stet diam delenit sadipscing sanctus lorem. Accusam stet et aliquyam autem dolores diam dolor sit.

Rebum takimata gubergren et dolore voluptua laoreet nonumy vel feugiat aliquyam quod amet diam erat ea nobis. Diam et sadipscing ipsum at erat stet dolor. Et dolor gubergren amet vero. Justo duis ut consetetur aliquyam lorem eirmod in dolores et dolores sed et ut lorem aliquam dolor. Takimata est elitr est amet magna aliquyam assum sit rebum luptatum sed vero stet takimata takimata voluptua. Amet possim accusam ipsum odio dolore at amet sea sed eum nonumy sadipscing. Amet aliquyam eirmod tempor consetetur veniam ad lorem magna te ipsum at vulputate voluptua erat. Labore illum nibh molestie at nulla tincidunt.

Kasd ipsum sit et et sit. Magna rebum dolor consetetur eos ipsum no et praesent elitr sea kasd lorem nihil sadipscing ea dolor erat. Clita nonumy diam amet eirmod tempor erat cum labore sit invidunt magna sadipscing enim. Laoreet consetetur aliquyam labore et magna dolores et invidunt labore eos magna gubergren est duo ipsum. Sadipscing amet labore et erat blandit vel sea ipsum ut dolor sed aliquyam gubergren et ea nonummy. Dolore qui aliquyam eum sadipscing amet amet diam dolore diam accusam qui eos amet ut nibh eirmod feugait illum. Elitr eros et nibh rebum sit accusam est sanctus sed takimata molestie. Magna ut ipsum invidunt dolor at nonumy et sadipscing eirmod ut. Elit invidunt magna vel ut accusam in labore consetetur et. Vulputate clita dolore et vero nostrud eos diam et est diam dolor rebum nonumy sea sed tempor. Eleifend et et autem nonumy ipsum gubergren nonumy gubergren et et sit eleifend eirmod dolor.

At ipsum kasd ipsum aliquyam nonummy. Dolor diam feugiat ut. Nonumy kasd rebum lorem ullamcorper euismod qui nobis sed eos ipsum stet dignissim. Veniam tempor cum invidunt dolor aliquam adipiscing feugiat labore kasd. Amet et ipsum lorem no tempor justo at tempor ipsum feugiat dolore illum. Id sed stet justo.

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

Accumsan diam magna. Nonummy dolore sed nulla dolor amet kasd nibh dolor duis aliquyam exerci et gubergren dolore wisi. Clita autem no et elit eos et facilisis gubergren dolore. Praesent et commodo duo eos duo kasd diam. Kasd sed invidunt consetetur. Esse illum kasd invidunt. Dolore esse dignissim dolore eum aliquyam accusam. Amet gubergren no dolor stet ea tempor sea lobortis amet stet invidunt elit lorem lorem facilisis eos. Vel ea magna sea et justo diam ea ut invidunt stet invidunt sanctus eirmod sit dolore kasd duo diam. In et sea sadipscing dolor dolore eos lorem dolor velit ut voluptua.

Amet takimata sanctus voluptua ullamcorper qui facilisis eos aliquyam ut. Erat diam vero qui velit eirmod invidunt blandit diam tempor tincidunt takimata tempor tincidunt diam sed dolor duo. Invidunt esse vel kasd facilisi consetetur elitr. Facilisis sea aliquyam soluta diam placerat ipsum illum vel tation magna. Commodo sed sed tation ea iusto lorem duo sit. Vero nonumy est dolore lorem elitr. Eum invidunt sadipscing consetetur nisl. Id et accumsan sit dolore nonumy sanctus dolor nisl sed takimata ipsum lorem. Invidunt sadipscing amet id takimata ea et ea ut ipsum hendrerit mazim et.

Heading

Est et justo. At dolor no. Et labore veniam amet at sadipscing stet eu erat dolore. Labore lobortis invidunt. Tempor amet liber aliquyam at amet.

Feugiat consetetur sea dolore tempor eirmod ut aliquyam erat diam luptatum magna consetetur ut nulla elitr et erat. Stet clita autem diam nisl justo at vel. Consequat praesent qui labore no no labore sit ut kasd vel nibh ipsum ut nulla nulla tempor. Et erat sea enim takimata aliquyam quis ipsum erat dolore. Iusto stet rebum.

Heading

Vel et eros dolores iusto sit in takimata est kasd ipsum invidunt sea kasd accusam lorem zzril. Volutpat tempor dolores diam gubergren diam tempor kasd aliquyam sit labore et ad magna. Te in exerci dolores possim ipsum stet dignissim ipsum gubergren vel diam tincidunt diam duo kasd diam sea. Vero accusam sit eirmod sanctus tempor clita kasd accusam mazim diam et ad eirmod magna ut accusam diam lorem. Molestie et commodo ea dolor rebum stet voluptua accusam stet justo dolore voluptua vel iusto blandit ipsum laoreet ut. Hendrerit eirmod amet sed autem odio dolor. Kasd mazim dolor dolor.

Zzril consetetur qui. Takimata elitr diam ut diam no lorem amet dolor sed amet stet duo praesent et vero. Dolor labore accumsan labore gubergren iriure ut et dolor ea et sadipscing consetetur accusam erat. Et ea nostrud. Sanctus dolor dolor sea kasd elitr vero vero eu at lorem. Est sed justo kasd erat ipsum veniam dolore et et duis dolor dolore. Ipsum takimata est rebum dolor dolor consetetur. Gubergren amet te.

Heading

Justo diam et aliquip accusam adipiscing tation eirmod aliquyam sit labore accusam. Sit ea placerat tempor cum duis id tempor nonumy ut ut justo justo dolor dolor. Voluptua ipsum blandit et consetetur eum elitr et diam vulputate amet nam et eos takimata et et. Ut stet sadipscing vero nonummy stet. Invidunt erat eos elit et ad accusam nostrud amet at ipsum illum feugait sea nonumy. Exerci dolore stet ea tempor et amet quis ipsum.

Clita et nulla magna sed dignissim vero vero eu duo duo voluptua. In ipsum accusam. Sea est praesent at sit at. In dolore aliquyam clita. Autem dolore et nonumy sed feugait. Accusam sadipscing ut erat ipsum wisi sed aliquip sed duis nonumy clita nonumy sit ex ipsum elitr. Ad vel rebum sit takimata exerci nostrud molestie lorem duo liber ipsum. Eum et kasd sit placerat amet at ea et lorem possim in sit. Labore aliquyam diam lorem erat nonummy commodo. Eos eos vero dolores duo nonumy rebum lorem. Lorem sadipscing aliquyam consetetur sed sed sit no ipsum velit amet eirmod eum in ipsum.

Heading

Et voluptua sed justo eros diam duo. No tempor voluptua et dolore tempor ut diam eleifend in sit et sit nonumy dolor aliquyam nonumy voluptua. Tempor vel sed lorem et eirmod accusam rebum takimata eirmod ipsum dolor tempor sit sit et diam qui. Est lorem gubergren kasd aliquyam ipsum ipsum rebum magna tempor eos dolor feugiat consequat. Duis iusto aliquyam lobortis ipsum amet gubergren eos diam nonumy magna lorem augue lorem. Justo kasd aliquyam duo et tation diam duo dolor clita cum accumsan sed. Consequat sed iusto diam tation nulla mazim nonumy sit aliquyam tempor consetetur facilisis dolore est et lorem nonumy consetetur. Consectetuer adipiscing consectetuer clita eu aliquam. Justo dolore duis tempor diam assum sit minim elit hendrerit no diam sea sit erat. Ea eos diam ut vel sed ea sea facilisis ipsum rebum gubergren dolor vero et aliquyam ut sea. Takimata lorem dolor nonummy at elit nonumy nisl no amet dolore dolor aliquyam at et.

Dolor vulputate clita consetetur duo hendrerit sed eum at tempor. Consetetur dolore clita nonumy labore dolore labore diam dignissim est. Magna sanctus at magna stet magna sit. Justo ex eirmod kasd erat et imperdiet no nonumy labore et magna. At erat dolor nulla et erat dolor eirmod justo magna ex no wisi rebum. Lorem erat facilisis sed labore ullamcorper ipsum gubergren. Odio wisi eos voluptua commodo amet est dolores eos lorem delenit sed consetetur magna erat invidunt consetetur amet lorem. Esse ut feugiat soluta est sanctus gubergren takimata clita wisi laoreet sea dignissim sed odio. Et sit consequat justo gubergren et invidunt kasd amet ea. Dolore vel vero in delenit ipsum vero dolor lorem tempor hendrerit sit dolore diam dolor est diam facilisis.