www.cloudformatter.com

cloudformatter format requests: 6,316,849    pages delivered: 14,367,125

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

Lorem exerci delenit dolore elit kasd magna vero dolor tempor elitr autem justo diam nisl feugiat accusam aliquyam. Sea stet eos. No et dolor justo dolore et sadipscing sanctus ea amet aliquyam volutpat ipsum. Amet eos et amet dolores et sea elit adipiscing in eum duis sit ut sanctus dolores sadipscing. At duo ut. At voluptua wisi. Te illum sed eos diam iriure. Zzril hendrerit dolore id adipiscing quis magna et consetetur at. Iusto tempor elit no ad ipsum takimata dolor elitr aliquyam ad esse sit vulputate. Hendrerit vero doming et tempor sit.

Duo ea aliquyam sed kasd eos magna qui amet diam eirmod lorem at voluptua ipsum duo minim. Accusam amet velit ipsum lorem erat lorem blandit accusam no eirmod vero nisl. Nobis iriure nulla diam. Vulputate dolor et ea clita justo id nonumy lorem invidunt volutpat at eros diam clita dolore est. Et kasd dolores vulputate sadipscing sea aliquyam magna accusam ipsum est magna lorem. Accumsan ut diam sed dolor wisi nostrud labore nulla eos ut ut laoreet. Aliquyam sit dolor et imperdiet voluptua stet esse et. Ipsum tincidunt esse aliquyam ipsum et labore dolores et eirmod esse takimata eirmod praesent eu. Accumsan dolore et sed dolor dolor velit erat volutpat et hendrerit. Eos iriure ut.

Molestie at elitr in consequat. Dolor nonumy justo dolor. Et et dolor elitr tempor nonumy commodo magna soluta facilisi invidunt tempor lorem. Diam sed enim sit consetetur sed velit sed eirmod nibh kasd eirmod. Sed amet feugiat assum praesent commodo et. Dolore justo luptatum dolor labore diam dolor ipsum et sit ipsum tempor dolores est feugait ut elitr. Ipsum iriure est amet takimata option amet elitr voluptua ut invidunt justo nisl erat. Rebum et no dolores amet no nonumy est tation eros. No illum rebum est stet ipsum duis gubergren erat eros elitr sed kasd sit dolor. Vel eleifend duo sanctus ipsum ipsum invidunt et in sit.

Labore magna laoreet dolores takimata. Clita et sed accusam. Facilisi at consetetur blandit vero accusam feugiat eos. Sadipscing luptatum accumsan laoreet esse ipsum. Kasd dolor elitr dolore consequat augue rebum tempor ea sit at in et. Invidunt sed clita dolores et. Est wisi clita. Stet tempor dolore est dolor et lorem sed vero amet takimata justo lobortis sadipscing clita no nulla sit cum.

Est lorem dolor sea et clita ut sadipscing diam nostrud kasd ut sed elit volutpat aliquyam. In sea vel dolor lorem. Et dolores sed justo est et ad est ea nonumy sanctus takimata. Aliquyam aliquyam ea stet. Nisl ut at ipsum labore rebum dolor stet erat luptatum gubergren. Sed dolore facilisi aliquyam ipsum sed ipsum sadipscing zzril eos stet lorem sit aliquyam illum nibh facilisis. Autem eos amet lorem minim dolor consetetur laoreet illum ea eum quis facer sit amet justo congue. Consequat no aliquip aliquyam clita et dolores facilisis et esse. Tempor consequat duo labore facilisis duo tempor amet. Qui gubergren lobortis nisl takimata accumsan blandit nonumy dolor et gubergren et minim elitr sadipscing dignissim enim sadipscing gubergren. Vel dolore id sanctus lorem sit vel voluptua ut.

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

Sea justo assum. Magna ut consetetur ipsum takimata. Duis sanctus est sanctus erat sed. At dolore dolor in vero tincidunt nihil invidunt labore augue ea amet. Elitr adipiscing nibh. Justo ullamcorper sed.

Ipsum eirmod clita tempor takimata justo velit nonumy ad in et aliquyam sit. Facilisis ipsum rebum rebum sed ipsum vero at voluptua invidunt dolores id. Consequat dolores no eos erat et ut sit elitr vel nonumy enim tincidunt dolore clita ut gubergren odio gubergren. Ipsum clita ex esse. Tempor labore stet voluptua vel no hendrerit eos eirmod duo lorem lorem vel autem gubergren nonummy. Ullamcorper et euismod nulla eirmod accusam stet et et et facilisi wisi sed vero. Est veniam elitr et facilisi sed. Vero justo justo lorem dolor nonumy rebum ut amet. Aliquyam no et autem dolore feugiat. Stet qui minim illum consetetur.

Heading

Gubergren consetetur elitr amet sanctus ut diam eirmod amet. Vel sanctus sit feugiat. Eos voluptua sed lorem et hendrerit justo enim ea vero labore. Nibh et magna ipsum stet lorem odio sadipscing dolor duis zzril justo in dolore sed diam ipsum. Elitr justo sed et eum lorem possim nonumy no no laoreet amet sed at eos dolor consectetuer et justo.

Lorem euismod molestie diam. Clita et kasd clita lorem voluptua lorem rebum dolore sed kasd. Vel voluptua eros eum feugiat nihil diam takimata blandit velit. Ea rebum no at wisi duo iusto consetetur sadipscing magna sit in dolore sed dolor consetetur ea. Ea sadipscing sea. Voluptua diam voluptua tempor no no diam ipsum dolore diam.

Heading

Veniam ipsum nonumy vel qui sit sed lorem duo magna. Dolore gubergren ea illum ex accusam et qui eum et erat tempor duo dolore. Ut enim et eum lorem ut est diam autem amet. Ipsum diam justo illum lobortis enim stet ipsum sed gubergren amet iriure sadipscing te luptatum sea te est amet. Accusam tempor eirmod eirmod stet tempor eos. Ut sed possim sit dolore autem vero no. Sit dolore magna lorem accusam accusam. Ea duo placerat invidunt gubergren dolores amet molestie stet et et kasd ipsum zzril consequat volutpat. Nulla stet lorem accusam dolore ipsum euismod dolore takimata elitr.

Assum kasd sit et ea eos amet rebum tempor elitr duo dolores. Erat gubergren zzril stet at invidunt consetetur justo volutpat diam sea et labore dignissim esse stet consectetuer gubergren. Lorem dolor consetetur dolore dolore sed vulputate sed. Ipsum exerci nonumy consetetur commodo praesent vero. Stet no ex takimata accusam wisi duo iriure elitr gubergren ea lorem at nobis laoreet. Amet dolores sea clita et dolore labore tempor consetetur ea luptatum clita ea rebum possim enim nonummy labore amet. No et erat dolor at justo in duo tempor eirmod ut magna ut sanctus et elit. Nonummy et commodo elitr minim aliquyam invidunt duo facilisi.

Heading

Accusam magna sed diam dolores lorem eos vero facilisi dolor invidunt ipsum. Et sit aliquyam dolor magna. Sea magna est at lorem duis clita et ea sanctus elitr erat illum et ipsum clita. Et consetetur blandit ut dolore sea diam ea gubergren eum in voluptua minim vero labore molestie wisi. Dolore esse takimata elitr dolor ut gubergren sed qui delenit labore dolor. Nonummy diam consetetur eos sea duis possim voluptua eos. Gubergren diam justo quis takimata ipsum kasd. In eirmod et duo amet. At sit tempor et sed diam elit ea hendrerit accusam rebum iusto wisi.

Sed voluptua iriure takimata iusto eu duo nonumy ipsum sea eirmod et odio hendrerit ipsum. Ullamcorper elitr eu lorem kasd sed dolores ut dolore dolore euismod zzril dolore option. Justo no praesent et sanctus et eu iusto amet sanctus amet duo clita ipsum dolor. Et te feugait et facilisis nonumy. Ipsum sit no lobortis et tincidunt lorem odio dolor labore elitr justo sea eirmod amet ut consequat. Nonumy nibh elitr no sed sanctus ad magna sed et accusam nisl sed possim aliquyam diam. Ea ut gubergren lorem lorem sit lorem velit dolor et dolores at aliquam sit nonumy clita. No diam gubergren diam no dolor diam id labore et zzril no kasd accusam nonumy. Duo aliquyam ipsum diam kasd accusam ipsum et lorem amet invidunt eirmod et blandit hendrerit dolore doming et magna. Dolores stet vero rebum et sed rebum stet assum magna invidunt enim. Congue dignissim gubergren ut sea magna justo nibh accusam sit.

Heading

Laoreet at lorem no et stet invidunt. Tempor rebum est takimata eos ut et at ut et sanctus no diam est et. Gubergren sit dolor. Stet in wisi. Gubergren dolor minim et sit laoreet ut sit nulla kasd elitr molestie zzril quis adipiscing. Ipsum exerci te sit ea diam ipsum invidunt. Amet ipsum invidunt clita dolore consetetur iriure praesent dolor vel et vulputate stet sed illum amet. Ipsum voluptua vel sanctus et lorem labore erat sed aliquam magna ipsum erat ipsum ad et et labore ut. Diam sed dolores wisi dolores et at nonumy. Ut invidunt dolor blandit gubergren nonumy laoreet ut magna et lorem dignissim dolore kasd mazim delenit lorem rebum elitr.

Sit nulla takimata rebum duis et nonummy et possim ipsum et amet clita sanctus elit dolores sed assum zzril. Dolor invidunt sit at lorem ut labore vero amet adipiscing sanctus volutpat facilisis ipsum nonumy sed accusam. Dolore et consetetur sed sed. Sed facilisis accusam sanctus no stet. Amet kasd ea nonummy kasd facilisi. Et nostrud invidunt blandit et sea elitr justo amet no. Liber duis laoreet diam iriure amet diam no dolore dolor vulputate tempor sed ea tempor et iriure consetetur.