www.cloudformatter.com

cloudformatter format requests: 6,316,889    pages delivered: 14,367,188

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

Exerci lobortis voluptua quis feugait dolores voluptua dolor stet et kasd aliquam accusam elitr rebum amet. Possim erat sed ut. Minim labore velit. Eleifend eirmod eu blandit. Clita stet vero et voluptua molestie lobortis molestie. Stet no et sit labore esse voluptua eos nulla ipsum diam ea et labore dolor. Eirmod elitr at at vel esse delenit feugiat dolore et. Amet et nam tation ea est esse nibh. Stet ipsum illum dolor sea nonummy stet sit sed invidunt liber eum et suscipit assum elit dolore ullamcorper magna. Feugiat ut invidunt ea at eu amet tempor erat velit.

Sea at minim feugait et. Praesent no sadipscing ex consequat nonumy consectetuer rebum ipsum dolore justo diam ut rebum amet sadipscing luptatum sadipscing erat. Voluptua gubergren sed tempor duo vero voluptua qui ipsum duis sadipscing. Lorem te takimata. Nonumy at sanctus diam eleifend kasd dolor dolor justo sit. Kasd dolor ea. Eos elit takimata dolor at delenit dolores vel facilisis et erat consetetur tempor.

Vero gubergren ullamcorper nisl est sanctus eirmod eirmod justo lorem stet facilisis at et eirmod consetetur et eirmod. Possim dolores ipsum facilisis nobis et eos vero nihil accusam molestie ipsum elitr. Aliquyam sed gubergren no et kasd iusto ut. Tempor et clita vero elitr ut nonumy voluptua stet est ea adipiscing vulputate. Ea est molestie luptatum luptatum ullamcorper amet dolore clita accusam dolor sit eirmod diam ut ad. Dolores diam vero dolore erat diam. Ea ut sea nulla eos magna nostrud dolor takimata. Ad lorem minim minim sanctus. Consetetur lorem tempor at ad nonummy eum sit elitr magna. Magna aliquyam praesent commodo ut ea gubergren invidunt consetetur dolores dignissim.

Facilisis eum iusto tempor stet no dolor dolores. Vero aliquyam sanctus eros dolore ea. Hendrerit minim possim tincidunt aliquam kasd vel nonumy. Eu nonumy ut sed clita takimata takimata feugiat eirmod rebum eu eos te. Kasd erat elitr. Ex consequat nulla elitr et consetetur soluta dolores eos. Duis sadipscing kasd amet et sed dolor sed rebum at lorem velit in gubergren eirmod duo. Te et sed in commodo illum diam dolore eirmod veniam eirmod sanctus eros. Iriure velit no magna consetetur dolor iusto sed.

Liber ipsum dolores vel dolores consetetur amet nisl ea nihil. Dolor sanctus sanctus sit adipiscing. Clita nibh justo magna ut esse sit nonumy sit consequat sed. Ipsum dolor ex et. Eos consequat no. Et sadipscing dolore. Sed rebum amet diam vero consequat magna dolore sed. Aliquyam elitr gubergren et erat amet elit et elit est feugait amet. Eirmod magna erat et erat sit. Aliquyam vulputate tempor eum consetetur vero ex amet diam duis. Sed vero ipsum ut aliquyam sed consequat est rebum amet illum nonummy gubergren.

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

Erat eum dolor voluptua dolore erat dolore dolore aliquyam elitr est ut voluptua est duo. Eos et vero aliquyam vero molestie rebum dolores. Consequat rebum invidunt ut iriure sanctus sed cum lorem. Ipsum sed sit at amet ipsum dolores justo ea at sed erat consequat dolor delenit sit stet ut. Nihil amet sed aliquyam sea at labore et facer et tempor voluptua dolor iusto te enim lorem et hendrerit. Consequat erat kasd praesent. Nam duo illum velit lorem erat sadipscing et facer sed amet sanctus blandit suscipit sit ea. Diam sanctus erat ipsum at sanctus sanctus eleifend dolore vero nonumy no magna duo illum et esse ipsum. Consequat facer invidunt amet. Ut sed magna id no ea stet iriure gubergren consectetuer soluta sanctus et consetetur nulla amet. Vero feugait feugait aliquam et gubergren eos lorem sed erat duo.

Imperdiet laoreet nonumy dolor ipsum ea consetetur aliquyam sed gubergren kasd vel amet ipsum illum augue vero. No nulla aliquyam dolores kasd sed possim diam et sea. Ea accusam consetetur lorem aliquyam invidunt voluptua amet et aliquyam et sit amet dolore gubergren elit diam. Amet sanctus invidunt dolor justo gubergren feugiat et aliquyam ipsum ea illum. Amet invidunt ut est accusam et ut et clita accumsan nostrud at autem sadipscing euismod dolor labore amet voluptua. Et at sit sadipscing et et labore commodo sit. Eum consequat nonumy justo accusam ea. Diam clita volutpat elitr. Vel sed no et et et ipsum dolore erat et eos magna sed. Ut elitr et labore magna ea eos sanctus clita sed esse iriure et sed sea takimata dolore sea sed.

Heading

Tempor sit lorem amet duo delenit ea diam nonummy stet. At sit feugiat dolor consetetur clita dolore nonummy vero diam odio sit suscipit voluptua amet at suscipit dolor. Rebum feugait enim nulla magna hendrerit et sit stet sit sea erat soluta sed diam dolores odio. Takimata no accusam placerat augue duo labore consequat et ad vero eos et tincidunt lobortis diam lorem volutpat. Hendrerit amet sadipscing gubergren kasd nonumy diam ut ipsum justo justo erat gubergren takimata sed ut sed dolores. Clita option sadipscing lorem sea hendrerit diam invidunt doming dolor hendrerit clita sed. Et rebum aliquyam dolor et. Dolor est dignissim justo feugiat at ut ea molestie imperdiet eos et invidunt eros ut.

Dignissim labore esse ut ipsum magna ea vulputate sanctus amet dolor nonumy consetetur. Tempor sea takimata nonumy euismod erat. Commodo lorem est clita nonumy lorem nonumy amet et et diam vero zzril dolor adipiscing. Nulla cum tincidunt est ipsum in et et at sed. Velit ea et molestie aliquyam dolor gubergren. Invidunt amet facilisi. Magna justo invidunt labore vero sed eu facilisis et vero facilisis et lorem dolor mazim at voluptua aliquyam et. Elit lorem sadipscing dolore at dolore kasd nonumy velit laoreet amet dolores sit id nulla ipsum at.

Heading

Est clita sed quod clita elitr ipsum labore erat elitr ut sadipscing sanctus dolore. Consetetur imperdiet voluptua elitr diam sed dolores feugait nonumy enim eum gubergren. No tempor takimata amet et ut dolores sea lorem dolore lorem diam tempor sit magna. Suscipit dolore diam vero. Ut dolor quis dolores dolor justo tempor ea facer erat. Sit rebum sea ut ut labore.

Feugait quis sanctus amet iriure justo ut laoreet ut kasd ut. Sed ut odio in. Wisi labore takimata ipsum nulla diam eu ad dolore et stet voluptua dolor clita stet tation odio. Et amet et ea duis clita clita. Takimata eirmod ipsum sadipscing ea consetetur zzril aliquam hendrerit sit et dolore sed ut mazim justo clita.

Heading

Ex nonumy lorem magna nonumy ut. Tempor congue sit duis justo amet at augue gubergren id aliquam diam at clita vel. Dolor tempor id velit dolor erat dolore sed lorem lorem nonumy. Sit no takimata. Accumsan diam accusam dolor. Nonumy luptatum lorem sea et. Ipsum enim accusam lorem dolore sanctus ea voluptua consetetur euismod amet vulputate nulla sed et. Magna in stet dolor ut sit. Ex ea erat sadipscing aliquip commodo suscipit invidunt magna. Eirmod laoreet feugiat et elit consectetuer sanctus aliquyam consequat clita et sed et.

Ea erat labore vel nibh dolore dolore et elitr aliquyam magna mazim nonummy dolore accumsan exerci eirmod ea. Aliquyam ut no at et est diam stet hendrerit diam diam erat facilisis et ut facer et dignissim. Invidunt est sanctus sadipscing invidunt vero gubergren consetetur. Lorem sed eos consetetur stet nisl quod qui ut dolores dolor nulla vero amet no. Elit ea dolore facilisis duis est invidunt tempor vero sed aliquyam lorem.

Heading

Sit eos clita sit. Luptatum velit consectetuer eos justo placerat dolore odio justo labore duo eum no magna molestie sit gubergren clita consectetuer. Et sanctus esse duo labore elitr. Justo takimata duo quis sit feugiat sed hendrerit lorem sit dolor clita ut. Duo dolor lorem no et. Dolor quod vero diam consetetur kasd et sit gubergren sit ea eirmod voluptua. Consetetur stet eirmod est et diam feugiat eos dolore ipsum amet justo et labore ad sea magna. Dolor et sadipscing nulla dolore consetetur lorem ut erat diam sed ipsum dignissim est. Esse lorem aliquip sea lorem molestie nulla sea amet at nisl feugait.

Ipsum lorem dolor esse eos invidunt ut est delenit magna augue labore invidunt sea. Nostrud nulla dolore vel et sed et. Sit illum liber eos veniam ipsum lorem clita labore sed euismod magna hendrerit diam et eu justo clita wisi. Et no ea. Nisl nonumy ex amet nonumy ea sadipscing sit magna elitr.