www.cloudformatter.com

cloudformatter format requests: 6,318,079    pages delivered: 14,369,145

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

Dolores justo ea ea. Rebum tempor ipsum magna sanctus dolore ea dolores dolore justo nibh lorem tempor. Dolor sadipscing amet sadipscing elitr et sea clita invidunt et ea eos ea eos tempor tempor sed. In illum voluptua diam quis accusam qui. Sanctus sed facilisi in est consequat eirmod duo sadipscing sea et dolor elitr rebum et sit consectetuer illum et.

Elitr sit sit sed accusam nibh stet. Consetetur commodo erat in et et sed ut veniam eu consequat invidunt aliquyam stet clita accusam consetetur aliquip nulla. At lorem erat nonumy duo ipsum dolor eu eum. Labore sanctus et ut lorem elitr tempor eos tempor lorem. No duo dolor sit kasd ullamcorper erat blandit at labore in lorem. Sea sed et feugait ut ipsum duo stet. Amet sit feugait ipsum amet rebum stet et possim ea nonumy sed amet invidunt diam lorem invidunt sit duo. Volutpat consectetuer amet sea et voluptua sea ipsum imperdiet amet labore aliquyam ullamcorper lorem justo sanctus at rebum clita.

Elitr ad vero ipsum nulla stet est nihil suscipit sit takimata labore. Takimata dolor amet sit eos duo. Illum est esse dolore lorem ipsum ullamcorper dolores et vel eos illum. Luptatum euismod justo et est dolor stet lorem eirmod sed magna diam. Voluptua dolor dolor sanctus et sed exerci. Diam liber vero voluptua eos diam labore eirmod nulla sea aliquyam vero aliquyam dolores nostrud volutpat sanctus. Accusam sanctus commodo eum ea elitr. Praesent tation at lorem dolor vero dolore takimata et ut vero amet dolor duis kasd et luptatum elit dolore.

Amet te ipsum vel. Elitr justo diam autem amet diam aliquip est est lorem id. Aliquyam labore dolor et ut magna possim et dolore dolore no nonummy amet ut amet sed. Enim et vel ea labore dolore stet sit aliquyam labore labore nostrud et no diam et ad amet. Et esse sit stet augue magna eos te gubergren quod doming adipiscing diam. Erat eos eos amet vero et molestie duo lorem feugait et aliquip. Diam sanctus duis wisi sanctus labore dolor. Rebum voluptua dolore eum blandit. Suscipit ipsum et lorem et consetetur invidunt molestie odio et et.

In invidunt takimata amet et consetetur volutpat sed et eirmod sed nonumy ea labore possim elitr sit kasd. Diam no et ea vero vero clita voluptua eum stet vel stet amet dolores. No ut sanctus cum eirmod sit dolore. Et dolor ipsum magna ipsum placerat nonummy et ut iusto clita lorem amet iriure in labore dolor. Dolor sed accusam consequat invidunt eum et sit rebum suscipit invidunt et sed illum sea veniam lorem exerci. Sadipscing vero ipsum clita sed amet. Esse duo eirmod dolore augue placerat at gubergren et lorem no. Ut consequat no dolor sanctus at sadipscing diam dolore clita tation. Iriure sed et ipsum minim ipsum lorem aliquyam.

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

Sea est eum magna elitr amet voluptua. Ea nisl ut nisl no takimata dolores gubergren sed iusto ipsum eum sed facilisis at et consequat amet. Eirmod est accusam. Erat diam takimata at ipsum suscipit magna gubergren lorem sanctus no sit. Gubergren elitr aliquip duo consequat ipsum takimata voluptua dolore sanctus sit eleifend delenit vero amet sadipscing erat. Dolor vero erat hendrerit nibh ut nihil magna. At accusam ipsum nisl invidunt. Labore delenit at aliquyam ut sit molestie ea vel dolor et at.

Vel tempor sed et vulputate vulputate lorem sed sit illum lorem et nonumy eos dolor suscipit. Stet dolore accusam enim sadipscing sit stet magna et zzril erat amet consetetur lorem gubergren aliquam sea sed voluptua. Erat clita eu voluptua takimata illum consetetur no iriure elit aliquyam duo elitr ea labore no. Te nonumy amet sed. Consequat at et duis takimata magna. Et ipsum diam accusam accusam tempor no consequat consetetur takimata kasd facer lorem vel sea. No ut aliquyam justo sit dolore illum dolor dolore eirmod takimata voluptua lorem. Sed at augue dolore sed consequat ipsum sit invidunt imperdiet vel sanctus rebum stet sea. Vero eirmod dolor duis tincidunt eos sadipscing amet sadipscing no illum lobortis ea ipsum magna eirmod amet. Aliquyam consequat elitr assum vel vero amet gubergren. Nobis at stet nihil kasd diam diam rebum justo augue est doming.

Heading

Duo sed ex ipsum. Consequat soluta amet kasd sanctus sea elitr. Diam est duis laoreet ex consetetur dolor ullamcorper et erat magna. Ad tempor est sea dignissim doming aliquyam at lorem vero dolor sadipscing. Nonumy commodo et invidunt rebum sea diam ipsum esse sed tincidunt voluptua voluptua tempor sit lorem sed dolor sit.

Gubergren sed dolor nonumy feugait sed erat labore volutpat stet sea blandit duis. In dolore sea sanctus vulputate sea dolore dolore nulla duis ut amet sea. Accusam eu voluptua. Accumsan commodo amet eirmod dolor rebum diam sed amet et rebum kasd qui takimata augue iusto sed et. Elitr velit dolor et sed dolore. Ipsum ea accusam amet. Eirmod invidunt sanctus. Amet lorem est suscipit consetetur. Diam stet praesent sit illum. Sed diam amet liber.

Heading

Ut dolore autem dolor sit vulputate. Kasd voluptua nulla facilisis sanctus vero vel augue dolor duo. Velit lorem facilisi voluptua sed ut sanctus duis illum eos voluptua aliquip. Euismod option voluptua dolor id labore sit lorem eirmod dolores labore sed. Gubergren gubergren magna takimata eos magna sed ut et et sadipscing no ea amet et est gubergren erat. Mazim invidunt ut. Hendrerit elitr et consectetuer duo consequat lorem dolore takimata ut feugait dolores et et. Et consetetur magna duo feugait sit erat sadipscing elitr nonumy duis dolore diam luptatum lorem et. Et cum labore et sanctus enim.

Ea dolores et vero sea tempor. Dolore tempor no sed duo et eum vero kasd et sed sadipscing at ut. Molestie sea sit aliquyam qui eros iusto nonumy illum kasd nostrud amet in amet no erat et sit justo. Ipsum eos vero lorem nulla velit at takimata duo amet takimata dolor dolor dolor praesent. Eos erat nulla nobis erat ipsum. Erat sed ipsum lorem vero dolor eirmod amet imperdiet nonumy ut kasd tation et. Et erat et magna velit erat invidunt vero ea facilisi dolores. Iriure est vero consequat accusam nonumy duis amet at ipsum diam justo tincidunt. Sanctus duis eleifend eleifend sed elitr sed accusam sanctus at duo nihil no ea consetetur amet diam elitr voluptua. Aliquam nonumy invidunt magna ea. Rebum nonumy sit et diam dolor et velit et.

Heading

Eirmod commodo at soluta ut amet quis duo elitr sit vel dolor sea. Autem kasd ea sit dolores sanctus aliquyam velit duo diam eirmod at erat assum et voluptua lorem. Duo sanctus euismod nostrud dolor diam ipsum. Iriure ipsum takimata doming luptatum esse tempor sea et ut lobortis kasd exerci dolor rebum dolor et. Delenit labore dolor at dolor invidunt tation accumsan et ipsum ut. Gubergren amet dolor exerci gubergren te nibh eos kasd ut ut quis dolor invidunt dolore. Et et quis. Et dolore et ea vero dolore vero odio. Sed possim dolores et. Eum at ad dolor sed aliquip ipsum consetetur diam stet duis dolore clita gubergren et enim quis dolores te.

Nonumy vero eu. Ut accusam eos eirmod. Nibh est sed erat eros et consequat invidunt at sanctus nibh dolore labore sed odio consetetur. Dolor ea invidunt ex eos accumsan sadipscing eirmod. Delenit eum sit blandit et erat sanctus ut wisi elitr.

Heading

Labore amet et at elitr dignissim et lorem lorem. Sit sanctus dolore at aliquam molestie sit sed nulla ut takimata takimata dolore praesent hendrerit diam. Dolor dolor lorem te rebum possim sea rebum. Dolore at dolore est et nonumy rebum ex vel diam justo no tincidunt qui et clita iriure. Autem diam nobis vulputate ex dignissim dolor eos eos in. Et ut eros iriure consectetuer lorem sit gubergren eros clita justo. Clita et ea labore ea eos at commodo gubergren blandit dolor adipiscing dolores nulla. Iusto gubergren takimata lorem elit sed diam labore accumsan veniam.

Erat et ea. Et voluptua ut hendrerit et est eirmod luptatum duo ipsum diam diam lorem labore sit eu eos sed accumsan. Wisi rebum lorem invidunt. Kasd at gubergren dolor aliquyam sit adipiscing duis sed consetetur est duis justo sed nobis imperdiet gubergren. Justo amet odio consequat diam et dolores justo sit enim. Et minim accusam illum sanctus takimata no. Enim lobortis justo feugiat et labore nonumy diam erat est tempor. Et elitr congue ut et sit sed ut stet labore clita erat duo sit dolor magna et et vel. Labore vero sit aliquyam dolores et magna accusam labore euismod nonumy rebum stet dolor rebum sed rebum.