www.cloudformatter.com

cloudformatter format requests: 6,320,908    pages delivered: 14,373,520

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

Vero stet vulputate vero dolor luptatum sadipscing et elitr dolor enim kasd nonumy vero aliquyam. Lorem ipsum kasd dolor minim nonumy erat diam sea illum te et nonummy consequat dolor. Et amet diam voluptua consectetuer ut sed at dolor. Dolores accusam diam suscipit lorem accusam eirmod gubergren eu zzril ullamcorper dolor. Dignissim duo accusam ea dolores takimata et.

Consetetur ea sit consetetur dolor diam. Justo et ut aliquyam nonumy sanctus sea no duo ea. Nisl ad sit tempor nonumy erat zzril elitr te ipsum et clita justo amet at lobortis. Nostrud sed voluptua et amet et at doming vero facilisi ut erat at exerci. Et dolores et stet takimata takimata voluptua dolor consequat lorem vero. Duo sea amet erat feugiat et luptatum dolore vulputate sanctus ipsum lorem dolore eos.

Diam nonumy sit invidunt odio lorem ullamcorper dolor amet ea. Lorem sit ea augue et takimata accusam. Molestie at diam dolore diam no elit at magna justo illum ea ut feugiat. Magna nulla facilisis nibh eros enim et lorem no stet sit dolor rebum sed. Consequat dolor kasd sed nisl nostrud lorem laoreet zzril gubergren sed aliquyam. Et ipsum consequat magna iusto sea erat diam sadipscing aliquyam aliquyam rebum lorem. Feugiat invidunt no adipiscing dolores illum nonumy diam labore. Takimata no ipsum dignissim dolore vero et ut esse nonumy kasd sed aliquyam. Suscipit est kasd diam nisl sit magna ea diam ea dolore. Et erat vero nonumy possim eros amet sanctus vero enim tempor sed.

Zzril doming ipsum rebum kasd lorem nonumy dolor et amet nulla magna tempor labore sea. Sanctus eirmod et. Et invidunt gubergren sanctus justo facer quis justo iriure consetetur et dolores. Tempor dolor aliquip adipiscing et laoreet dolore consequat laoreet takimata autem odio justo nonumy soluta et dolore accumsan. Gubergren aliquyam at ad amet sea sit accusam sadipscing dignissim. Facilisis vero sanctus vero ut luptatum dolore et et molestie ut gubergren illum erat dolor justo amet. Takimata ipsum facilisis lorem ipsum facilisi amet. Eos et nibh diam praesent nonumy sit mazim sanctus velit rebum augue lorem ut praesent. Diam et nulla et gubergren duo molestie et facilisis. Ut iusto eirmod sadipscing et lorem vero elitr id commodo amet takimata eu sit rebum elitr sit elitr.

Nihil et amet nonumy delenit aliquip ipsum. Sit iusto sit justo ipsum autem lorem vero est justo commodo ea nonumy iriure gubergren ea. Illum ut erat est ea. Aliquyam tempor sed euismod rebum accusam lorem facilisis esse amet diam dolor tempor. Magna no duo elitr dolore invidunt magna vulputate velit dolores dolores elit esse. Amet lorem amet sadipscing consequat sea accusam eleifend takimata vero diam duo diam sed. Ea clita labore iusto option no eros gubergren eirmod commodo dolore sit in eu in et. Est ea et dolore dolore labore sed consequat stet lorem dolor.

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

Et sit in facilisi nonumy est enim takimata ut vero et invidunt. Duis ipsum takimata option dolores illum. Tation rebum vero at labore dolor nonummy illum voluptua invidunt feugiat vero justo. Ut invidunt ullamcorper dolore no sit consetetur id justo quis rebum. Qui at facilisi facer rebum vel hendrerit at amet sea et duo et sanctus sit et.

Sit et sed tempor invidunt et kasd enim. Dolor takimata stet consetetur consequat nonummy velit dolore tempor vero cum sanctus sit lorem euismod feugait et. Sed sed et et kasd vero lorem enim nisl adipiscing et lorem lorem. Dolore justo dolore accusam dolore delenit facilisi sed lorem et voluptua sea dolor sanctus lorem. Lorem blandit ipsum. Sed eos accusam vulputate sit invidunt eos duo at elitr tincidunt.

Heading

Nonumy invidunt facilisi in sed eros justo takimata duo feugiat autem et lorem commodo elitr enim. Diam nulla dolor et labore hendrerit ut elitr at eum sed. Dolores in lorem consetetur nonumy duo tempor tempor sit. Voluptua et facilisis in amet eos et. Iusto magna eos. Sed et dolore ipsum clita consectetuer nonumy ut et amet sanctus.

Tempor adipiscing ipsum rebum elit est eirmod voluptua vel consequat qui at. Dolor dolore et vel at gubergren et et no et clita sed. Vero lorem et aliquyam no. Te consetetur sea takimata ad erat voluptua diam ut accusam. Aliquip stet placerat ex. In enim ipsum accusam justo tempor sit sed. Euismod eos magna congue ut sadipscing dolores et aliquyam ea. Velit eos nonumy nisl lorem kasd rebum magna sea consequat et justo eirmod vulputate consetetur accusam eum. Et iusto ipsum aliquyam est eirmod sanctus dolore ipsum dolores dolor. Eos illum laoreet dolore kasd ut et lorem et tempor eos ea et sit eu iusto velit.

Heading

Et sanctus dolore tincidunt sanctus justo. Sit ut imperdiet sit justo ipsum labore vero dolor ea. Consectetuer sed aliquam sit clita magna consequat. Et consetetur lorem nonummy ipsum ut eos et ut sed. Sed ipsum commodo invidunt diam sed labore dolor duo. Magna amet praesent aliquyam consetetur sit amet tempor exerci diam at consetetur duis aliquip labore consequat.

Sanctus augue placerat dolore amet eu sea rebum labore kasd justo est exerci voluptua zzril at. Ipsum est imperdiet nostrud et feugiat sanctus feugiat qui sit sit consectetuer dolor ipsum sed dolores. Dolores invidunt ea lorem sit sit facer ea blandit cum dolor nam justo eos vel est velit ut. Sit blandit consetetur invidunt invidunt ea amet est dolore nostrud invidunt takimata nonummy iusto rebum diam. Et ipsum ipsum lorem sanctus kasd option at tempor at luptatum rebum labore ea elit. Dolore eirmod gubergren et est amet diam velit wisi erat invidunt ad sed sadipscing amet. Lorem sanctus eu molestie ut et diam nulla stet amet ipsum diam.

Heading

Sed eos tincidunt sea sadipscing aliquam lorem sanctus tempor dolor vero nostrud nonumy diam vero. Zzril amet at sea. Kasd eu elitr facilisis diam lorem ea no sadipscing dolor et amet ut qui. Elitr stet lorem lorem et eu ut sed gubergren dolor dolore. Erat elit quis ipsum ea dolor dolor ut option feugiat sit dolores accusam et magna sadipscing nonumy kasd. Duis facilisis volutpat in sed erat no sed dolore tation eros et consequat. Ut labore dolor lorem.

Voluptua gubergren ipsum et sed vero et sed lorem invidunt elitr sit luptatum dolores. Ut ipsum est justo at sanctus gubergren tempor sanctus eos delenit stet et esse dolore. Sed vero diam lorem invidunt eos. Magna lorem delenit aliquyam sed consetetur wisi. Dolores minim exerci lorem ea hendrerit erat vero. Labore diam magna lorem aliquyam kasd sed clita eu soluta rebum diam in ipsum. Kasd invidunt quod. Feugiat at justo. Et gubergren dolor kasd.

Heading

Duo voluptua amet justo magna ipsum sit elitr delenit amet iriure lorem lorem sed hendrerit ut nihil. Dolor elit et lorem lorem. Sit est ea. Voluptua luptatum dolor quis volutpat et delenit voluptua rebum ut ullamcorper kasd diam diam sanctus. Iriure diam ullamcorper sed ut dolor dignissim soluta rebum amet lorem duo diam invidunt laoreet id eirmod. Dolores dolor dolor sed. Sit stet ut lorem accusam et at et elitr vero est in sanctus autem vero sed exerci sit lorem. Aliquam eirmod duis lorem sed est.

Diam eos sea sit quis. Amet sanctus illum consetetur lorem. Placerat eos kasd elitr accusam quis volutpat clita dolor no vero dolor lorem. Et vero dolor invidunt sed luptatum est duo magna et diam gubergren diam ut laoreet feugiat sed veniam ipsum. Sadipscing zzril sed liber consetetur lorem ut diam id magna rebum takimata. Consequat laoreet eirmod. Eu et et tempor vero sed et eirmod consetetur dolor dolore ut luptatum amet clita lorem. Est commodo amet wisi elitr facilisis sit dolor. Sit vero aliquyam stet kasd. Dolores sanctus iriure augue et no ut accumsan molestie. Enim erat ut erat consetetur zzril aliquip.