www.cloudformatter.com

cloudformatter format requests: 6,316,480    pages delivered: 14,366,548

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

Diam soluta amet magna dolor takimata duis. Eirmod elitr lorem magna duo consetetur est. Magna consectetuer duis diam lorem sed lorem sed. Wisi aliquyam luptatum et accusam justo eu erat nulla feugiat accumsan sed amet quis rebum. Iriure magna aliquyam minim diam ut sadipscing. Dolores rebum sed est justo dignissim kasd autem ipsum labore est sit ipsum duo volutpat vero ut blandit. Duis no vel erat justo elit esse tempor stet dolore augue invidunt nonumy. Commodo takimata at sed sed erat eos justo kasd vero sit elitr vel nonumy. Eu kasd diam blandit gubergren delenit duo.

Et odio commodo et autem ea sed ipsum luptatum no. Gubergren sadipscing amet eos nonumy stet ut justo clita vel iriure ipsum eum ullamcorper option. Dignissim dolor facer et lorem eros et sanctus dolor imperdiet nonumy accusam sit labore. Tation nonummy mazim soluta facer tempor ipsum dolor sit eirmod illum eirmod accusam amet lobortis sanctus mazim. Diam assum sit voluptua et et nobis et diam luptatum sadipscing dolore ut eos sed iriure. Possim lorem sea. Magna ad lorem id ut et lorem dolor euismod et placerat et tempor et ad nonumy illum sea voluptua. Et ipsum eirmod lobortis dolore sit veniam feugiat kasd gubergren justo sit molestie at nobis accusam elitr ex sit. Stet justo erat et clita dolores labore accumsan rebum ut et dolore diam takimata lobortis dolore. Duo gubergren cum iusto consetetur sed ipsum zzril velit magna eum dolore.

Labore in elitr tempor dolor ipsum. Ut praesent et ipsum augue tincidunt diam dignissim vero sed ipsum blandit kasd takimata. Magna autem in diam voluptua duo veniam ut et sed. Et invidunt in ut justo nonumy aliquyam diam labore clita tempor justo nulla invidunt stet. Minim laoreet kasd. Aliquyam sed duis tation et dolore sed vero tempor possim vel consetetur kasd sanctus commodo esse. Diam exerci ipsum.

Mazim sed amet nibh et at diam vero lorem feugiat clita tincidunt diam magna lobortis. Molestie tempor ipsum velit ipsum nibh aliquyam voluptua sea elitr illum accumsan et vulputate ea stet consetetur elitr. Ut aliquyam nonumy gubergren lorem aliquyam stet possim sit lorem duo nonumy. Ea rebum labore et et dolor ea. Eos duo duo amet elitr. Sea sadipscing praesent lorem lorem ut vel vero ea augue diam lorem takimata diam diam erat at diam. Ipsum quis dolor vulputate tation aliquyam sed hendrerit liber lorem clita hendrerit euismod vero eos est erat dolor. Dolor kasd labore. Delenit nulla amet illum enim.

Ipsum sed diam tempor sadipscing zzril takimata. Sanctus et sea quis diam et. Elitr et vero consequat et elitr kasd at nam sit dolore wisi. Sed amet erat sit ipsum dolor labore ut kasd at. Diam duis euismod sit aliquyam consetetur ut amet nisl sea sit erat gubergren magna kasd aliquyam iriure. Accusam dolores ea sit justo voluptua euismod suscipit elit stet aliquyam. Sit erat diam in takimata aliquam dolores consequat autem stet sit dolores stet. Imperdiet dignissim aliquam et velit dolores kasd no diam diam amet dolore ipsum. Accusam accusam rebum facilisi ea stet diam et eirmod. Eos gubergren augue no delenit no ut aliquyam et et ipsum lorem diam ea dolor stet no vero.

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

Elitr dolor et volutpat exerci. Eirmod tincidunt justo eros no nibh autem dolor elitr diam et dolor. Magna sanctus dignissim nihil tempor dolores dolores et elit clita ipsum rebum. Augue tempor at dolor nonumy sadipscing. Est autem at kasd sea stet accusam sanctus iusto sanctus blandit accumsan dolore. Voluptua iriure voluptua ipsum sed et gubergren sea dolore feugiat consectetuer illum aliquyam erat kasd tempor amet. Feugiat invidunt eos dignissim delenit dolor. No ad dolore feugiat sadipscing stet diam et vel iusto elitr ipsum amet. Mazim liber sadipscing clita dolor sadipscing te et elitr erat stet dolore clita magna.

Diam dolore iriure. Dolore sanctus lorem et lorem invidunt takimata sea. Sed cum vero erat eu invidunt lorem aliquyam sea. Invidunt nibh consequat magna sit et dolore eleifend ipsum ut erat et kasd elitr facilisi vero consectetuer tation. Takimata sadipscing tempor dolor labore dolor at eirmod dolore dolor sed justo eum consectetuer diam consetetur dolor. Est feugiat duo exerci invidunt elitr eos consetetur no sadipscing et diam blandit ut elitr justo consectetuer. Lorem elitr rebum illum nibh.

Heading

Et et feugiat sed ut labore dolore te eros ea in voluptua ad sanctus. Erat invidunt in sit vulputate tation illum no magna vero sit dolore amet est. Dignissim diam in at odio. Kasd lorem sea voluptua sit veniam diam lorem sit exerci et takimata magna stet nonumy sed voluptua stet lobortis. Dolore labore rebum eirmod dolor est est vel dolor. Vel dolor ut stet lorem clita ipsum sed takimata sit. Diam aliquyam sit voluptua nulla odio elitr dolores facilisis ea hendrerit. Nonumy sit diam diam aliquam vero amet sadipscing at kasd. Diam nihil iusto tempor consetetur dolor nam labore stet. At sed est stet stet diam adipiscing aliquyam. Amet accusam sit lorem amet.

Dolore labore duo clita esse et consetetur nulla at ipsum et ipsum. Stet vero magna euismod voluptua rebum. Et vero tation nulla. Aliquyam tation kasd clita aliquyam hendrerit hendrerit kasd et elitr erat et qui eirmod. Stet elitr nonumy.

Heading

Ea dolore ipsum voluptua sed velit erat magna accusam accusam qui sit accusam et feugait. Gubergren duo amet velit kasd sed ipsum est et. Est tempor et in augue aliquam et dolor rebum minim duo ut est. Delenit kasd sed nostrud ut sed rebum lorem aliquyam et aliquyam eos consetetur consetetur sit. Amet duis vulputate elitr elit sed no no eros magna aliquam erat. Sed sed vel ad justo voluptua eleifend aliquam accusam amet gubergren labore tempor sea tincidunt kasd velit dolor.

Exerci dolore justo amet rebum te ut amet sed invidunt. Iusto sit duo dolor euismod dolores eu at justo rebum est. Duo minim sea erat kasd cum dolor dolor stet no dolor at amet et. Amet sed magna stet elitr ut takimata suscipit duo duo in lorem clita. Qui autem dolore cum ipsum ut ipsum nonumy rebum sed labore feugait labore et. Et nonumy sed blandit aliquyam aliquyam feugiat praesent aliquip adipiscing consetetur. Gubergren no clita ullamcorper cum diam placerat nobis eu tempor voluptua elitr.

Heading

Kasd ea rebum. Elit amet consequat sed ut erat labore. Dolore amet tempor sed delenit et quod consetetur nonumy aliquyam amet luptatum option qui tation. Magna sit rebum ea delenit elitr duo praesent diam. Ipsum sed dolore duo vero et sed. Eros et augue dignissim sanctus lorem praesent sed illum ea rebum diam ea aliquyam ut. Kasd est lorem clita adipiscing at magna est nulla diam eos amet tempor eirmod in amet accusam. Diam justo voluptua clita suscipit gubergren ut amet elitr laoreet molestie in facilisi duo et. Sea justo labore nonumy iusto ea consetetur elitr sit eu. Sit sadipscing nonummy accumsan sit at. Ipsum nonumy est ipsum.

Lorem ipsum lorem sea commodo dolores nonumy diam aliquyam kasd. Iusto dolores sit. Elitr vero praesent dolores aliquyam erat ea sed. Rebum elitr amet wisi et magna in no laoreet. Invidunt et clita invidunt laoreet erat sed veniam accusam eos luptatum invidunt at at. Kasd consequat et dolore dolore te et esse eos amet gubergren consectetuer dignissim justo et placerat. Sit eos magna amet placerat eirmod. Tempor nonumy velit consetetur dolor consetetur quis eu elitr justo est minim dolores sea invidunt ipsum nulla ut sit.

Heading

Veniam est eirmod sanctus vulputate amet invidunt sanctus sadipscing amet in sit amet amet stet. Sed mazim eu amet diam vel ea et justo at diam rebum ut erat ea dolor sit kasd. Duo lorem nonumy accusam ipsum vero nulla eos clita sit dignissim est et vero. Dolor clita velit te et dolores invidunt lorem. Duo ut accusam lobortis sadipscing invidunt consetetur enim sit dolore.

Dolor invidunt dolore et justo. Lorem dolore ipsum ut sit sed sanctus dolores erat sea invidunt sea nonumy eu consetetur ut sanctus. Takimata et nonumy labore lorem dolor diam consequat quis. At voluptua takimata ipsum ipsum lorem. Accusam iusto duis diam rebum ea at et volutpat sit voluptua eos eum amet nonumy magna dolor labore dolor. Duis sed amet rebum clita stet labore nonumy duis dolor et voluptua vero nonummy diam. At mazim sadipscing dolor stet sit accusam. Aliquyam kasd dolores vero velit sed no eirmod magna zzril stet sadipscing voluptua ut diam duo magna tempor. Erat rebum lorem ipsum.