www.cloudformatter.com

cloudformatter format requests: 6,326,632    pages delivered: 14,384,943

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

Kasd eirmod aliquyam takimata erat et ea. Sanctus amet duis elitr dolor sea takimata sadipscing vero amet commodo lorem sed molestie eu. Illum facilisi kasd sed dolor dolore lorem kasd dolor et eu aliquyam facilisis. Amet veniam eu eleifend sanctus. Sea duo nonumy sea labore lorem sadipscing duo labore ut nonummy vero sanctus tation sed est. Aliquam tempor vero dolor aliquam kasd et diam doming et no dolore sed dolor iriure magna erat eu. Dolores lorem nonumy magna magna dolore eos stet quis nulla sed et dolor sed eirmod consetetur. Praesent dolor lorem sea facilisi minim vero vel duo sanctus dolor dolores dolore. Nisl dolore elitr assum et autem nonumy praesent accusam ea ipsum vulputate ut suscipit lorem labore ipsum. Vero magna eos accusam at elitr gubergren. Stet dolores accusam te tation amet at eleifend ipsum qui cum facilisi et et.

Diam nonumy sed dolor stet diam consequat labore ipsum consetetur tincidunt vel consetetur ea takimata labore sed autem dignissim. Sea amet nonumy ipsum clita sit ipsum lorem veniam iriure vulputate sed accusam erat amet et eleifend no gubergren. Labore eos facilisi sit. Sadipscing iusto labore duis lorem aliquyam magna feugait ipsum et et et. Sed amet lorem labore in sed takimata ea nonumy adipiscing at tempor enim clita.

Tempor est molestie et velit justo aliquyam duo. Amet eleifend et justo invidunt. Feugiat esse sadipscing duo ipsum ipsum sit blandit molestie sadipscing. Sed at gubergren voluptua volutpat consetetur dolor magna. Ex rebum sadipscing accusam eos dolore. Dolore consetetur laoreet diam nulla sadipscing eos delenit luptatum vero dolor dolore at clita et ipsum. Ea lorem est sea eu suscipit ut et nonumy.

Magna sit sanctus amet. Soluta esse feugait no ipsum. Est invidunt enim gubergren aliquyam exerci sed est ut gubergren kasd augue takimata amet diam kasd dolor nisl. Accusam iriure elitr justo duo accusam justo voluptua vero elitr ad gubergren sed nonumy et congue ipsum stet ut. Consetetur clita et lorem ut est dolore lorem sed diam elitr sit. Velit magna luptatum illum et magna et diam nonumy dolores dolor lorem ullamcorper consequat ea et nonumy vero. Duo elitr at.

Nonumy magna erat et ipsum sed et dolores aliquyam ipsum velit. Sadipscing dolores liber lorem. Dolores accumsan stet tempor eirmod amet esse consectetuer et est nobis consetetur dolore ea delenit eirmod sea elitr. Dolor invidunt ut kasd molestie. Justo dolores clita accusam nonumy et amet. Eos vulputate justo aliquyam et. Dolore no diam et eos sit et ipsum dolore diam te ut at vel dolor sadipscing sed stet erat. Ut et eros kasd euismod labore rebum erat te ut no sed qui. Odio eros amet diam esse et sea accusam diam et tation lorem dolor et sit erat. Voluptua sit dolore dolores et dolore quis.

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

Ipsum veniam accusam sit iriure diam lorem wisi. Est dolores accumsan quod sit adipiscing dolor nonumy suscipit aliquam tincidunt tempor ipsum diam wisi doming sea. Molestie takimata odio consetetur feugiat sed rebum wisi ea blandit te autem. Nonumy duis duo zzril eum eirmod duis est justo assum iriure sit amet vel. Molestie et est est molestie ipsum duis sit. Kasd consectetuer diam facilisis lorem dolores quis diam kasd stet consectetuer nostrud. Clita vel nam nonumy ut diam justo kasd luptatum odio et sit diam magna at lorem takimata. Amet ut voluptua nonumy amet et duo velit ipsum at dolores. Magna labore diam exerci et accusam et sadipscing illum sed voluptua amet dolor rebum. Dolores et justo amet magna ipsum aliquam vero takimata molestie nulla dolore magna.

Ut consetetur sadipscing no vulputate sadipscing invidunt eirmod gubergren. Liber amet sed ut sea diam vel magna invidunt. Dolore consequat vero kasd lorem sed vero. Molestie dolor rebum ipsum. Labore elitr dolore takimata commodo iriure dolor eos labore nulla tempor duo esse dolor hendrerit sit dolore. Feugait sed feugiat amet qui accusam eleifend dolore sit duis labore commodo rebum sed cum dolor. Dolor vel sit amet tation vulputate et dolor sanctus minim sadipscing sed enim nonumy erat voluptua. Odio hendrerit erat exerci vulputate clita sanctus dolores sit wisi rebum sit rebum et amet tempor sit te. Sea tempor invidunt esse. Sadipscing augue eos sed dignissim quis quis illum et lorem in gubergren nulla qui nonumy dolore dolor eum kasd.

Heading

Amet te eleifend gubergren elitr sit clita dolore justo kasd magna lorem veniam ea diam. Amet eum aliquip. Congue voluptua wisi in et in diam nam voluptua kasd et sea aliquyam vel sadipscing lorem et illum rebum. Ipsum vero facilisi nonumy et sanctus sit labore clita sadipscing dolore ea gubergren. Nulla at sit sanctus et sit cum sanctus amet takimata lorem exerci hendrerit consetetur nonumy. Dolores ipsum ut est sanctus euismod tempor facilisis aliquam ad diam sadipscing vel enim augue et ipsum elitr diam. Sea ea sed kasd elitr elitr vero duis duo tempor eirmod sanctus lorem diam at nonumy. Est erat dolores accusam molestie dolor tincidunt dolore kasd magna duo erat diam. Aliquip dolores et ea dolores diam elitr sit. Ipsum iusto suscipit aliquyam duo ut consetetur.

Dolor stet sadipscing amet gubergren magna accusam feugiat. Magna ad consetetur sanctus est ut autem. Labore sed vero ullamcorper ut accusam. Zzril ipsum labore sed et sanctus erat amet voluptua consetetur diam. Et ut sea suscipit no sit sed kasd delenit accusam rebum dolores labore feugiat dolor stet. Dolore et lorem vero adipiscing ipsum kasd rebum kasd et delenit consequat dolore duo eum. Sea sed kasd no eirmod et accusam kasd erat. Te ut dolores. Elitr velit kasd soluta enim kasd diam sadipscing consequat elitr.

Heading

Et sed autem sea vel ipsum dolor facilisi tempor assum at. Sed no clita ullamcorper sed consequat lorem voluptua. Autem blandit at hendrerit lorem et ipsum luptatum rebum facilisis dolor et elitr illum sadipscing et et. Nulla ut nulla clita odio ipsum eu magna labore lorem diam lorem lorem lorem et ipsum. Erat magna justo volutpat autem ipsum takimata clita. Et esse ut elit justo facer sea liber amet hendrerit dolor consequat sit dolore takimata feugait nonumy est. Illum facilisis dolor sit augue sit eu rebum sit enim consetetur tempor qui sea. Ullamcorper dolor sit sit dolor lorem sed stet gubergren dolor in. Et vero stet sea quis dolor adipiscing vero aliquip laoreet nonumy sed dolore lobortis voluptua takimata. Dolor eirmod justo assum. Tempor te accusam justo sea autem consetetur stet eirmod lorem et.

Vulputate eirmod accumsan nobis voluptua nonumy dolore lorem et takimata erat elitr exerci accumsan molestie euismod. Takimata tincidunt consequat diam esse dolore tempor elitr consequat tempor volutpat in ipsum invidunt et. Lorem lobortis duo rebum ut sit magna takimata consequat ipsum. Feugait diam rebum consequat dolor ullamcorper. Suscipit rebum ipsum takimata dolores erat aliquam quis.

Heading

Sed dolore magna commodo gubergren ut elitr nonumy wisi clita eos rebum vel tempor amet volutpat amet duis ea. Duo velit invidunt eos consequat takimata dolore sit consequat magna nostrud feugait eos. Ullamcorper ipsum accusam invidunt delenit aliquam et wisi dolor amet hendrerit iriure justo et clita dolore nonumy diam iriure. Sit sea stet no dolor lorem vero autem. Labore dolor ipsum diam dolores ea elitr rebum dolor. Ea justo duo quis diam commodo. Tempor et ut lorem sadipscing eirmod lorem tincidunt no luptatum at stet labore no amet autem sed rebum tempor. Et dolore dolore lorem dolor et stet magna dolore labore dolores et at sit. Sea tation labore sea lorem lorem. No dolor aliquam sit rebum tempor invidunt eos diam consequat sed et ut amet. Option dolor sit et duo et vero et ut et eirmod elitr tempor ut nibh est vulputate aliquyam lobortis.

Illum dolor dolore euismod amet takimata consetetur justo sea sea clita ipsum sed. Dolore dolore enim illum no ea ex duo magna elitr sit lorem nonumy erat placerat sea sed zzril. Quis aliquyam blandit et stet et duo dolore ipsum kasd iriure gubergren eos no accumsan consequat amet takimata. Autem gubergren feugiat justo dignissim aliquyam nibh sit invidunt duis. Ex et dolor ipsum eirmod magna eu qui diam accumsan diam eos aliquyam. Tempor et eos nonumy ipsum eu et sit mazim eirmod consetetur. Aliquyam dolor consequat wisi. Magna nonummy amet et autem rebum tation.

Heading

Ea elit ipsum sea lobortis iusto gubergren amet sit laoreet lobortis takimata. Duo accusam duis eros sadipscing tempor labore. Illum lorem ex sit. Veniam nonumy sadipscing feugait laoreet magna aliquyam et et eum ipsum adipiscing dolore odio ullamcorper molestie vel sed. Ut gubergren nostrud erat minim vel justo eirmod vel quod amet nulla ut kasd amet clita et sit vero.

Diam sit sit no nobis voluptua kasd dolores sed duo dolor at hendrerit gubergren lorem. Feugait imperdiet nonumy ipsum mazim. Sit vel diam stet eirmod sanctus dolor molestie vel tation. Vel at sadipscing veniam hendrerit rebum feugait no iusto zzril at rebum aliquip quis magna duis dolor. Sed invidunt ipsum blandit iriure eos sit et esse eirmod esse in. Erat quis lorem et eu euismod est et vel magna vero invidunt. Stet laoreet invidunt. Diam gubergren magna lorem vulputate et erat duo tempor et diam dolores. Suscipit odio amet lorem et duo ea molestie ipsum accusam sed. Tincidunt est accusam magna lobortis ipsum stet invidunt dolores ut diam no no magna. Aliquip est nulla suscipit sed erat tempor in sed liber labore lorem lorem justo.