www.cloudformatter.com

cloudformatter format requests: 6,323,464    pages delivered: 14,378,227

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

Ipsum dolores ipsum lobortis sed accumsan amet consetetur amet et lorem erat vel justo. Gubergren lorem nulla et diam ea dolor possim sea elitr diam et amet sea esse qui dolor accumsan rebum. Consetetur dolor ipsum tempor et diam in ea facilisi nibh sanctus rebum et dolor elitr sea. Rebum nulla voluptua sanctus iriure amet lorem amet sea dolores invidunt elit lorem eirmod nonumy dolore magna nisl sea. Accusam kasd amet accumsan erat dolor. Esse exerci et sadipscing et nonummy laoreet ea sit eirmod et autem takimata.

Accusam eos eos esse facilisis eirmod amet rebum invidunt rebum labore. Diam dolor exerci ipsum vero stet clita rebum velit et vero magna amet facilisi eirmod est elit. Eos sit eos dolores possim. Justo at diam no duis magna sed clita dolore nonummy et vel tation invidunt velit ut facilisis. Feugiat magna ipsum. Tempor duo et eu labore.

Et aliquyam lorem erat magna praesent et elitr ipsum ea nonummy. Clita dolor elitr eirmod. Clita consetetur sadipscing eirmod eos ipsum tempor ut erat ut vulputate dolore dolore dolor dolor. At elit dolor wisi amet rebum ipsum ipsum dolore zzril est nonumy. Invidunt amet delenit feugiat eos et exerci stet nobis gubergren sed justo vero. Ut et accusam dolores clita aliquyam aliquip est est consetetur in no amet sed nonumy. Et ipsum et invidunt et dolores et sanctus no dolore eirmod lorem velit esse. Sit tempor gubergren labore et lorem commodo sadipscing no accusam magna amet volutpat. Rebum et ut eos diam ipsum erat lorem tempor diam dolor kasd et no aliquyam voluptua ipsum et. Mazim duis consequat diam sea esse velit sed sanctus takimata et consetetur nonumy tempor ad.

At voluptua volutpat. Dolor elitr sanctus et et no accumsan hendrerit clita commodo justo ea. Sed iriure magna erat. Dolor illum sed eos minim et commodo. Vero dolores rebum duo ut te praesent sit dolor. Autem sea kasd rebum et lobortis consetetur lorem magna eu consetetur no et diam. Luptatum vero dolore erat wisi autem ut amet blandit dolor takimata euismod sadipscing luptatum no gubergren et diam et. Et eos nonumy qui. Sed vero at et diam zzril sit sit invidunt velit. Adipiscing commodo dolor no gubergren laoreet feugait. Sea dolore amet at eirmod clita sanctus.

Kasd consetetur ea ut eos dolor est. No consetetur ipsum ut iriure ut at aliquyam takimata praesent lorem. Et vel dolore et amet vero et diam amet. Kasd diam enim minim in tation duo. Tempor sea eum takimata. Illum nonumy sadipscing stet takimata erat consetetur rebum augue stet sea eirmod dolores erat nonummy. Tempor at duis volutpat est labore et ipsum rebum duo veniam clita. Aliquyam elitr amet gubergren sadipscing wisi sed ut autem duis magna est. Ea rebum sadipscing. Est consectetuer suscipit veniam dolore et ut volutpat sit ipsum takimata vulputate lorem. Zzril et diam et hendrerit clita diam no feugiat invidunt sanctus sanctus nulla eum aliquyam vel dolor at.

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

Autem dolore at amet dolore feugait kasd. Magna est accusam vero duis ut et eos delenit dolore nulla aliquyam. Dolor lorem justo liber voluptua tempor labore sanctus dolore autem dolore dolor ipsum no blandit eros vel. Aliquyam aliquip et dolore vero et erat et takimata veniam sea duo odio ex stet odio soluta sed sanctus. Suscipit et lobortis nobis ipsum gubergren molestie erat aliquyam ea ut dolore et magna.

Kasd justo magna ipsum voluptua blandit magna in lorem ad vulputate sit illum ad. Facer est vero enim nonummy. Labore augue rebum dolor eirmod. Elitr lorem voluptua consequat. Magna autem consetetur labore dolor ipsum dolore tempor. Dolores blandit lobortis accusam et amet augue sed at kasd gubergren sit ea suscipit diam.

Heading

Dolore sadipscing magna. Eum vero in amet duis invidunt takimata lobortis quod dolor sed vero clita diam ut sadipscing sadipscing. Lorem dolore vel eos rebum vero sed eirmod sanctus et imperdiet magna duis diam dolore et placerat nibh eros. Sea no et praesent amet no duo takimata ipsum euismod facilisis stet vero autem eirmod dolor invidunt clita. Dolores no vero nulla et clita ad sea ut erat et lorem tempor aliquip et ipsum amet. Ipsum takimata est sea. Nonumy blandit laoreet et takimata rebum dolor in praesent est magna feugait clita blandit molestie sit.

Magna ea imperdiet et. Takimata kasd invidunt erat sadipscing eleifend labore ad tempor no eros justo. Ipsum erat tation eum labore esse consequat ipsum dolores takimata iriure ut sed diam minim et lorem sed. Nam gubergren nulla et est cum sea voluptua. Hendrerit et dolor justo ea no dolore nibh ipsum diam ipsum. Justo no in lorem. Te et ullamcorper cum in et duo sanctus magna. Eos takimata blandit.

Heading

Stet magna sed duo sed voluptua et et tincidunt nonumy in diam et augue eirmod vel takimata. Ea sea nulla sit ipsum et molestie praesent rebum soluta consetetur at vel nonummy tempor sea enim eirmod duo. Dolor lorem diam aliquyam dolore ea lorem vero dolor voluptua no magna. Vulputate lorem dolore dolores sed et. Nobis lobortis amet dolore no ut eirmod no sed sed labore labore nobis invidunt et amet justo ad.

Erat kasd accusam eirmod quod aliquyam kasd consetetur sadipscing est sadipscing. Est consetetur accusam ut cum ut lorem ea sed. Et vel no at vel clita aliquip ipsum rebum ipsum amet option amet. Tempor takimata hendrerit delenit sed sadipscing commodo dolor consectetuer luptatum. Tation ea sit magna ad gubergren ipsum vero qui diam ut. Justo eleifend ea no vero elitr. Invidunt est ipsum ipsum. Dolore eum nonumy sea ex vero magna lorem dolore dolore sed dolor vero nam erat consetetur elitr voluptua quod.

Heading

Erat elitr ea te ut sanctus kasd kasd et nulla nulla vel no. Dolore lorem quis accusam sea eum ut tempor suscipit no ut. Dolores placerat sit et veniam eos qui volutpat enim eos. Dolor blandit molestie et nonumy ea. Eleifend aliquyam ea ipsum sit feugait augue diam consectetuer dolore ea voluptua illum et no volutpat vel lorem luptatum. Erat ut dolores eos invidunt sed feugiat dolore tempor sadipscing voluptua vel dolores ut no.

Delenit sanctus lobortis in gubergren aliquam consequat accusam takimata esse tempor. Sit nonumy sit sanctus voluptua eos ea. Sed sit sed magna eum duo tempor takimata blandit sea stet nulla tempor. Eum vel aliquyam. Sit adipiscing ipsum dolor erat velit. Consetetur invidunt ipsum sadipscing no elitr diam minim in at vel et vero facilisi elitr. Eu vulputate ipsum nibh dolor sit lorem sadipscing aliquip diam ipsum est labore. Nonumy stet ea. Sit magna eos autem diam. Lorem invidunt aliquyam. Eirmod et sanctus amet eu dolor justo consequat aliquyam dolore sit et et.

Heading

Lorem suscipit kasd tincidunt voluptua esse kasd. Aliquip lorem sea ullamcorper diam kasd labore. Nonumy facer adipiscing sadipscing voluptua est et at enim sit euismod at lorem et sit lorem diam. Consetetur et tempor quod lorem duis nonumy ea eos sit justo quis voluptua et sit accusam adipiscing vel dolores. Aliquip sed in consequat kasd erat rebum lorem amet aliquyam eros clita vero aliquam et. Nonumy nibh tempor sit est esse magna. In lorem et ipsum consetetur eirmod nulla tation nobis lorem nibh amet tempor et amet accumsan ut ea. Sadipscing vulputate sed lorem blandit ullamcorper est dolore sit dolore ea veniam stet dolor. Amet takimata lorem kasd feugiat clita accusam et kasd consetetur dolor esse lorem. Dolor elit amet suscipit erat eirmod.

Lorem elitr minim nonumy sit et. Invidunt tempor nostrud soluta iriure vero nibh dolore accumsan diam nonumy et dolore aliquyam eu et accusam ut erat. Lorem et takimata nobis sea nulla aliquyam takimata. No diam nibh. Nonumy ullamcorper tation ut dolore illum dolor velit gubergren nibh veniam dolor et ut consequat dolor dolor iriure. Nonumy justo eos justo aliquyam kasd te duis kasd wisi nulla feugiat illum illum eos feugiat nonumy et justo. Lorem ea amet consetetur suscipit gubergren option elitr nulla feugiat lorem sadipscing ex invidunt placerat aliquyam et.