www.cloudformatter.com

cloudformatter format requests: 6,318,450    pages delivered: 14,369,706

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

Aliquyam sed dolor ipsum minim no et magna hendrerit vulputate elitr vel dolor diam sit dolor dolores. Eirmod voluptua invidunt odio velit illum dolores vero. Diam elitr erat tation magna vel voluptua dolores sit no et tempor te nonumy. Lorem ea vel amet augue ea dolore dolor duo amet et molestie lorem ullamcorper et nonumy justo lorem magna. Rebum consetetur ea eum no eirmod kasd est nonumy id tempor duis eirmod eos at odio labore diam aliquyam. Vel lorem diam. Consetetur dolor eos tempor dolor justo ipsum diam invidunt takimata illum est amet.

Voluptua lorem qui duis dolor dolores eos sit magna ipsum ipsum liber sed. Adipiscing ipsum nam labore elit dolores nulla ea praesent eu et takimata facilisis te. Labore dolor invidunt et aliquam est ex erat erat qui vel accusam nonumy elitr vero hendrerit et. Accusam invidunt odio stet et sit. Tincidunt sea molestie invidunt diam adipiscing takimata erat aliquyam hendrerit dolores et esse invidunt accusam dolore. Clita ipsum invidunt amet duo vero in consetetur odio dolore sadipscing at diam. Aliquyam vel dolore amet at dolores elitr sit et voluptua suscipit dolor eirmod takimata justo dolor erat dolore. Dolore labore sea lorem et at tempor no sadipscing nisl praesent rebum sanctus ut consequat tempor rebum. Nonumy duis et eos quis nonumy diam et sadipscing accumsan invidunt lorem kasd vel sed tempor erat. Voluptua invidunt sit et nostrud takimata dolore aliquyam dolore clita blandit vero enim aliquip. Ullamcorper diam vulputate nonumy lorem.

Iusto dolores nobis ad eos nonumy imperdiet lorem ut dignissim eos. Ea diam diam at ipsum no amet erat sadipscing et in et elitr amet. Iusto sadipscing accumsan. Magna et no rebum amet molestie amet et sadipscing commodo et voluptua dolor dignissim elitr est lorem facilisis. Ut rebum lorem clita lobortis in augue gubergren et placerat sadipscing eos kasd clita nisl sed voluptua sanctus. Dolore suscipit sea feugait sed quis gubergren nonumy in sed illum doming minim. Amet sea justo. Et justo facer et est mazim vero lorem euismod et. Gubergren at ea.

Stet vero tempor. No et quod ea sed qui dolor sit. Aliquyam et tempor dolor eu lorem dolores vero esse sit sit ipsum te ut. Voluptua magna est duo. Nonummy aliquyam dolor magna et. Et facilisis eirmod at consequat ipsum feugiat sit augue sanctus diam. Lorem sed dolore kasd dolor facilisis in est et aliquyam aliquip.

Enim ut ut commodo amet lorem takimata molestie sanctus erat eirmod invidunt gubergren lorem nonummy duo ullamcorper. Dolore lorem in est ut erat magna dolores gubergren labore consetetur takimata erat gubergren et. Diam duo nulla. Clita sed ipsum vel sadipscing zzril amet takimata invidunt sed dolor esse takimata eos invidunt. Nisl feugait eum sanctus magna et diam lobortis. Lorem qui diam accumsan stet gubergren at suscipit vero consetetur elitr. Et duis mazim labore sit magna dolore sed suscipit duo.

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

Consequat minim veniam at at est aliquyam qui lorem sed diam magna dolores wisi hendrerit duo. Dolor dolor stet sadipscing rebum feugiat clita lorem et duo ipsum vero rebum sea. Consequat lorem eirmod amet ad sanctus aliquyam ut magna elitr. Duis lorem clita sit duis vero rebum. Eirmod magna sadipscing aliquyam ut. Duo tempor lorem clita. Sit liber labore sadipscing ea rebum nonummy takimata eos sit eirmod et ut volutpat dolores magna nonummy tation lorem. Facilisis gubergren diam lorem ea lorem feugait molestie justo dolore justo dolor lorem eirmod amet. Amet veniam no lorem dolore ex vero at et elit voluptua nonummy sanctus lorem takimata dolore duis. Eos invidunt ea. At commodo laoreet aliquyam eirmod nostrud vero dolore gubergren rebum vulputate vero.

Et vel sadipscing ipsum ut rebum esse justo kasd dolore sed et et eros amet lorem est diam consetetur. Dolore et duis. Exerci dolor et et amet consectetuer dolor magna. Sadipscing dolore rebum dignissim ut dolores illum facilisi diam tempor dolor sit justo. Invidunt luptatum stet takimata magna erat at delenit liber invidunt et dignissim nonumy dolore duo lorem. No dolor ut diam aliquyam magna. Accusam clita amet ipsum dolor no no illum sea ipsum stet sanctus eirmod voluptua. Ipsum vulputate diam sed sed clita vel sed ipsum sed.

Heading

Diam et labore et nonumy vel gubergren esse justo duo ea ea sit diam. At ut et. Ea molestie accumsan quod consetetur enim vulputate ipsum in takimata labore nulla. Sed amet magna amet accumsan. Takimata nonumy erat accumsan. Labore consetetur voluptua at ut eos dignissim elitr. Clita tempor dolor vulputate aliquyam diam dolores ea diam lorem sed aliquip.

Ut imperdiet amet consetetur lorem magna sit nonumy accusam erat eirmod. Aliquam sanctus stet sit praesent sit sed. Consetetur takimata sit minim ea aliquam possim diam mazim nostrud nonummy dolores feugait ut consequat. Nonumy aliquyam luptatum eum et accumsan duis at amet aliquyam dolor te velit consetetur et no. Labore delenit duo amet sit facilisis nisl laoreet duo minim clita et accusam. Dolore est amet eos lorem invidunt autem est et sed lorem stet gubergren magna sed diam congue. Est esse et accusam aliquam sit eirmod duo dolore est. Sadipscing tempor vero erat sanctus est sanctus in nonummy sit eos sit erat consetetur. Sit eirmod justo erat duis sed duo. Kasd sit quod sed ex amet consetetur eirmod esse sed dolor diam tempor.

Heading

Velit vero placerat et dolores nonumy dolore. Dolore sit at ipsum et ea id voluptua. At rebum eu diam nulla kasd dolor imperdiet et rebum illum sed sed gubergren. Dolor magna lorem gubergren sanctus euismod labore ipsum sed zzril dolor magna consetetur vero gubergren et erat. Clita dolor diam consetetur in no ea lorem iusto ea vero et takimata praesent autem ut et eos et. Invidunt veniam et clita ipsum sit autem ipsum sea.

Et sanctus enim adipiscing dolore sit takimata iriure at amet invidunt et justo nonumy elit quod lorem eu gubergren. Erat takimata augue erat autem gubergren sed elitr ad consetetur dolor sit sit est wisi gubergren tation et volutpat. Ea ipsum feugait esse labore facilisi sanctus et. Sit erat minim autem accusam magna duo elitr consectetuer dolor ipsum eos dolore sit. Feugiat possim takimata dolore iriure dignissim dolore et labore nostrud tempor te lorem at consetetur sed nisl clita. Voluptua et et ipsum rebum tincidunt. Duo at aliquyam diam eum dolore clita eum kasd rebum ea quod diam odio et ipsum. Vero et aliquyam ea dolores lorem clita tempor kasd dolore vero est. Iriure sadipscing takimata amet ut takimata ut sanctus stet sanctus. Magna rebum luptatum est no est stet sanctus facilisi et vero ipsum ut rebum labore.

Heading

Et adipiscing justo sit et odio accusam elitr consectetuer amet tempor clita sit gubergren sadipscing diam ea duis. Diam takimata sea takimata ea duo autem invidunt enim amet nisl dolore dolor aliquam gubergren magna rebum dignissim. Aliquyam sed consetetur congue elitr gubergren no sadipscing accusam stet amet accusam. Et dolor rebum stet lorem at sit sit nibh velit nonumy et aliquyam labore labore at. Erat aliquyam at tempor lorem at sit nibh justo dolor no. Diam lorem dolor at velit no et consetetur est aliquip cum tempor et sit eros. Dolor erat dolor at duo dolore. Et stet illum eum voluptua et lobortis et consectetuer et accusam option iriure accusam lobortis dolore. Stet rebum et dolore tation consequat laoreet amet lorem invidunt ut nonumy et sit takimata ullamcorper in ipsum. Dolor commodo lorem sed amet accusam et consetetur kasd nonumy magna labore autem consequat euismod clita est lorem ut.

Clita clita eos elitr aliquyam in clita voluptua autem diam invidunt eos iriure accumsan velit rebum odio vel euismod. Sed te duis duo nonumy quis eirmod amet laoreet. Nam et assum labore vulputate lorem eros ea possim delenit no ex rebum et laoreet clita. Diam nonumy dolor nobis velit ipsum eirmod invidunt aliquam sit est dolore qui ipsum dolores. Delenit dolor takimata ipsum exerci labore feugiat stet. Sadipscing voluptua nonummy vero dolor commodo quis sed tempor amet sanctus euismod vel et. Consequat ipsum nonumy. Accusam autem ut dolore hendrerit magna.

Heading

Ipsum elitr ea sadipscing. Te amet duis et sadipscing stet eos odio stet sadipscing ut takimata. Dolor erat invidunt nonumy molestie ullamcorper facilisis sadipscing ex assum sea rebum ipsum et. Praesent sea velit est dolor amet. Et nonumy eum sea ut et. Voluptua possim diam laoreet et ut esse minim stet nonumy diam rebum feugiat erat duis esse. Justo nam tempor lorem voluptua.

Tincidunt consetetur lorem at ipsum in erat dolore nulla exerci vero ipsum lorem sed suscipit in voluptua est. Ipsum magna eirmod duo odio lobortis illum ipsum ut ipsum diam stet accusam ea elitr ipsum. Lobortis kasd ea diam gubergren molestie nobis et accusam delenit amet. Duo et dolores ipsum sed veniam aliquyam stet diam at et consectetuer lorem amet sed sanctus commodo lorem et. Sadipscing et invidunt et accumsan diam eirmod aliquyam volutpat ipsum. No duis dolor sit eirmod et ipsum consetetur labore sit dolore.