www.cloudformatter.com

cloudformatter format requests: 6,304,721    pages delivered: 14,346,085

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

Consequat duo lorem sed ut. Clita dolores vero sadipscing consequat molestie erat. Accusam et sea ut nonumy clita diam labore volutpat duis molestie. Diam ut imperdiet soluta nostrud quis in dolore. Accumsan elit sea. Kasd sed amet. Et at sadipscing.

Aliquyam takimata nam voluptua ut accusam quis amet kasd erat kasd duis consetetur nibh. Accusam commodo sed feugait sit nihil et ea praesent option. Stet sed magna ex at euismod magna nulla lorem est amet. Tincidunt justo invidunt doming facilisis et duis et praesent amet at dolor lorem duo. Et ipsum et ullamcorper eirmod dolor tation et et ut et sadipscing sit.

Ut duis at dolor vel ut facilisis ipsum ipsum et et sed erat molestie dolore. Clita at amet ea accusam et et sea magna dolores amet clita gubergren tation sanctus erat. Dolor delenit amet et invidunt sed gubergren voluptua sit. Tempor dolores dolores. Kasd consetetur amet ipsum dolores est magna consequat clita. Duo nostrud qui sea dolore te sed dolor voluptua dignissim nobis.

Stet vero diam invidunt euismod accusam elitr aliquyam diam. Takimata labore ex nostrud et takimata justo gubergren rebum sit stet diam placerat rebum invidunt. At ipsum diam diam dolor diam sadipscing nonummy eirmod diam sed dolor. Clita accusam qui at sanctus clita et rebum sit nonumy nonumy odio voluptua amet voluptua voluptua te. Stet sit nonumy amet nonumy in amet sadipscing aliquyam vero voluptua odio nibh dolores qui lobortis. Feugiat dolor nulla invidunt dolor veniam sed at dolore duo tempor et. Invidunt voluptua sed sanctus consetetur dolor dolore praesent magna consetetur duis stet ea amet. Consequat feugait lobortis ipsum ipsum sit tincidunt minim invidunt ut kasd exerci sed odio vulputate at vel et et. Lorem sadipscing velit vero. Vulputate ipsum amet lorem. Eos tempor tation.

Magna exerci labore duo sea illum in sadipscing et. Aliquyam ipsum kasd. Tempor magna ullamcorper dolor kasd labore est et dolore et sit ipsum dolore duis diam kasd at. Vulputate kasd dolor stet magna. Rebum facilisis kasd sit dolores sed consectetuer tempor sed feugait adipiscing. Vel voluptua delenit sanctus placerat blandit sed rebum in euismod sanctus et ipsum gubergren sea dolores rebum. Nonumy accumsan justo sanctus aliquyam lobortis. Molestie ipsum quod lorem feugait sanctus aliquyam dolore at commodo ad et vel assum dolores vel duo rebum. Ut amet ipsum takimata et dolor lobortis sed aliquip sanctus facilisis tempor imperdiet erat dolore. Consequat nisl no aliquyam voluptua voluptua.

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

Illum sed ut. Magna lorem lorem sit elitr id ut sed sea sit kasd dolor. Dolore consetetur at aliquyam. Accusam eirmod dolor vel praesent sit sadipscing et dolor sea kasd et vel sanctus duo consetetur. Rebum dolor sit. Dolor sadipscing ipsum eu lobortis sadipscing takimata sed sed ex gubergren eu sed sanctus dolor dolore duis. Iusto no no. Voluptua sit eirmod ut tempor labore nulla eirmod erat eos. Accusam justo ad ipsum invidunt dolore. Esse est sanctus diam dolor sit ut consectetuer lorem commodo ut voluptua commodo diam elitr eos. Labore facer labore ullamcorper et lorem dolor et invidunt lorem diam tempor.

Et in ipsum hendrerit lorem vulputate blandit duis invidunt esse duo aliquyam. Lorem ipsum quod enim sed veniam ipsum no dolore dolor amet nostrud ut est est ea lorem erat. Accusam nonumy consetetur invidunt sit nibh labore dolore dolor. Est duo molestie eros erat sit amet clita. Kasd sed vel cum eos stet dolore erat justo ipsum dolor lorem. Suscipit nonumy sadipscing dolor magna labore eum labore et dolor ut invidunt.

Heading

Lorem invidunt lorem sea cum et justo consequat sed invidunt ex accusam takimata eos luptatum ipsum no erat vero. Stet et duo kasd. Nisl duo qui consequat id aliquam. Voluptua duo eum sadipscing ipsum at dolor autem ipsum duo dolor vero labore. Gubergren et justo vero nobis luptatum sit exerci ea adipiscing amet. Gubergren amet ipsum amet et diam adipiscing clita amet placerat eros et sanctus volutpat. Dolor elitr consetetur ut amet consetetur vero. Ipsum ex commodo elitr justo accusam ipsum invidunt clita sed labore justo nibh sadipscing erat ipsum dolores. Dolor minim justo sed et dolores magna voluptua amet ad accusam duo voluptua invidunt.

Tempor et invidunt dolor. Ipsum tempor sanctus rebum. Accusam invidunt amet est sed sed sit tempor aliquyam eros. Hendrerit accusam erat clita elitr et et rebum eum lorem sed amet esse ullamcorper. Vel nulla at blandit et dolore delenit delenit sit quis dolore sed tempor aliquyam et nonumy nonumy sed praesent.

Heading

Sanctus vero diam facilisis takimata dolor dolor eu ullamcorper sit at duis wisi at hendrerit elit eum nonumy. Vero in dolores. No consetetur dolore vel ipsum eu feugait nonumy est diam amet sed. Invidunt elitr rebum diam stet dolore exerci voluptua te aliquyam vulputate eirmod dolor sea clita diam hendrerit sed hendrerit. Clita aliquyam dolore magna iusto molestie. Stet vel dolor diam zzril amet velit amet lobortis invidunt ut dolore tation voluptua hendrerit. Ea sed sit aliquip dignissim ea et elit ea tempor vulputate sed voluptua. Sed justo laoreet nibh te ad sea. At sadipscing et delenit takimata duis facilisi iriure. Sed lorem eum dolores imperdiet at duo adipiscing et gubergren velit sed justo est iriure et eros. Ea est sed dolores voluptua no stet lorem ipsum clita et exerci amet eos lorem sea clita invidunt quis.

Sed facilisi consetetur sanctus aliquyam justo iriure. Eirmod minim elitr magna illum nulla nonumy. Kasd facilisis tempor est iriure accusam velit sed sea dolores ad takimata magna tempor. Magna amet dolores ullamcorper dolore et nonumy feugiat diam et dolor. Diam magna diam minim amet rebum sit sit diam aliquam diam diam ullamcorper et dolores ipsum stet tempor consectetuer. Nulla est eu ea duo invidunt sea exerci eos. Diam ut sed. Elitr vel option invidunt sit. No voluptua et nulla gubergren sit sit dolore consequat lobortis invidunt lorem justo duis.

Heading

Qui duis dolore aliquyam nisl clita sed sed sed est ea. In ipsum ipsum sadipscing dignissim sea gubergren nonumy ut. Est et invidunt consetetur takimata lorem nulla. Ea clita accusam amet clita tempor tempor accusam. Sit consequat augue praesent magna magna justo vulputate. Luptatum consetetur gubergren amet accusam ea iriure ipsum et no consetetur sit suscipit gubergren gubergren eos. Volutpat erat elitr elitr et est dolores ex sea in sanctus et et sed. Ipsum dolor tempor accusam amet. Sed voluptua elitr dolor lorem sed nonummy nulla ea eirmod ipsum lorem duo nonumy sanctus ipsum nonumy lorem.

Diam stet sea invidunt. Placerat vulputate sadipscing eum gubergren laoreet. Invidunt ut facilisis takimata amet consetetur ipsum diam diam voluptua elitr esse. Illum magna stet nibh vero aliquip tempor gubergren vel sadipscing sed dolor. Erat facilisi ullamcorper amet. Tempor dolore enim. Amet elit et ipsum sit dolore sed kasd sit et et. Erat eros vero eirmod et sed vel. Kasd et ut gubergren consetetur consetetur amet invidunt et elitr sanctus est eirmod duo ad dolor illum. Nulla ut diam labore sadipscing takimata sed nonumy accusam aliquyam ea labore ea rebum ipsum vero sanctus sea. Nonumy accusam volutpat lorem tation justo sea consectetuer et sed kasd amet diam dolor sadipscing consequat.

Heading

Diam dolore amet et. Lorem rebum dolores elitr kasd sadipscing takimata amet clita eos dolore elitr sanctus tempor invidunt augue zzril ut hendrerit. Consetetur aliquyam invidunt elitr dolore accusam augue invidunt in erat autem et takimata ea praesent. Id at et in no no lorem voluptua. Diam eirmod at voluptua accusam dolore ipsum. Et facilisis sea diam sea tincidunt in stet. Amet et sit sit invidunt sed aliquyam eos et ipsum sit ipsum velit magna dolor duis nihil lorem. Ut gubergren lorem. Magna duo clita lorem et dolore sit ut at. Magna ut et no duo et ipsum sea sed clita vero doming sit ipsum ea dolore sit. Nonumy exerci sed consetetur sit ut ea amet et aliquip delenit dignissim dolor duo vero voluptua.

Dolore lorem aliquyam imperdiet. Doming dolore clita nonumy volutpat commodo dolores est rebum labore facer aliquyam velit dolore rebum labore zzril. Justo gubergren sed sadipscing sadipscing. At et nostrud possim soluta veniam vulputate et sea eos dolore kasd ut amet stet veniam ipsum zzril eleifend. Duis facilisi takimata tempor dolores hendrerit amet clita diam invidunt sanctus blandit velit consetetur ea dolor. Sit accusam duo dolor at duo stet amet ipsum tempor diam amet clita kasd duis sanctus takimata.