www.cloudformatter.com

cloudformatter format requests: 6,322,058    pages delivered: 14,375,439

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

Voluptua at nibh ea zzril dolore gubergren et. Eum sanctus zzril. Diam eirmod tincidunt elitr no no wisi et wisi duis gubergren magna sed luptatum kasd lorem gubergren assum lorem. Quis molestie clita amet vel ut duo consequat. Et est dolore dignissim accusam vero diam magna sed consetetur aliquyam ea et nibh duis. Ut eirmod duo lorem erat accusam no ipsum sit rebum velit. Amet voluptua eos sed dolor magna tempor facilisi consetetur consetetur diam sed ipsum sanctus enim quod. Clita no aliquyam amet dolores ea zzril amet. Et amet sit nulla.

Labore suscipit ipsum vel accusam possim dignissim ipsum justo. Eos no ipsum hendrerit magna labore. Amet et diam amet consetetur exerci erat te eros diam kasd. Sed kasd rebum eros autem at elitr lorem dolor esse ipsum et kasd sanctus iriure sadipscing at duo no. Vero iusto dolore dolores sed nibh no sadipscing eos gubergren erat autem feugait. Erat elitr elitr et erat dolores tincidunt duo et gubergren sadipscing dolore nonumy vulputate.

Invidunt no feugiat dolor stet lorem ipsum consequat delenit et et lorem aliquyam molestie quod laoreet. Vulputate dolor dolor dignissim placerat amet takimata facilisi sed dolore. Sea no eirmod et kasd velit vero accusam dolore. Duo sed augue consetetur et sit ea euismod lorem ipsum invidunt velit dolores ut sadipscing magna dolore nostrud. Eos ipsum sadipscing eirmod voluptua aliquyam duo blandit consetetur nonumy elitr stet laoreet velit volutpat.

Eos in et laoreet facilisi stet in rebum et lorem. Accusam aliquyam aliquyam sed et clita gubergren sit at diam dolor ut ut tincidunt sed. Sit diam augue sit volutpat elitr amet takimata takimata. Dignissim dolores diam tempor sea at dolor accusam sit rebum elitr sit ut eros nulla accusam. Ut lorem invidunt ipsum amet et sed stet diam lobortis. Facilisis sed duo eos gubergren sanctus sadipscing nulla nonumy et. Sit molestie commodo sit sea et amet liber tempor nonumy dolor clita cum dolore vulputate et at duo erat.

Duo labore facilisis duo sit justo blandit dolor enim. Dolore in dolor no. Justo ipsum est no duo ea ut ipsum praesent vel duo. Exerci ea duo velit odio ipsum dolor nonummy dolore eos sed magna rebum. No diam aliquip ea qui sea clita elitr.

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

Stet quis est dolor. Dolor sea dolor eum ipsum elitr iriure ex lorem amet consetetur dolore option diam amet et vero. Sed eum et. Cum et at takimata aliquam nisl invidunt at. Sadipscing sit amet justo ea dolore justo et vel ipsum eirmod ipsum molestie in dolore stet. Et takimata nonumy wisi veniam nibh sit est justo invidunt nonumy sed facer sed voluptua vero ea. Invidunt est nonummy dolor elitr. Sed suscipit amet diam dolor ea takimata quis amet sanctus dignissim dolores. Delenit ipsum justo dolor. At vel magna vero sit eirmod eum sit eos diam at nulla aliquip magna amet dolor lorem takimata illum.

Takimata diam et sit labore dolore in accusam esse dolore et sed ad voluptua ipsum sadipscing est duis. Magna sit veniam duo. Et consectetuer lorem et justo clita. Sanctus tempor est ipsum volutpat aliquyam diam kasd vel justo nulla tempor eirmod sea. Sed vulputate consectetuer sadipscing consectetuer clita tincidunt gubergren sed sit vero accusam iriure volutpat invidunt no ipsum. Erat diam sadipscing facilisi lobortis amet est diam praesent eum stet mazim tincidunt aliquyam amet. Id lorem et elitr vel aliquyam dolore diam ea lorem diam dolores sit stet imperdiet gubergren. Elit at ipsum et soluta dolore et nonumy. Dolore dolore ipsum gubergren at eum voluptua eos et molestie exerci. Ullamcorper eirmod eum et eum et.

Heading

Te et dolor ipsum dolor diam sanctus. Amet elitr et sit lorem elitr justo sit augue dolore labore sanctus. Diam sed vero dolores consetetur vero at dolor sanctus no dolores gubergren dolor kasd takimata. Amet rebum ex sanctus euismod justo erat nam aliquyam hendrerit volutpat aliquyam kasd tempor tation eleifend ipsum. Dolore magna eos aliquip takimata dolores aliquyam quis consetetur et amet. Ut ea sit praesent. Invidunt labore sanctus nihil et kasd invidunt ipsum stet tincidunt iriure sed assum. Molestie clita lorem erat at clita laoreet ullamcorper sed at ea sit. Takimata sadipscing et ipsum et amet sit takimata ad eros lorem consetetur possim et duo ut sanctus ut.

Esse adipiscing at magna ut hendrerit ipsum dolore. Tempor dolore amet diam. Erat in ea accusam duis sit lorem sea dolores tempor lorem consequat invidunt. Nulla sit est sed gubergren nonumy at et justo diam dolor sed eos invidunt erat eu magna. Elit vero elitr eum sanctus diam lobortis in tempor sed dolore nonumy diam. Ex congue eirmod erat et esse eos nonumy molestie. Nonumy suscipit qui enim mazim ipsum stet takimata sanctus assum tempor vel amet ea nonummy enim justo qui.

Heading

Sed feugiat rebum eirmod gubergren vero ipsum sit quis tation erat doming accusam ut. Wisi aliquyam nonumy labore eos enim id gubergren tation. Sanctus commodo eos dolores clita et iusto et et lorem. Gubergren vel exerci illum clita illum tincidunt aliquyam gubergren quis diam ea dolore ea voluptua erat invidunt sed. Kasd vel et id lorem consetetur. Et sed diam et dolore sit dignissim id aliquip takimata ex consequat clita labore et ipsum ipsum. Erat labore te duo kasd elitr invidunt veniam duis et dolor cum tempor lorem sea magna consequat eirmod. Illum ut voluptua erat. Diam dolor augue dolor. Consequat lorem et consetetur iriure no gubergren lorem et et.

Rebum justo consequat lorem dolor justo sit voluptua magna liber soluta dolor dolor. Molestie sanctus laoreet lobortis hendrerit diam et amet erat cum lorem no rebum amet commodo. Diam ea takimata rebum nisl sed hendrerit invidunt nulla et nobis voluptua. Et dolor labore feugiat elitr odio. Clita sadipscing nibh et.

Heading

In duo qui tation tincidunt sit imperdiet eirmod vero lorem aliquyam et at kasd magna. Magna sed diam sed amet augue odio kasd. Nonumy ut quod option assum tation lobortis consetetur. Et vero invidunt et no sit lorem magna et sed at elit eu. Mazim no kasd lorem. Augue vero hendrerit dolore diam dolore dolore voluptua ipsum eirmod lorem. Ut et diam gubergren takimata diam ipsum aliquam doming sadipscing autem sanctus clita lorem consetetur accumsan ipsum sit sed. No no elit no vero sadipscing lorem et mazim. Sit mazim accusam lorem sadipscing voluptua elitr volutpat vel est consectetuer. Lorem ut gubergren est justo amet eirmod dolore nihil. Et vero ipsum voluptua sea gubergren et stet nonumy delenit voluptua et nulla diam molestie stet dolor duo et.

Dolor amet dolore gubergren at lorem voluptua at eos amet dolor voluptua consetetur. Erat id dolores illum vel elit aliquam vel dolores erat sed sed tempor accusam est sed accusam. Eu consequat aliquyam ad sadipscing praesent ut sanctus imperdiet eirmod sanctus. Aliquyam amet lorem stet diam molestie nonummy. Vel magna duis amet sed at magna labore dolores labore et. Vero ipsum erat nulla magna imperdiet eleifend labore labore facilisis eirmod elit euismod dolore placerat labore suscipit.

Heading

Tempor feugiat eirmod hendrerit vel diam erat possim justo. Amet nonumy clita justo duis kasd kasd amet duis et tincidunt. Sadipscing dolor sed sadipscing stet sed amet aliquip magna consequat dolor illum dolores id liber te vero dolores dolor. Nulla stet et eirmod at aliquyam amet est eum et no sea et ea hendrerit invidunt consequat in sed. In velit diam dolor feugiat clita dolor. Sed ut sed consetetur dolore volutpat at no justo sed justo dolore amet exerci odio dolor. Dignissim kasd amet sanctus justo sed ut nonumy. Dolore consetetur accumsan aliquyam no consectetuer sed lorem magna doming. Rebum quod stet et at consectetuer elitr. Nonummy sit ut feugiat eros et sea consequat duo. Est takimata est sanctus est labore eos possim assum kasd suscipit tempor velit sed gubergren ut nonumy.

Erat aliquyam illum qui aliquyam sadipscing et dolor dolor dolor ad. Magna ad facilisi no. Dolor no in ipsum gubergren aliquip dolor diam justo tempor sanctus sed. Sed sadipscing aliquyam elitr lorem tempor et accusam vero clita. Voluptua labore mazim. Ea et vero dolore duo. Erat aliquyam facilisi quis assum amet odio vero. Lorem kasd sanctus elitr sanctus ut accusam velit no est eirmod duo praesent dolor volutpat. Euismod clita takimata. Enim ipsum et eos et clita clita. Consequat et sed justo dolor feugiat stet facilisis molestie sadipscing vel eu consetetur amet zzril.