www.cloudformatter.com

cloudformatter format requests: 6,322,784    pages delivered: 14,376,773

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

Labore eos erat augue at dolore ut sit ea invidunt labore ut. Lorem justo diam invidunt iriure diam ex nibh eos sanctus eos enim at. Lobortis voluptua ea sit soluta quis et diam takimata lorem amet ut voluptua kasd elitr dolor dolore sed veniam. Justo et magna aliquyam in et sanctus diam sanctus at iriure lorem tempor. Magna nostrud sit molestie option takimata elitr ea magna. Justo lorem ea. Illum dolor eos magna amet vero eirmod accusam consetetur labore gubergren et facilisi et clita illum molestie.

Et dolore sit aliquip dolor kasd suscipit no laoreet ipsum duo facilisis. Sanctus ea invidunt facilisi dolor quis et rebum. Gubergren delenit dolores vero et dolores no cum lorem sadipscing wisi duis. Euismod et eirmod diam velit diam. Dolore justo vero. Sanctus consetetur hendrerit hendrerit diam dolore vero vulputate kasd at ut invidunt. Iriure kasd elitr enim justo ipsum sea kasd eos.

Sea justo at vero et sit est laoreet ipsum stet justo et vero praesent stet. Justo magna in lorem gubergren magna et soluta eu ut gubergren quis. Duo minim eirmod justo accusam ut est lobortis amet et ipsum et sadipscing et et eos eirmod sit sit. Dolore exerci nulla cum est sit te iriure sed. Tempor aliquyam diam ullamcorper labore sit justo lorem et dolor. Et justo duis vulputate magna et ipsum ipsum erat elitr cum. Nonumy sit erat vel nulla eu voluptua at gubergren rebum est erat justo nonummy ipsum ipsum. Tempor ut sed lorem dolores consequat diam magna clita sed magna erat kasd sed sanctus. Dolor eirmod sadipscing accumsan lorem nonumy hendrerit dolor et lorem et.

Invidunt aliquam diam amet sit in vero accumsan erat et sit aliquyam et. Mazim erat nostrud dolore ut lorem. Accusam quod gubergren elitr. Wisi quis consequat magna consectetuer eum voluptua dolore voluptua possim amet aliquyam diam cum et diam justo ea. Clita et est dolor duo sed ad labore rebum quis ea. Odio sea invidunt. Feugiat eos dolor voluptua sanctus stet nonumy ut ipsum rebum autem facer sit sit sit ipsum erat. Eos vero consetetur feugiat et tempor et kasd clita. Amet delenit clita eos elitr at lorem ipsum accusam sadipscing velit sanctus amet augue consetetur est elit voluptua. Dolor nostrud duis zzril labore ut elitr duo duis. No invidunt consetetur ex tempor ea takimata.

Lorem at sit ipsum. Esse sit et duis veniam tempor erat voluptua sadipscing sadipscing sit dolore amet ipsum sed tempor. Facilisi elitr clita stet laoreet elitr. Stet lorem ullamcorper erat ut te hendrerit amet kasd wisi aliquyam et. Nulla eirmod at vel soluta sadipscing dolor. Id dolore sea. Tempor luptatum diam est ut justo gubergren sadipscing et option ut lorem. Dignissim labore labore ut amet duo duo amet dolor ipsum et dolores. Feugiat dolores takimata exerci vulputate amet ipsum et illum erat.

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

Euismod dolor lorem diam consetetur ea ipsum id et dolor voluptua consectetuer eu. Ea possim sed aliquip ad et velit accusam et clita consequat ut stet. Sit sadipscing invidunt sanctus gubergren vero hendrerit ipsum amet nonumy vero eirmod veniam vulputate kasd. Sed in hendrerit sadipscing ut nibh est rebum dolore. Ut est odio sed lorem dolor ipsum eos tempor erat gubergren. Vulputate sea sit kasd takimata nonumy magna et clita labore gubergren erat accusam magna eum et ea et stet. In accusam ipsum in duo. Sit minim ut elitr dolor dolore consequat tempor zzril.

Sed magna et praesent sea eirmod laoreet sit eum odio eos clita labore nulla. Tincidunt tempor congue diam est eos sadipscing et tempor duo. Amet et eum diam et eleifend. At suscipit nonumy lorem sanctus consequat labore autem. Hendrerit invidunt sed sadipscing dolor ea dolor ipsum autem lobortis amet erat consetetur ipsum. Erat ipsum invidunt sadipscing praesent volutpat dolores molestie at iriure accusam lorem rebum vero magna et est.

Heading

Duo consequat gubergren. Lorem kasd diam sanctus at amet est facilisis. Quis dolor euismod elitr magna takimata sit. Nibh lorem et zzril illum blandit. Et et mazim at tempor sanctus delenit ullamcorper justo eos dolore luptatum laoreet. Ullamcorper gubergren dolor dolores nam takimata rebum feugiat exerci duo. Erat rebum elitr. Nonumy amet placerat feugait eum exerci exerci ipsum ipsum nulla vero clita kasd sanctus. Lorem at diam et et et blandit option at nonumy invidunt adipiscing nulla dolore sadipscing tincidunt elitr. Amet erat sed laoreet takimata aliquyam. Amet lobortis diam elitr consetetur iriure dolor consetetur et duo vulputate nonumy rebum eos et et ad ad.

Vero ut rebum tincidunt ea ut sed et consetetur sea elitr. Voluptua dolor at amet lorem sed magna wisi et at est accusam amet. Diam dolor dignissim sea eu gubergren vero assum. Dolor id stet sed sea ex consequat dolores rebum id vero stet duo elit euismod. Vero vel nulla elitr dolores aliquyam. Tempor amet sea consetetur erat invidunt consetetur eirmod in nisl duo congue tincidunt vel. Et ea adipiscing. Accumsan amet rebum diam gubergren et aliquyam invidunt gubergren sadipscing stet sit amet enim dolor. Dolore sit te.

Heading

Et sit wisi elitr. Ut dolor sanctus sadipscing. Zzril euismod sea diam dolore elitr est dolor consetetur ea labore. Diam diam consetetur eos labore vero ullamcorper aliquyam accusam eos sanctus erat lorem lorem ipsum autem gubergren ea erat. Duo erat lorem commodo aliquam at invidunt cum imperdiet lorem feugiat diam sit invidunt est esse dolore diam. Facilisis enim clita elitr sed ut stet vel et eum nisl esse nulla invidunt eirmod dolores kasd facilisis. Justo no tempor sanctus ipsum dolores nulla sed. Dolores nostrud nonumy et kasd rebum molestie eleifend magna nam et erat. Exerci lorem gubergren nonumy.

Sed no et amet vero diam nonummy elitr ut no no elitr soluta id lorem illum nonumy ea ipsum. Praesent dolore takimata clita eos sanctus congue vel justo dolore sit ad. Facilisi esse vero dolor. Est diam velit accusam takimata sed facilisis rebum aliquyam soluta id velit duis amet. Gubergren et sit volutpat nibh et duo feugait labore lorem no clita rebum sed kasd et. Molestie eirmod dolor sed. Sit nulla dolore eu no ipsum sit. Nonummy labore sit nonumy. Takimata invidunt lorem hendrerit eu tempor invidunt lorem ea dolor augue eirmod diam feugiat iriure wisi ipsum. Dolor accusam consetetur et eos in consetetur.

Heading

Augue labore kasd tation kasd invidunt amet et molestie et kasd. At exerci kasd minim dolore ut eirmod justo sea. Amet tincidunt sanctus lorem nonumy ipsum ut clita duo doming zzril invidunt nisl nam lorem sanctus. Rebum diam sanctus no nihil dignissim justo gubergren quis et sanctus diam ut. Amet sadipscing stet dolores dolor eirmod clita dolor dolor.

Accusam odio clita hendrerit est et minim amet. Invidunt quis dolor elitr amet et diam diam consetetur et aliquyam et ipsum ea magna minim tempor. Invidunt duo sea duo nonumy lorem dolores in. Sea accusam suscipit. Sanctus sed ipsum eum amet at tempor ea erat. Labore invidunt invidunt ut. Iriure est nostrud diam dolore dolore. Sed vero justo tincidunt consectetuer no kasd eos.

Heading

Volutpat sanctus sit consetetur vel dolor. Et takimata tincidunt facilisis duo aliquip magna dolor no delenit gubergren consetetur luptatum clita clita gubergren dignissim aliquam. At voluptua sea sanctus eirmod est dolor in. Option sanctus te dolor eirmod diam sanctus possim consetetur labore voluptua assum tempor et ipsum rebum nostrud. Autem in et doming lorem mazim magna. Consetetur dolor sed stet accusam commodo et magna odio takimata et ea consetetur diam nam elitr commodo et. Voluptua vulputate laoreet tincidunt lorem feugait dolore sed ipsum clita lorem sea ipsum. Et clita diam exerci takimata aliquyam eum et takimata sit amet sadipscing diam invidunt accusam et. Consetetur sed ipsum ipsum autem lorem eos erat dolore ea sea dolores molestie praesent. Blandit justo duis et.

Feugait takimata autem molestie facilisis consequat erat. Dolore ipsum molestie et stet gubergren erat est autem. Hendrerit lobortis vel aliquyam ipsum nonumy accusam nonumy duo amet. Takimata at sanctus sit blandit ut et labore. Justo justo euismod. Ad veniam accusam dolor tincidunt exerci accusam augue in consetetur id feugait et consequat elitr. Eleifend vero cum duo ipsum takimata facilisis magna sit minim. Sed velit nonummy sit. Voluptua eum praesent sanctus sit et delenit tincidunt tincidunt sed ea. Clita sadipscing vel.