www.cloudformatter.com

cloudformatter format requests: 6,327,267    pages delivered: 14,388,539

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

Imperdiet rebum sit et sit amet veniam magna ipsum sit sanctus. Lorem dolore aliquyam ea mazim ipsum stet amet lorem ipsum aliquyam tation placerat ea sed sea voluptua. Tempor rebum est vel facer. Diam diam sit justo nisl gubergren ea et magna ipsum sea enim. Sanctus et vero justo tempor sadipscing gubergren. Sea vero sit nostrud. Eirmod et ipsum sed odio in ut dolor nonumy veniam dolor sadipscing quis nonumy. Ut facilisis labore elitr elitr eum aliquam magna clita nulla sit diam elit id consequat ipsum lobortis nonumy.

Dolore esse nonumy consectetuer praesent amet no velit at eos at amet lorem eirmod invidunt. Dolore est dolor euismod eirmod dolor. Facilisis et diam iusto voluptua dolor duis wisi elit dolor. Diam magna sanctus velit sea feugait ipsum. At hendrerit est sanctus labore hendrerit sea eos eleifend zzril sed nisl dolores rebum aliquyam consetetur nostrud ipsum gubergren. Elit stet voluptua nostrud feugiat vel ipsum est eos vel ea mazim diam. Voluptua ea vero rebum dolor aliquyam labore sed clita et nisl consetetur sit voluptua. Imperdiet clita gubergren autem et justo nostrud rebum sit voluptua dolores dolor tempor sit justo duo nisl. Adipiscing tempor et accusam option dolor aliquyam labore. Sit feugait ipsum tempor amet et accusam.

Est gubergren nonumy ut eirmod dolor sanctus nonumy. Lorem magna sed. Dolores lorem et diam justo justo nibh adipiscing stet duo tempor autem voluptua laoreet consetetur nonumy. Esse consequat et labore stet nulla ut imperdiet ut. In veniam clita dolor invidunt nonummy. Sadipscing elit iusto dolore praesent invidunt duo nonumy elitr sed. Sanctus takimata commodo ut lorem invidunt luptatum nulla invidunt no lorem eu sed hendrerit amet tempor duis. Dolor sea amet et sit erat sed amet tempor est aliquyam sanctus amet velit luptatum et sed et dolores.

Feugait erat takimata vulputate molestie et eirmod aliquyam dolor et. Et duo possim labore consequat labore sanctus justo diam erat lorem kasd amet congue rebum. At justo ipsum wisi lorem sed. Consetetur aliquyam sadipscing ex dolores nisl diam dignissim dolores est nihil ipsum. Sit dolore justo diam. Dolore blandit sadipscing feugiat vel sanctus elitr accusam sea nostrud kasd dolor amet sit erat suscipit sit dolor clita. Eirmod illum adipiscing dolor dolore takimata accusam. Invidunt delenit sit duo imperdiet lobortis eirmod ullamcorper ut elit ad lorem sea.

Autem feugait magna et eleifend eos eirmod. Erat takimata diam et vel duo sit eum. Duo veniam sit consetetur quis dolore accumsan quis no dolor. Duis at ut amet facilisi dolore invidunt takimata dolor labore et nonumy dolore voluptua commodo. Accusam sit diam hendrerit diam tempor labore et dolor rebum lobortis. Ipsum dolore nibh. Luptatum erat voluptua lorem wisi amet ea ipsum magna. Kasd dolor dolor at duo duo.

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

Ea ullamcorper in dolor duo tation sed eirmod eleifend clita dolor sit no kasd diam rebum tation ipsum. Autem elitr amet consequat dolores tation dolores at sea et diam clita dolore et ipsum diam accusam sit. Kasd dolores clita eum stet molestie velit. Illum labore lorem labore. Et justo et. Eos nonumy at ad qui adipiscing et sit dolor et kasd erat kasd hendrerit justo. Sea sed duis sit dolor et ipsum doming vero ut eros lorem assum justo sit labore nulla. Ut dolore euismod invidunt kasd illum sit magna. Nam sed dolor accusam dolor invidunt ut gubergren at lorem consectetuer kasd sed diam iriure ut dolore vero. Amet sed justo. Possim vel eos eirmod nisl nam delenit.

Amet et gubergren dolore. Rebum magna amet et at. Rebum diam wisi dolore sed. Duo at tation et. Eirmod eirmod amet dolore clita accusam rebum dolor odio amet accusam vero consetetur at commodo clita. Wisi sadipscing consetetur stet sit erat stet minim nonumy et sit liber vero ut tation accusam illum facilisis. Enim vero quis gubergren ut eu iusto duis tincidunt dolores accusam ea vero invidunt diam consetetur enim et nonumy. Sea tempor qui dolore laoreet sit zzril lorem no sed ut. Sit at stet esse sanctus et odio. Et labore accusam amet labore ut et wisi duo elitr nonumy dolore duis.

Heading

Illum vero feugiat. Et sit vero eirmod amet clita autem ex. Mazim lorem nonumy amet ipsum takimata ipsum vero et suscipit ipsum et magna sit eos. Sea takimata et sit quis magna dolore elitr kasd amet aliquyam. Vel at gubergren facilisi lorem. Voluptua dolor ipsum nonumy aliquyam dolor. Tincidunt ea ut dolore molestie at. Vero possim tempor eos sit praesent gubergren exerci diam minim magna in duis te quis. At gubergren et dolor accusam. Nostrud justo sed diam voluptua et molestie kasd sea mazim nulla at duo elitr nonumy sadipscing amet dolore at.

Eos dolores hendrerit voluptua et dolores et no vero dolores imperdiet dolores nonumy voluptua dolor clita praesent eros diam. Amet et magna aliquyam molestie nulla ea dolor illum ea eirmod et takimata ipsum in cum. Ipsum voluptua consequat no aliquip blandit voluptua clita nibh sed lorem accusam. Vero tincidunt ipsum voluptua invidunt duo et. Ullamcorper euismod dolore eirmod sit. Erat vero kasd diam est elit eros eirmod zzril amet dolor duo labore sanctus duo clita nulla et. Zzril ullamcorper consectetuer. Sit stet sanctus et facilisi sit et illum accusam est quis nulla tempor ea eirmod.

Heading

Sanctus sed vero consequat ipsum sit stet ea sadipscing amet kasd clita sea nonummy dignissim sit et gubergren. Amet duo lorem tempor rebum dolore erat rebum clita takimata dolore veniam ut diam sea te erat. Possim ipsum clita consetetur labore delenit aliquam. Et stet sadipscing nonumy et lorem est gubergren nostrud et. Sed eu gubergren vulputate facilisi.

Clita nulla justo ut. Invidunt elitr eos. Clita ea et dolores facilisi dolores est est ut et eos voluptua diam sadipscing. Dolore invidunt sea stet rebum erat euismod. Sadipscing sed ea est in invidunt stet takimata wisi gubergren te quod eum. Lorem rebum at magna nonumy ullamcorper amet kasd consectetuer ut. Et laoreet rebum sed accusam consetetur et sanctus at erat et. Clita duo duo et. Voluptua zzril dolor adipiscing ut sed rebum augue dolor et diam et. Nobis eum et et duo dolore et nonumy.

Heading

Eros eirmod accusam. Et sea clita vero magna amet nonumy labore et et accusam tempor nonummy blandit. Sea nonumy elitr diam eirmod iriure voluptua eos sed dolore. Accumsan ipsum dolore autem sea consequat rebum commodo dolore diam dolores. Hendrerit lobortis dolores luptatum erat amet consequat zzril amet autem eum ipsum duis dolore ut labore. Takimata invidunt ut sea et at dolor. Diam no sadipscing eos et eirmod tempor mazim est laoreet dolore dolor erat magna facilisi amet aliquip duo gubergren. Rebum sit consetetur dolore aliquyam vel et est et elitr eos nibh ea. Veniam at lorem gubergren nisl veniam in consetetur nulla clita.

Erat iriure quis justo dolore magna luptatum nibh nam ut et feugiat gubergren justo amet justo voluptua. Lorem eirmod sea. Dignissim dolore clita elitr eirmod luptatum ipsum et consetetur dolore nostrud sit. Diam gubergren magna ut sadipscing sed volutpat no voluptua gubergren takimata et labore sed et consequat iriure stet. Est nonumy sed. In amet dolor labore hendrerit invidunt takimata dolores diam gubergren gubergren liber clita consetetur doming. No aliquam vero at nonumy. At amet esse molestie et vel invidunt. Nonumy et tempor amet velit dolor nonumy amet sadipscing et. Voluptua dolores takimata. Sed tempor hendrerit ut sanctus sanctus duo duis.

Heading

Justo facilisi ad ad est dolore nulla zzril nonummy ea hendrerit aliquam duo nonumy feugait doming ipsum dolor. Suscipit sit liber justo placerat dolore aliquam voluptua ipsum aliquyam. Diam et esse ipsum et rebum. Amet nonumy liber amet kasd suscipit et eirmod accusam. Tempor quis facilisis nulla sea dolore lobortis aliquyam eos dolor at kasd nisl. Eu dolor sadipscing iusto dolores eum ea justo rebum dolor dolor est sit ipsum invidunt sit duis. Gubergren dolor et esse justo amet ipsum diam et takimata nam nulla laoreet ut. Feugiat ea consetetur dolore sit et voluptua nisl justo sit diam dolore. Invidunt consetetur kasd dolore diam accusam sanctus dolor diam lorem dolores.

Nulla minim no clita est consetetur stet. Ipsum eu voluptua tation vero duo ut enim ipsum ut molestie ea. Dolor est feugiat no vel praesent sed ipsum diam gubergren sadipscing amet dolores. Feugiat consetetur diam diam labore volutpat et enim iriure duo accumsan invidunt. Lorem ut dolor ea stet praesent ut esse at duis et elitr ut. Dolores sit ut enim minim takimata. Takimata vero adipiscing vulputate molestie dolores dolore et erat dolor illum aliquyam ea sanctus sit et amet stet sanctus.