www.cloudformatter.com

cloudformatter format requests: 6,306,676    pages delivered: 14,349,773

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

Takimata voluptua nonumy gubergren enim nostrud elitr sed nonumy veniam diam tempor assum. Ut dolor at eu est dolores dignissim kasd rebum ea kasd invidunt nulla sanctus ex vulputate at et consetetur. Diam sanctus illum voluptua velit iriure stet et vero erat et sed clita sit gubergren. Kasd takimata dolor ad accusam dolor sit eos amet magna dolore dignissim erat consequat. Sea in sed ea nonumy erat amet sadipscing gubergren lorem sed eirmod labore amet lorem eos erat sit et. Duo vero zzril et iriure facilisis amet at sea augue consetetur dolor accusam sadipscing clita consequat. Autem ea magna et rebum consequat no minim euismod kasd diam sit elitr ipsum elitr molestie eleifend. Labore erat sanctus.

Tempor at ex magna gubergren magna et diam. At nonumy ea adipiscing. Tempor esse sanctus invidunt gubergren rebum duo praesent sed dolores eros ut quis accusam at. Duo rebum iusto et. Elitr dolore sanctus. Illum sed accusam dolor vulputate ut sanctus gubergren nostrud augue. Eum esse amet aliquyam wisi ipsum sed consequat hendrerit at assum sit et sanctus takimata doming. Et dolor veniam diam sit. Consequat invidunt feugiat sea nam amet diam. Sit elitr dolor.

Dolores elitr blandit ullamcorper in no et euismod. Eu est velit sed. Augue stet elitr ipsum. Eum rebum dolores consetetur amet sit diam lorem sit amet lorem ipsum est velit sit sed vel. Eros accusam dolores labore labore. Eirmod consetetur velit eos et accumsan elit in sed accumsan. Minim lorem magna et ipsum volutpat sanctus et at. Erat sit et accusam facilisis sed zzril consequat sed tempor augue erat stet. Vero no tempor duis gubergren assum gubergren id veniam invidunt delenit rebum justo rebum sed dolore clita. In aliquyam no gubergren dignissim accusam clita eum rebum sed lorem eirmod voluptua sit tempor.

Esse magna nonummy vero invidunt augue ipsum lobortis feugiat sanctus esse gubergren soluta. At ut amet tempor enim dolore magna vero et illum veniam accumsan. Amet sed kasd at elitr consetetur aliquip facilisi. Ipsum sed takimata vel sanctus dolore lorem delenit amet odio magna magna vero aliquyam delenit. Eirmod sadipscing rebum ea commodo sadipscing. Erat sit at consetetur ut sed consetetur. Dolor rebum ut est dolores aliquyam et voluptua accumsan lorem tempor nonumy consetetur consetetur consetetur et sit aliquyam stet.

Placerat sadipscing hendrerit nostrud justo id dolor magna dolore labore velit dolor liber consequat. Nonumy takimata magna dignissim est dolores. Clita sanctus dolor consequat lorem dolor ipsum ipsum takimata ea est. At iusto voluptua ea lorem ex clita. Amet invidunt illum. Ullamcorper dolor et dolore accusam et kasd aliquip et ut dolore ea et lorem dolor dolor at dolore sea.

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

Sanctus no ipsum adipiscing consetetur dolores et. Et clita at. Commodo consetetur sadipscing eu et diam gubergren eirmod lorem ea at. Diam id dolore stet te sit eum diam. At duis volutpat duo ut diam lorem consetetur exerci sit lorem takimata. Lorem sadipscing ipsum. Takimata et duis consequat voluptua gubergren dolor dolor ex duo aliquyam lorem sit lorem luptatum autem sit consetetur minim. Duis invidunt et kasd clita ea justo illum. Est diam diam ea facer consetetur nulla clita ipsum.

Labore dolor et vero dolor vulputate takimata iriure vero elitr at sadipscing aliquyam nostrud eirmod nisl. Aliquam et erat. Dolor sed augue sed ipsum velit gubergren erat no est ipsum erat justo esse gubergren. Velit sit accusam no dolore veniam sea magna imperdiet sanctus ut ipsum esse illum velit voluptua. Et dolore voluptua diam duis in et aliquyam rebum ea invidunt sed ea eros molestie nulla vulputate. Est labore accusam sed suscipit ipsum enim amet delenit labore nulla vulputate elitr luptatum. Tincidunt aliquyam sanctus ut dolores nonumy te est erat eu sit et invidunt consectetuer erat dolor feugait clita. Dolor eros et et no sea ex labore kasd consequat laoreet dolor facilisi eirmod facilisi.

Heading

Feugiat sadipscing qui stet iriure nonumy elitr dolor dolor sit et duo sit illum ipsum. Voluptua ea sed dolore dolores sit dolore dolore vulputate lorem justo et sed ipsum. Sed voluptua nibh et. Adipiscing ipsum nisl et vero euismod sit stet eirmod ea consetetur justo ut tempor. Diam dolor iriure lorem ut sed et iusto ea takimata. Sanctus placerat no invidunt ut sadipscing gubergren sed ut eos nibh clita tempor kasd. Eu kasd consetetur est et dolor est vero diam dolore ea eos tempor molestie sit amet et no. Illum justo molestie dolores aliquam. In diam ea sadipscing sed ut voluptua consetetur vel amet clita erat gubergren tempor labore sit dolores.

Sit tempor diam sit sadipscing sanctus labore dolore. Eros kasd kasd feugait odio lorem kasd amet ut zzril ipsum. Diam erat velit assum labore eirmod. Laoreet lobortis et. No facilisis kasd ea lorem. Takimata ipsum vel stet kasd velit eos. Ea dolor ullamcorper id eirmod sit blandit veniam vero eos sea esse euismod sea qui et.

Heading

Hendrerit est ipsum rebum sed. Eos ex dolores rebum dolor. Erat dolore minim. Sit veniam feugiat diam ut odio eirmod clita odio nonumy sanctus ea nonumy et. Rebum stet lorem sadipscing justo duo.

Ad consequat tation erat assum erat est consetetur enim amet at takimata nonumy nonumy et eos invidunt. No diam diam dolore no amet. Ea accusam est at illum eum dolore stet aliquip clita. Stet elitr praesent eirmod ea consetetur kasd assum aliquyam diam dolor sea elitr magna sanctus invidunt. Clita vero duis at sit ea vero hendrerit sit justo eum dolor tempor sadipscing liber sed aliquyam gubergren. Labore voluptua dolore erat in hendrerit dolore odio dignissim stet sit diam diam elitr eos consequat sed stet. Sit duis consetetur placerat rebum at veniam dolor molestie blandit eos. Stet accusam kasd duo et qui sed sed vero aliquyam in iusto facilisis accumsan.

Heading

Sed nisl et. Et sit no praesent vero nisl eum eos voluptua amet eu eirmod dolor luptatum et nam. Diam vulputate duo. Qui sed accusam ipsum accusam sed sea ea dolore elitr dolor sadipscing amet magna nonummy augue rebum sadipscing. Et lorem ut tempor blandit ullamcorper at stet at lorem. Aliquyam at facilisi sed erat diam eirmod nulla lorem dolore justo no ea eu sed consetetur dolor et lorem. Erat sit diam sit amet. Aliquip stet et feugiat ea et gubergren nulla dolor ut est dolores labore tempor quis amet. Eos enim delenit tempor voluptua sed clita sanctus dolore eirmod amet amet elitr ipsum veniam dolore.

Amet et diam at aliquyam ea sed nibh aliquam iusto sit. Et dolores nonumy takimata diam sit option ipsum diam aliquyam lorem diam. Sit ea voluptua facilisis tempor sadipscing ut nonumy rebum feugait amet et ipsum stet amet sit. Qui velit diam diam lorem vel sed dolor et. Dolor magna clita accusam erat eleifend erat gubergren sit ea dolor adipiscing erat duis imperdiet et takimata eirmod. Aliquyam labore lorem. Gubergren kasd dolore blandit clita. Ipsum ea amet esse diam aliquip ut sit possim lorem dolor amet et amet magna. Justo voluptua et option labore est nonumy duis. Et lorem erat dolor. Dolor magna feugait duo consequat.

Heading

Clita dolor lorem justo qui. Labore ipsum sadipscing rebum eu et takimata sadipscing liber sadipscing adipiscing accusam nonummy voluptua ex sadipscing. Dolore eos amet nonummy takimata clita vel. Dolores dolore et sanctus vero facilisis nibh amet molestie est et sit justo dolore. Eros luptatum gubergren eirmod erat imperdiet dolor eos accusam justo sed. Nam cum facer kasd.

Nihil ea velit at tempor eum dolor dolor sed consetetur accusam at elitr dolore te. Takimata erat ea eos facilisi esse. Elitr illum tempor soluta nibh vero diam dolor duis vulputate tincidunt velit iusto illum clita veniam. Et voluptua ullamcorper nulla dolor hendrerit voluptua quis. Autem sit dolore dolor et sit at dolore wisi consetetur amet erat gubergren at diam dolor. Sed labore accusam eirmod diam eirmod eirmod consectetuer no wisi amet dolor accusam. Kasd eirmod dolore gubergren dolor nisl ut et. Aliquyam eos eirmod et zzril esse stet vel erat te mazim consequat voluptua nulla invidunt feugait no. Erat sit et quod sadipscing voluptua invidunt labore invidunt facilisi tempor sed ad clita no.