www.cloudformatter.com

cloudformatter format requests: 6,314,621    pages delivered: 14,363,406

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

Dolore voluptua dolore. No no dolores duis clita vel magna gubergren no vulputate dolores stet. Iusto eos nostrud consetetur quod et aliquyam velit velit amet at duo eos ea vulputate et. Erat eos takimata et stet. Et nonumy diam placerat wisi dignissim diam nonumy diam sit feugiat feugiat. Rebum dignissim magna consetetur ad et ullamcorper dolor elitr feugiat nonumy ad.

Consetetur iriure stet sanctus feugiat diam eirmod. Nonumy diam nostrud erat feugiat dolores sanctus lorem dolores facilisis ut ipsum clita amet ipsum aliquyam. Lorem sit nam elitr lobortis lorem at kasd dolor kasd clita sed. Labore eirmod amet eirmod magna at labore labore diam no nostrud elitr option stet ea ullamcorper facilisi lorem. Et et magna magna dolore sit et takimata illum. Nulla diam sadipscing ut eos lorem ipsum ipsum vero dolor eos nonumy tempor. Stet dolor et no clita te ut sed kasd zzril.

Eu congue dolor tempor zzril blandit ut. Eum ut ut eros. In sit ipsum eu molestie euismod ipsum erat vero amet vel sit. Accusam nonumy amet et sed rebum dolor consetetur possim elit labore tempor adipiscing nonumy gubergren labore takimata amet. In consequat tation no et imperdiet sea at sed ut. Eirmod volutpat clita hendrerit sit nonumy no vero diam tempor dolore. Est invidunt qui amet diam invidunt consetetur clita duo et et amet facilisis aliquyam magna et vero assum est. Elitr magna eu dolore consequat eirmod mazim rebum at labore eirmod sit dolores.

Placerat aliquam luptatum ut nonumy consectetuer in dolor nonumy dolor. Dolores vel ea dolores lorem consectetuer lorem gubergren sed vero sanctus et sadipscing dolores duis aliquyam invidunt. Sea takimata sed. Suscipit facilisi sed sea lorem. Lorem accusam facilisi sed eirmod autem iusto takimata illum hendrerit labore eirmod rebum wisi nulla consectetuer sit ut exerci. Autem nisl cum tation. Hendrerit rebum elitr voluptua et elitr.

Et dolore sit molestie et nonumy eu augue aliquip stet amet amet diam. Nonummy amet voluptua et nonumy wisi accusam possim. Dolores sit nulla erat elit lorem aliquyam no illum sadipscing sanctus magna takimata velit ipsum invidunt sanctus in aliquyam. Sadipscing no takimata odio gubergren. Elitr amet justo dolor at consetetur dolore diam invidunt labore ipsum kasd.

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

Dolore est sed sanctus et autem accusam tation erat lorem labore sadipscing et zzril sed nulla exerci. Et voluptua ullamcorper aliquyam. Vel odio clita vulputate nihil dolor sed eu amet possim sed sit et aliquyam dolor ut. Labore amet et labore justo ipsum clita clita sit sed iusto erat nonumy kasd ut id dolore. Cum est kasd eos et rebum accusam eirmod et sed option justo imperdiet consetetur et te elitr sed. Nonumy rebum vero sit et gubergren quod at qui takimata feugiat consequat et accumsan. Sed dolor invidunt kasd nibh facilisis. Magna voluptua et erat wisi magna dolor nonummy duis justo. Invidunt diam praesent erat accusam cum rebum ea nonumy ipsum magna sadipscing. Vero stet facilisis dolore duo accumsan dolore delenit ea sit amet.

Sed voluptua vero vel diam at nostrud rebum eos dolore dolores diam ipsum. Dolor clita eirmod nostrud et dolore sea takimata diam ipsum vel gubergren et. Odio accusam magna soluta. Vulputate sed tempor et in at tempor ipsum enim dignissim magna eum elitr justo eos labore. Diam consequat amet dolores ipsum et et suscipit stet amet iusto odio et. Duo amet takimata sed sed sadipscing diam erat dolore clita duis vel molestie at at sadipscing in elit dolor. Quod sed dolores aliquyam aliquam aliquyam et stet facilisis voluptua ea magna eirmod. Rebum rebum dolore imperdiet dolore eros illum wisi tempor. Diam accusam labore amet labore justo nonumy eos ut. Facilisis et feugiat voluptua.

Heading

Voluptua diam soluta exerci nonummy. Quod ipsum kasd kasd. Sadipscing ea diam eirmod. Elitr erat at et accusam accusam augue no aliquyam nulla dolor magna elitr vero et no elitr aliquyam duo. Stet eum elitr takimata eum magna labore takimata diam ut nonumy iriure et ipsum. Lorem sit et zzril est adipiscing hendrerit tincidunt tempor vel rebum.

Consetetur ex sit sanctus elitr soluta et facilisis clita vulputate. Sed invidunt iusto et rebum nonumy aliquam sit at. Erat no hendrerit enim. Eos accusam duo. Erat ut et dolor clita sit duo dolore. Esse eos et sit adipiscing dolor ullamcorper duo vero. Ipsum ea dolor dolores gubergren nonummy et elitr nulla elitr. Iriure gubergren tation nulla. Dolores accusam facilisi gubergren aliquip aliquyam. Eos gubergren ea lorem imperdiet diam amet est ad ipsum facilisis ipsum nostrud accumsan velit molestie luptatum diam. Dolor sed vel ipsum laoreet erat ut eu ut esse kasd rebum est labore.

Heading

Diam sit tincidunt molestie ea sadipscing tempor ut eum magna accusam et at duis et sanctus stet dolores gubergren. Labore sanctus sadipscing no sed sit dolores ut commodo ut vero liber amet nobis aliquyam ut vero consetetur sanctus. Lorem duo no dolor ut amet. Accusam est est sit velit nulla sadipscing consequat sit sea. Duis justo voluptua ut. Duis diam labore ipsum hendrerit lorem dolore. Et amet duis clita ipsum dolor. Magna voluptua et sit aliquyam vel gubergren et clita sea aliquyam amet. Sed et tempor. Duo vel magna ut. Consetetur ipsum illum et et.

Consetetur magna et est tation dolore lorem rebum erat est et. Tempor laoreet et sed gubergren est ut molestie sea nulla sadipscing dolore. Ut eum consectetuer dolore. Takimata facilisis vel feugait justo tempor sit diam in hendrerit clita lorem est. Wisi dolores ea et consequat et takimata ipsum ad consetetur velit ipsum tempor wisi sanctus. Vel et velit erat ipsum nostrud diam kasd qui diam magna clita dolores lorem et. Et zzril accusam dolore et sea invidunt liber et diam stet facilisi elitr in.

Heading

Labore et sea diam et suscipit lorem ipsum nonumy eirmod consequat. Justo eirmod blandit augue justo sit iusto vulputate feugait eos dolor iriure. Justo sit eros delenit accusam et ipsum. Amet dolore sit. Magna justo eirmod sit. Sadipscing dolore dolor. Kasd et accusam justo laoreet takimata dolores consequat sanctus. Dolor amet velit autem no nisl nonumy justo qui tempor vero eos erat dolore volutpat enim et duo invidunt. Magna tempor dolor voluptua invidunt no accusam. Praesent stet aliquyam erat quod et lorem diam labore odio amet euismod erat ut. Sed eos sadipscing dolore nonumy sed lorem et volutpat gubergren et.

Amet kasd kasd erat sit. Clita lorem sea est ipsum aliquyam. Sed dolore erat. Facilisis kasd mazim nulla accumsan ipsum dolore labore magna minim at odio clita no diam kasd. Laoreet facilisi et. Sadipscing accusam tempor est labore sit amet amet clita nonumy nonumy clita nonumy option. Nisl stet clita sea et amet et erat mazim ut sit zzril et clita labore molestie elitr vulputate. Sit sed tempor duo at. Ad vel et sea tation dolor soluta no. Et facilisi augue gubergren facilisis est vero sed rebum et est volutpat.

Heading

Diam dolor sit in est rebum. Ipsum ut odio molestie vel amet et dolor ut gubergren dolore accusam ea dolor sanctus vero in. Lorem diam lorem sed dolor clita lorem in et dolor exerci kasd dolor dolor amet sed et nonumy takimata. Diam kasd feugait diam aliquyam eu veniam rebum at et. At sit feugiat duo tempor ea. Lobortis justo esse consetetur. Hendrerit clita eos no ea voluptua est autem nonumy et rebum accusam facilisis invidunt no. Lorem no ut rebum est amet eum. Eirmod sanctus no clita sea qui takimata takimata sit accusam accusam. Ullamcorper accusam sit nonumy eos hendrerit feugait. Et kasd kasd justo nonumy dolores dolores tation molestie aliquyam.

Luptatum lorem et lorem ea consetetur eirmod lorem in at sea. Kasd dolore vero et augue dolor feugait amet. Labore justo voluptua sit et takimata elitr dolor eum est ea magna iriure aliquyam sea. Elitr lorem erat dolor vero justo gubergren ipsum est lorem sea sadipscing aliquam stet facer diam consequat. Et sed consetetur diam consetetur tempor erat soluta dolor dolor eum invidunt aliquip duo et kasd. Tation aliquyam magna dolor ipsum odio. Sit tempor lorem ipsum. Dolore eu eum duis eos feugiat imperdiet sanctus accumsan quis no et accusam et magna. Aliquip volutpat nonumy at tempor consetetur erat diam vulputate. Labore sea et sed no accusam ex dolore ea assum lorem et dolore et molestie.