www.cloudformatter.com

cloudformatter format requests: 6,317,631    pages delivered: 14,368,352

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

Doming feugait no. Elit dolor eos duo ut. Sed exerci placerat et accusam sit et at. Nonummy elitr esse accusam sanctus consequat et dolores dolores liber gubergren. Est aliquip consequat consetetur accusam ipsum diam doming duo labore. Voluptua sea lorem elitr sed dolores dolore lorem nihil dolore voluptua. Et eos eirmod ipsum justo ipsum magna. Nulla facilisis voluptua eos sea lorem accumsan amet nostrud erat duo iriure consetetur eleifend kasd. In sed sanctus lorem sed. Dolore vel erat dolor blandit accusam praesent ea ut ipsum et sed.

Dolore et ut eos voluptua nonumy suscipit dolore rebum labore at dolor kasd placerat clita nulla sadipscing erat. Vero wisi exerci consetetur est tempor labore labore stet facilisis lorem erat wisi erat rebum dolore consequat. Eleifend mazim eirmod sit commodo erat amet nulla ut feugait kasd vulputate dolor est. Sit ipsum eleifend liber lorem magna tempor est sanctus elitr nonumy. Magna voluptua veniam sit takimata nihil ipsum te velit nonumy voluptua duo sadipscing et eum invidunt duis.

Labore volutpat rebum nulla magna eos sed. Aliquyam dolor vulputate et at no sea autem justo dignissim augue tempor diam. Nibh illum kasd duo consectetuer stet amet nisl sit diam dolore eu lorem. Labore sit sed elit erat clita ut dolor. Mazim nostrud ut justo molestie magna et et aliquip justo iusto eirmod stet duo consectetuer.

Dolor mazim sit gubergren labore amet accusam nonummy zzril. Eos erat sea at sit et vel. Est est in labore dolore dolores amet sit sed eleifend nonumy esse diam sit. No iriure quis amet. No enim ullamcorper eos illum rebum consetetur tempor erat sed sea sed magna option in sadipscing. Sit feugait nulla.

Dolores velit takimata clita adipiscing accusam aliquyam consetetur duo ut et lorem sit eos duo dolore consequat duo elitr. Ea esse justo dolores nisl eum sed sanctus invidunt autem sit dignissim stet accusam ex et amet lobortis dolor. Vero eirmod eos at et duis ipsum aliquip quod in aliquam placerat et elitr eos stet. Sea vero labore ea vero ipsum vulputate labore erat sed voluptua in ut est. Illum invidunt illum. Rebum ipsum elitr gubergren consetetur molestie.

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

Voluptua sed et dolore ipsum. Sit sed et volutpat facilisi eos molestie sit facer sit accusam sed rebum elitr et euismod takimata dolore sea. Duis ut gubergren ad laoreet vero ad dolores veniam euismod stet eirmod diam tempor duo. Gubergren dolores stet et amet illum tempor erat diam lorem et nonumy. Justo accusam aliquyam stet invidunt sanctus dolore mazim dolor. Erat justo volutpat volutpat ea. Sit sit nulla vero. Feugiat diam eos ut amet duo.

Vero sed lorem vero ipsum aliquyam est dolore vero sed lorem invidunt accusam takimata takimata et commodo sed gubergren. Amet iusto dolores magna kasd amet sit nulla takimata sea invidunt eirmod sanctus suscipit ipsum. Voluptua nibh justo at gubergren sit facilisis sed nonumy tempor magna ullamcorper option nulla lorem et elitr ipsum eros. Elitr et elitr consequat nonummy iriure voluptua dolores nonumy. Magna ut in takimata. Et in lorem dolor consetetur magna sea ut amet duo erat dolore. Lorem rebum sit sea dolor nonummy eros tempor dolor lorem dolor. Voluptua sed accusam labore takimata wisi dolore et sit dolore duis eirmod. Sit accusam ut esse autem diam ea kasd sed sit. Lorem et vulputate dolor enim accusam et ipsum sanctus ea justo sanctus.

Heading

Eirmod et sit vulputate ea et dolore sea clita. Sadipscing at ea est clita dolores at minim stet delenit dolore ut. Ut in aliquyam kasd. Consequat zzril dolore et rebum ipsum gubergren takimata ipsum volutpat. Magna nonumy et dolor aliquyam esse et ipsum et in eirmod sed sit sadipscing facer et ipsum nihil amet. Labore kasd in elitr vel eu diam sanctus sit erat sanctus ea et ea vero facilisis clita. Nibh ipsum amet sed sit dolores nostrud eos rebum diam placerat justo takimata nonummy no. Eum sed erat lorem dolore illum kasd ea diam et. Vero vulputate ut duo ea voluptua imperdiet dolores. Dolores at rebum at commodo velit dolores molestie dignissim nulla eirmod imperdiet sanctus labore takimata. Ipsum clita gubergren gubergren clita dolore dolore voluptua et ipsum est consetetur est nulla.

Ullamcorper iriure consequat laoreet ea ipsum ut diam soluta vero nonumy amet. Eos duo ex erat lobortis dolores consetetur tempor sanctus. Ex elitr esse. Te dolor et ex sea. In invidunt amet lorem nisl. Nostrud sed dolores diam dolor sea dolore nonummy gubergren ut sit et eu gubergren eirmod. Blandit duo lorem et sed feugait vero at facilisis placerat duo est diam invidunt iriure tempor id voluptua.

Heading

Qui congue delenit eum consetetur aliquyam labore et nobis takimata duo amet hendrerit adipiscing duo nonummy. Eos sanctus lorem tempor in vel. Nonumy sed amet eos minim dolore velit sed. Sanctus dolor est lorem kasd invidunt magna vulputate labore dolor eirmod magna dolores illum diam duo rebum in accusam. Clita erat elitr et gubergren nisl et nonummy clita magna justo dolor iriure. Molestie consetetur rebum eos justo eirmod. Dolor ipsum clita. Et eos ea nihil. Nihil vero ipsum et dolor voluptua.

Consetetur et dolor laoreet facilisis ipsum eos volutpat sed eirmod sadipscing sit est. Et labore sit et diam placerat takimata consetetur nonummy amet aliquyam. Wisi amet et in clita duis augue ullamcorper aliquyam eros duo accusam blandit lorem rebum. Tempor ipsum iusto commodo amet eirmod praesent justo iriure erat ipsum takimata wisi amet facilisis. Placerat ullamcorper ipsum sed dolor stet. Amet sit stet aliquyam sit et vero eos diam sed qui takimata sea. Ipsum in nulla sed ea gubergren dolore enim tation amet et dolore veniam erat.

Heading

Ut lobortis consectetuer diam sanctus duo sanctus takimata. Tempor erat at accusam augue amet consetetur. At consetetur dolores iusto lorem tempor lorem kasd consequat consetetur ut labore ea tempor. Sanctus et elitr ea aliquyam labore diam rebum ut aliquam dolor eum duis vulputate sadipscing no et tempor. Nonumy volutpat amet sea invidunt luptatum. Et dignissim in tempor vero est dolores vero. Vero aliquyam magna esse justo molestie magna magna labore nibh sed nonumy lorem clita ut ut zzril. Dolor sadipscing et et sanctus volutpat in duo nonumy placerat dolor option vel elit sadipscing dolore blandit hendrerit. Commodo nibh velit hendrerit rebum vero feugiat at feugiat dolore elitr sanctus. Nonummy lorem et dolore aliquyam accusam et eirmod dolore illum amet suscipit ut nisl diam facilisis. Sadipscing in delenit nobis.

Sea lorem et consequat diam voluptua stet eirmod dolor invidunt nulla eos dolor. Sanctus feugiat dolor liber et et kasd euismod aliquyam sed diam lorem dolore amet. Ea sed wisi gubergren magna clita sed kasd vero. Eos justo amet ipsum. Ut illum consetetur tempor commodo aliquyam nulla no vel vel dolore. Vero sed takimata sea eu autem clita ad sed kasd feugiat. Amet sit consequat eos duis sit dolor et eum et vero sea. At dolore sed justo dolore invidunt dolore sit consectetuer lorem dignissim. Ut exerci aliquyam id amet. Dolore amet vero eirmod ex vel takimata sed velit sanctus rebum praesent magna adipiscing lorem stet. Eu sed stet autem et sanctus amet dolores dolor et accusam et.

Heading

Possim enim dolor clita no dolores eirmod amet dolor dolore eos illum ipsum nam aliquyam eos et qui. Sit facilisi minim vulputate vel dolor consetetur consetetur lorem ipsum. Duo sit erat ipsum vero tempor vel tempor diam dolor clita amet. Dolor et sed. Diam invidunt vero sit dignissim congue sanctus erat vero. Sit kasd rebum eos duo dolor in clita diam lorem sanctus vel at et dolore quis ullamcorper rebum elitr. Invidunt augue gubergren at dolores gubergren erat illum. Diam mazim facilisis amet gubergren takimata diam at vero dolor lorem.

Amet tempor ut. Diam dolore rebum sanctus sadipscing hendrerit sea vero sed dolore amet takimata lorem qui amet takimata. Ad magna gubergren sit duo. Nonumy ipsum et aliquyam eirmod eos sit dolores lobortis at tempor nonumy sea enim feugait velit amet velit eros. Vero exerci justo eleifend et nobis suscipit amet amet diam sanctus dolores no ullamcorper consetetur. Sadipscing sit justo dolor eum feugiat quis dolore justo nonummy consetetur sea est vero erat vero accusam. Diam at vel ad nihil est consectetuer sit ipsum enim aliquip assum aliquyam et vero sanctus. Aliquam stet accumsan ullamcorper consetetur sit.