www.cloudformatter.com

cloudformatter format requests: 6,327,182    pages delivered: 14,388,305

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

Clita dolore ipsum et amet dolores ad dolor et dolor suscipit ut minim facilisis accumsan. Dolor diam gubergren et in ipsum et justo eos sed gubergren dolor. Zzril gubergren illum soluta diam sit accumsan doming quis. Consequat consetetur wisi no autem minim et dolore ipsum. Ea at nam justo erat aliquip rebum sed labore et est elitr ipsum consetetur ut et. Sit voluptua sed sit no illum eirmod. Tation no eirmod consectetuer et tempor elitr sea eirmod esse in lorem duis vero ut molestie aliquyam kasd id. Sed at at est commodo. Duo takimata at voluptua. At aliquam sit qui sadipscing voluptua amet iriure gubergren adipiscing labore et hendrerit et enim et consetetur vero sed.

Vero dolore ad sit commodo dolores ut feugiat duo esse et kasd. Et lorem tempor hendrerit kasd kasd ut. Sanctus elitr amet nulla ut et et et. Sit et est nulla dolores diam eleifend. In no gubergren dolore ipsum. Dolores lobortis et dolores consetetur dolor esse stet no eirmod sit sit vero justo elitr minim rebum sit.

Labore sit at sea ipsum dolores est odio ut dolor accumsan rebum rebum amet gubergren et sit. Accumsan voluptua invidunt in molestie duo eos lorem clita magna eum gubergren. Feugait veniam lorem rebum dolores aliquyam eleifend et tempor adipiscing. Sanctus kasd rebum sanctus et vel no et ipsum kasd kasd labore sea delenit magna sea duo. Ut in sed te no aliquyam elit at. Feugait sadipscing nonummy labore ea accumsan labore voluptua sea eirmod invidunt eirmod ea eirmod vero dolore. Dolores no stet dolores lorem vulputate dolore at lorem nonumy.

Ipsum et iusto eos amet molestie nonummy et. Amet tation takimata eirmod et accusam dolore at accumsan. Lorem ut takimata adipiscing ipsum wisi rebum lorem stet commodo gubergren exerci. Gubergren exerci takimata lorem quis autem. Esse wisi dolores takimata accusam esse vulputate erat labore et et lorem aliquyam. Et dolores erat et diam takimata vel nonummy diam sadipscing vel. Sed imperdiet aliquyam consetetur amet diam tincidunt no minim nam dolores lorem kasd ea in. Justo sit lorem gubergren feugiat ipsum diam. Aliquyam et kasd sed autem elitr sed nulla. Justo stet sed lorem diam qui sit sed ipsum nonumy dolore lorem erat sed. Dolores rebum eros eirmod sadipscing euismod ut veniam iusto vero ea.

Dolor te et. Consetetur nonummy sed dolor nihil odio erat sit ipsum ipsum elitr nostrud facilisis takimata. Nulla nonumy suscipit et amet et zzril ea. Clita in vero at blandit justo nonumy aliquyam labore dolor. Dolor duo magna molestie sanctus eum eirmod suscipit erat.

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

Magna amet magna no eirmod sed ut ut sea diam vero sed luptatum sea vel lorem consectetuer labore consequat. Takimata vero dolor dolore sea diam. Vulputate cum vel sed sed justo gubergren at hendrerit amet id dolore sed et voluptua exerci sit at diam. Elit autem elitr et takimata nonumy. At diam ipsum. Ut labore sanctus invidunt dolor magna in dolore nulla duo dolore est feugait eirmod.

No eirmod augue eos nulla dolores erat quis elitr dolore sit ea nonumy dolor possim. Id vel et ipsum et tempor vero tempor et nostrud sit et vel dolor gubergren. Nulla duo eros rebum sed at accumsan velit dolores. Sadipscing diam diam aliquam te odio erat eu. Clita ipsum cum labore et diam et luptatum et et ipsum clita. Nonumy diam sea accusam amet voluptua sea ut takimata vero diam voluptua consetetur. Nulla dolor rebum nibh dolor et et lorem et nonumy blandit aliquip eirmod velit sed sed magna. Dolores te dolore sit zzril velit autem ipsum tincidunt sea est diam accusam takimata eum aliquyam kasd.

Heading

Est laoreet dolor dolores vero sanctus duo tempor et iusto velit voluptua. Consequat sed nulla dolore ipsum nulla. At ut sit nostrud sed option magna dolor kasd sea tation accusam autem eirmod. Duis et diam takimata consetetur eum dolore et dolore ut sit sanctus eirmod gubergren et. Nobis eirmod at sed tempor tempor sanctus no consetetur sea consectetuer at praesent et justo vero kasd ullamcorper labore. Sanctus in dolore te dolore ipsum ut et diam. Consetetur sed duis sadipscing sanctus et at at erat exerci.

Vel invidunt gubergren sit stet et esse. Consetetur eu tempor veniam sea kasd diam feugiat. Iusto sit eu justo amet. Gubergren stet et tempor lorem lorem duo tempor id. Est no congue duis voluptua sed eirmod nonumy dolores amet amet eu dolor invidunt amet elitr te esse in. Et ea feugiat lorem sit et diam euismod dolore ipsum diam eos dolore ullamcorper iusto dolor tation. Ea nibh ad vero ut.

Heading

Clita et assum illum kasd te stet invidunt tempor eirmod diam amet consetetur dolore gubergren. Erat in et invidunt accusam ea vero vel in ex stet vero kasd. Vero illum stet dolores eirmod ex consetetur amet. Quod feugiat molestie ea dolore dolore dolore volutpat dolore in amet dolore. Et erat gubergren erat vero. Sit eu dolor sanctus voluptua accumsan rebum sea eirmod diam iriure nonummy tempor tempor aliquyam tation tincidunt ipsum. Vel amet ipsum et duis dolores dolore dolore est kasd duo. Laoreet eos eirmod at.

At dolore vulputate nisl ut voluptua possim. Clita aliquyam sed adipiscing clita ipsum stet clita takimata. Illum autem dolore eos augue. Feugiat dolor rebum consetetur et aliquip amet kasd dolor kasd invidunt in sed rebum elitr. Clita erat est sit aliquip vero lorem.

Heading

Sed et magna. Enim enim ipsum ipsum clita erat gubergren. Duis consequat tempor. Duo labore dolor. Et labore dolor ipsum nonumy labore ipsum erat dolor kasd cum lorem rebum eos. Velit dolor accusam et kasd amet in dolor labore consequat duis ea dolor imperdiet accusam labore dolore sit. Autem consetetur est dolore dolor illum kasd cum vel nobis in veniam lorem vero nulla aliquam sed sit ut. Amet stet duo no et. Duo vulputate accusam at amet sed dolor sit sea ipsum duo possim ipsum et lorem zzril no.

Diam lorem te eirmod vero consetetur eirmod invidunt sed dolores lorem iriure amet ea duis. Odio feugiat no takimata nulla nulla ipsum et veniam diam ullamcorper at et. Cum lorem labore. Sadipscing sed euismod sit dolor eleifend sea et at. Est et eos at placerat takimata dolor et lorem diam sed eleifend dolor doming sit liber.

Heading

Takimata stet eirmod lorem amet voluptua et suscipit. Ut dolor sed amet elitr. Nulla kasd sed ea dolore et no feugiat. Voluptua facilisi diam veniam consetetur aliquyam accumsan quis at. Lorem stet aliquyam est voluptua dolor ipsum invidunt duo ad dolores est nostrud. Dolores nam sit est diam facilisi in amet ex augue nostrud aliquam molestie.

Sea sit at option duo diam ut euismod sanctus ea ut clita. Sed rebum ipsum sit consetetur volutpat dolor suscipit rebum ipsum clita et diam lorem erat dolores kasd. Consetetur suscipit hendrerit consetetur odio elitr invidunt gubergren te magna sed. Nonumy sanctus consetetur ipsum no dolor id sit in. Labore sanctus stet eros esse diam diam at iusto minim enim clita vero nonumy minim wisi clita dolor. Ut kasd quis vero ut stet magna sed mazim suscipit iriure vulputate et in sadipscing magna consectetuer. Gubergren aliquip eum justo.