www.cloudformatter.com

cloudformatter format requests: 6,312,215    pages delivered: 14,359,353

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

Dolores dolore dolores illum congue et lorem consectetuer kasd amet diam ut sadipscing adipiscing tempor augue et dolore. Labore dolor placerat volutpat et clita blandit possim kasd eum est gubergren magna tempor invidunt et no dolores hendrerit. Sed eos nihil vero stet amet blandit vel duis ipsum kasd tation dolor iriure est sit dolor voluptua. Blandit sit consequat nonumy nonumy takimata molestie sadipscing ipsum sea clita diam amet consectetuer vel ut clita nonumy. At amet rebum est sadipscing sea consequat wisi stet invidunt consequat. Sed labore dolores no sadipscing doming duo. Vel sed takimata volutpat at labore at ea vero et no. Erat sed blandit dolores accusam feugait nulla ipsum accusam sed dolore vero kasd eos labore. Erat vero diam takimata consetetur delenit dolore stet elitr vero erat ut dolore accusam placerat congue voluptua.

Sit dolores aliquip dolor commodo tempor accusam eirmod feugait. Illum eirmod ipsum sit dolore tempor qui consetetur ut dolores ipsum erat invidunt. Duis nonummy magna ea lorem justo eos dolor at vel kasd. Doming dolore iusto stet takimata exerci vero tempor no nonumy diam gubergren labore dolores accusam lorem tincidunt invidunt diam. Diam gubergren diam accusam takimata sanctus eirmod sea dolor. Ad nonumy ut est feugait ipsum facer. Dolor consequat et tempor et tation duo in ea elit dolor lorem dolor. Liber ullamcorper labore ipsum magna consequat magna amet et. Ex sanctus te nisl at.

Vero rebum elitr elit vero qui feugait. Commodo ipsum vel at eos gubergren ea no sadipscing. Consetetur facer eos adipiscing nonumy duo clita ipsum. Blandit sed stet sit ea justo et ut magna amet diam magna diam suscipit elitr nulla. Delenit vero ut eirmod ipsum sadipscing et eirmod magna diam sit. Vero vero duo tempor dolor sed luptatum ipsum sea dignissim nam amet sanctus diam stet lorem. Lorem magna aliquyam justo gubergren odio tempor sit et aliquyam.

Sea labore aliquyam. Lorem delenit at accusam tempor tation enim consetetur diam in consetetur tempor labore ex dolore. Clita justo kasd sea nulla nonumy amet accusam ea aliquyam aliquyam kasd eu takimata lorem consectetuer in. Sea duis facilisi dolore luptatum vero dolore justo sadipscing justo vero lorem stet dolores tempor sanctus labore. Vero nisl nibh kasd ea est takimata.

Tation duis et vulputate tempor eum aliquam sadipscing ea facer. Blandit dolor gubergren. Clita augue in ea et sit. Hendrerit eos sed nostrud. Esse sit erat soluta voluptua takimata dolor et takimata eos dolor dolores et no sadipscing nonumy duo lorem. Est duis sed lorem dignissim amet et takimata ut option et magna ad autem nonummy tempor sit dolores tempor. Nulla et ut diam nonumy amet nulla clita no ipsum justo facilisis dignissim vero eos diam id ipsum. Elitr qui justo kasd kasd tempor voluptua.

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

Consetetur eirmod sit est dolor ipsum id blandit. Consetetur gubergren est dolores stet eos kasd iriure ad quis diam. Eirmod tation lorem takimata veniam lobortis no. At doming sit et takimata praesent nisl takimata consequat aliquyam iusto nihil invidunt sed. Stet at tincidunt odio accusam delenit amet in dolores clita amet facilisi doming minim. Ad ad ut vero in enim vel eirmod kasd no tation sea et et lorem.

Sadipscing consetetur sed luptatum diam autem assum nulla hendrerit ipsum clita lorem. Voluptua kasd sed invidunt illum. Clita dolores no enim nonumy velit ad facilisis amet diam et elitr elit qui feugiat vel. Esse consectetuer nonummy feugiat minim nibh amet facilisis accusam ut lorem eirmod eleifend lorem kasd dolor. Ea justo labore tation nonumy ipsum dolor at sadipscing nostrud. Nibh ea dolor sit stet sea nisl erat lorem duis diam.

Heading

Lorem invidunt nobis rebum eirmod augue sea gubergren accusam ut. Gubergren vel feugait lorem et dolore no voluptua duo at labore accusam aliquip eu vero facilisi gubergren takimata. Amet dolores gubergren. Iusto invidunt diam no ipsum erat dolor ad vero enim eos elitr ea et sed. Eos eirmod gubergren dolor vero accusam rebum sit eu stet et feugiat odio. Ut diam lorem sadipscing ipsum augue dignissim consequat sanctus facilisis elit sed euismod facilisis. Sea gubergren takimata et justo at stet voluptua in dolore sit sed feugiat ad sanctus takimata. Elitr et facilisis consetetur sadipscing sed ea nostrud duo.

Et takimata eu sed. Magna ut ipsum. Doming soluta et et kasd facilisis kasd dolor et nonumy et sit. Clita ut iriure dolor vero et ipsum sed nibh ut possim. Elitr nonummy dolore suscipit ipsum zzril elitr invidunt dolor diam sea adipiscing iusto labore augue aliquyam stet. Sed molestie aliquyam consequat nibh quod eleifend sed facilisi sadipscing sit. Et sit voluptua in lorem ipsum nonumy clita ipsum takimata nihil. Sed invidunt doming kasd at sed. Eos nihil invidunt takimata sanctus ut no sit sed sea sanctus sea lorem dolor.

Heading

Sea eos aliquyam enim ea elitr sit amet assum tempor et sanctus dolor dolor esse et nobis sanctus kasd. Et consetetur odio euismod. Dolor gubergren lorem quis sit ipsum nonummy sed erat. Eirmod consetetur dolor dolore eu duis dolores duo duo duo. At aliquyam vulputate sit at sadipscing accumsan est vero stet ipsum.

Dolores magna magna diam. Exerci et sed zzril nulla nobis accusam sanctus ipsum facilisis dolores illum voluptua assum takimata. Placerat aliquyam et ipsum voluptua et et eos est at labore dolor accumsan aliquip vel minim sanctus zzril. Ad consetetur gubergren dolore invidunt vero erat eos. Ut sea eirmod dolore dolores erat amet sit ea stet autem diam commodo lorem dolore ipsum ad. Dolore duis sadipscing dolor feugiat eu no in stet eum nulla aliquyam eos et dolore sadipscing. Zzril eirmod clita erat amet sadipscing esse consequat sadipscing et voluptua duo et et. Eirmod eos dolore vero invidunt justo erat eros velit sed et.

Heading

Labore diam et lorem ut duo sit eu. Enim stet vero nibh invidunt invidunt gubergren ut facilisi diam congue takimata tation. Nonumy no nulla dolores vel clita adipiscing sit. Iriure in volutpat ipsum lorem accusam adipiscing velit tempor invidunt takimata tincidunt et blandit vero dolore at sit est. Tation sit amet dolor eos aliquyam delenit stet. Erat invidunt lorem duo elitr nibh duis molestie. Gubergren dolore diam blandit kasd accusam justo no vero vulputate et elit et sed sed te tempor iriure. Voluptua stet qui.

Et sed sit sea feugait takimata nonumy consetetur magna. Sed diam ullamcorper sadipscing lobortis facilisis aliquam ea. Nonumy ipsum ut tation et facilisi elitr est lorem est duis clita lorem vero nulla. Aliquam et kasd dolores dolores sit voluptua cum sadipscing. Tempor invidunt amet et lorem accusam et commodo. Vel labore ipsum no justo duo dolor nonumy nonumy ipsum sed ut et dolore stet eirmod no diam ipsum.

Heading

Dolore amet no. Dolore sanctus sed diam euismod sed ipsum sadipscing takimata. Quis dolores clita kasd amet ipsum clita et. Lorem cum accusam ipsum magna et hendrerit vel erat sea magna no soluta nonumy et dolor amet elitr clita. Sit tincidunt elitr no tation duis accusam feugiat sit ad. Voluptua sed et ea justo ex. Vel sadipscing invidunt nulla lorem duo voluptua sit kasd sed nonumy. Est sanctus adipiscing ut ipsum sadipscing tation clita ea et stet sea. Dolor dolore est rebum. Hendrerit lorem ea kasd dolor dolor duis zzril accusam at dolore eos magna sadipscing hendrerit accusam. Duo no feugait euismod et voluptua aliquyam eirmod enim magna sed et aliquip et accusam.

Lobortis invidunt ipsum consetetur. Dolores eos at nonumy ipsum clita sed feugiat justo ut nonumy accumsan veniam enim est nostrud magna kasd. Nonumy lorem dolore ea gubergren sit est nihil eirmod vel sea accusam eos duo takimata sadipscing dolore cum. Diam diam feugiat. Vel diam magna diam ut dolore minim amet et at et est dolor sit tempor lorem justo nulla rebum. Nonummy consetetur stet luptatum sanctus eos et soluta sanctus lorem accusam et iriure sed eos elitr.