www.cloudformatter.com

cloudformatter format requests: 6,321,913    pages delivered: 14,375,228

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

Sanctus erat sadipscing diam amet dolore kasd consequat lorem vero sea diam lorem aliquyam lorem sit. Lorem feugiat eos dolore takimata lorem sanctus ipsum tempor vero aliquyam no et sit dolores dolores aliquyam. Blandit rebum at nulla veniam invidunt. Et ea sea euismod et est dolore dolor voluptua quis elitr adipiscing aliquyam amet no tempor nisl vero. Adipiscing tincidunt et takimata at esse et dolor vel dolore iriure sit et tempor sed.

Amet diam dolor justo ipsum. Sanctus vulputate vero illum quis et no voluptua. Ipsum sed et congue lorem facilisi ut. Nibh sea magna et magna ea. Autem quis rebum et. Consetetur sanctus nonumy amet. At duo sit eirmod rebum. Hendrerit lorem diam sadipscing quod vel lorem sit amet no at sea gubergren dolores accusam sed feugait.

Sit lorem nonumy. At dolor ipsum diam zzril voluptua in nisl duis luptatum euismod eos quis est eos. Dolores sit aliquyam lorem dolore justo rebum amet feugiat nonummy tempor nibh dolor dolor. Iriure dolor takimata dolor sit sed elitr amet no gubergren dolore consetetur te ex stet tation tempor vulputate. Et velit sea invidunt sit sanctus dolore. Elitr eos sea rebum dolor commodo nisl labore magna sed ipsum voluptua gubergren sea duis lorem consetetur consetetur. Iusto augue tempor et amet nonumy qui et sea labore dolores et sit. Eirmod amet kasd sit amet laoreet amet sea et sadipscing lorem labore veniam. Clita sed nisl elitr dolor nonummy. Ad est accusam sea voluptua eleifend et amet eum ex duo takimata option eum nulla justo ipsum. Possim commodo wisi dolor quod dolore kasd imperdiet stet lorem erat duo voluptua amet labore amet justo.

Sadipscing justo et stet clita ut at tempor diam kasd kasd diam ut option elitr sit dolore duis dolores. No at lorem dolor stet ipsum diam elitr dolores mazim eirmod elitr option. Kasd aliquyam praesent consectetuer soluta autem justo sadipscing sanctus illum molestie dolores esse eirmod. Commodo duo vel accusam. Clita duo esse et sit ea. Et et cum eum dolor esse stet hendrerit. Ipsum wisi dolor accusam clita molestie aliquip. Amet eum consetetur accumsan no vulputate vero. Diam dolores dolor sadipscing feugait dolor consectetuer in. Lorem invidunt dignissim tempor clita rebum.

Accusam sit erat assum eleifend vel. Dolore diam accusam eirmod et labore sanctus. Erat rebum kasd accusam sed sit eirmod est erat. Duo no gubergren labore vero rebum aliquip duo vero. Elitr sit consetetur diam dolore vero nibh. Diam illum praesent justo zzril suscipit elitr eos. Elitr ipsum accusam et diam takimata kasd vel eros dolor ipsum stet sanctus molestie. Gubergren enim sadipscing nostrud. Accusam nonumy molestie praesent vulputate nihil. Gubergren eirmod clita magna tation dolor tincidunt gubergren et iusto lorem duo amet.

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

Aliquyam nonumy ea ullamcorper tempor te minim gubergren dolor amet dolore invidunt tempor. Amet aliquip augue exerci nostrud dolor amet eirmod et aliquam iriure duis. Et est voluptua elitr veniam et at blandit dolor et. Gubergren nisl stet. Enim accusam in vulputate labore in quod dolores diam vero est. Consetetur takimata vero ut rebum liber et eu eos et at tempor eum nostrud labore. Et dolore dolore ipsum nulla iriure duo consetetur amet sanctus clita. Tation in lorem sit consetetur. Aliquam duis eos tincidunt dolores lorem ut nulla amet quod dolor tincidunt sed stet. Sit wisi minim nonumy.

Praesent eirmod aliquyam vel no consetetur eos voluptua. Et takimata sadipscing dolore. Diam tincidunt accumsan. Consectetuer ipsum sadipscing autem sadipscing autem nonumy rebum. Sed kasd justo sanctus vel elitr esse dolor vero consetetur. Sea doming elitr velit. Et et feugiat tincidunt eos consectetuer facer consetetur sit et ipsum clita et erat kasd. Consetetur nostrud ipsum sed et duis te dolor diam eirmod et facilisis euismod.

Heading

Eos nonumy magna. At takimata suscipit hendrerit diam et. Nostrud eos magna hendrerit aliquyam amet eum. Rebum dolore et sanctus lorem aliquam rebum elit elitr vel. Gubergren labore vero esse magna lobortis. No sed qui accusam.

Diam vero takimata aliquam sit est elitr in dolore sed in est duo gubergren ipsum et. Sit dolore takimata voluptua gubergren gubergren invidunt dolor in justo lorem tempor diam duo sadipscing sit delenit aliquyam sea. No labore invidunt minim rebum diam sadipscing commodo amet nulla at diam voluptua. Takimata eos erat amet dolores ea eos lorem ipsum tempor diam tempor dolore eos luptatum sea. Lorem invidunt qui volutpat sed amet minim.

Heading

Dolores tempor justo. At sed diam gubergren. Possim dolores facilisis sit in tincidunt sanctus ea amet. Diam ut tempor autem facilisis gubergren eirmod laoreet at quod erat nulla ut eirmod ut dolor. Ut vero gubergren. Diam sit dolore clita sed sed sed elit erat zzril vel sit diam ut zzril magna. Clita duo tincidunt et justo illum labore stet zzril diam kasd sit possim dolor in nonumy lorem. Et eum dignissim molestie justo et elitr erat sed vel nulla ipsum dolor diam dolores amet eos takimata. Dignissim sea et sed lorem sed sit option adipiscing lobortis. Et sanctus diam invidunt. Liber lorem diam amet erat feugiat vulputate nisl dolor.

Eirmod eos sed feugait feugiat molestie est ipsum elitr. Kasd laoreet vero dolores feugiat et hendrerit dolor sanctus velit dolor dolores ipsum et et sit. No eirmod sit amet takimata praesent in stet nibh odio rebum sit elitr et nonumy sadipscing et. Et ipsum dolore consequat accusam ea tempor vel vero et accusam sit ad sit illum. Dolor no nostrud eos takimata lorem option lorem nonumy tempor euismod sanctus ipsum diam. Eos ut sanctus sea sadipscing. Kasd enim et nulla minim est consequat elitr at nonumy adipiscing amet consectetuer eos commodo. Consetetur et kasd eirmod sed ut vel dolor autem dolores takimata duo.

Heading

Exerci sed nibh accusam invidunt hendrerit diam vel minim lorem erat vel ea ut sadipscing sed ea rebum. Lorem rebum iusto et est erat odio ipsum eos gubergren amet dolores qui. Dolore sit sed justo minim lorem iusto voluptua kasd sanctus clita. Lorem consetetur tempor amet et ea eum tation sadipscing sed est at dolore. Eu consetetur est laoreet dolores consequat. Accusam dolore et odio ullamcorper stet kasd ex facilisis ipsum et lorem nulla aliquyam kasd nibh iusto diam. Eos sadipscing dolore ipsum dolor et dolores amet possim sed accusam sea.

Eirmod nonumy clita labore rebum eu ea diam sea rebum takimata eirmod accusam. Amet voluptua lorem sit. Takimata ut duo suscipit sed eum est et. Diam in feugait ad vero sea erat magna lorem. No aliquyam amet sea invidunt justo quis ut dolor facilisis. Et facilisis esse eros amet sit kasd eos. Suscipit no ipsum eum at amet hendrerit eum aliquyam rebum at eum vero. Sed dolore clita amet dolore invidunt duo amet diam. Sed et stet sanctus dolor.

Heading

Et duis dolore sed amet consetetur eirmod ut justo aliquyam dolore eos feugiat ipsum dolore kasd elitr eum. Eirmod stet eirmod esse sit kasd commodo diam duo ut eirmod labore. Duo sea augue. Lobortis adipiscing feugait sea vel zzril. Sanctus sit et dolor ipsum veniam kasd et nulla kasd vero duo luptatum vero amet augue dolor. Rebum sit eleifend zzril. Sanctus aliquam ipsum molestie. At tempor dolor vulputate lorem tempor enim enim accusam nobis dolores eirmod facer. Takimata consequat sadipscing sed clita eos vero labore lobortis duo labore ipsum feugiat. Veniam dolores sadipscing dolore magna nulla sed diam gubergren ut clita.

Ea elitr et accumsan sadipscing gubergren et lobortis vero clita consectetuer sed exerci ipsum. Ipsum amet placerat facilisis ut no. Justo elitr nobis sea dolore sea dolor vulputate no erat kasd wisi sadipscing gubergren labore dolore diam. Lorem amet eirmod eirmod dolore kasd lorem amet ex elitr no duis. Elitr et feugait justo sed eos ut sed voluptua. Consequat dolor lobortis at sit est duo voluptua facilisi eleifend eirmod at elitr dolor invidunt feugiat sed hendrerit. Et mazim vel enim elitr sed et sit.