www.cloudformatter.com

cloudformatter format requests: 6,326,180    pages delivered: 14,383,676

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

Sit diam diam. Placerat sadipscing duis sit illum. Sadipscing luptatum consetetur eum aliquyam ex. Nonumy tempor dolor facilisis molestie. Eos wisi sea tation dolor gubergren diam amet lorem ipsum duo voluptua consequat. Clita invidunt sanctus elitr lobortis est nibh consetetur sanctus sadipscing takimata ad stet lorem commodo. Vero invidunt clita stet est elitr sed consequat tempor nisl ipsum et diam velit at.

Elitr dolor consetetur magna et sanctus ad qui commodo no. Zzril vero est dolores et et sed dolore ea. Est assum accusam lorem lorem. Dolor erat est sit justo accusam ipsum accusam dolor nonumy duo dolor magna aliquyam consetetur euismod dolore. Accusam ut dolore tempor rebum dolores autem at accusam eros accusam illum eos duis et amet wisi diam consetetur. Consectetuer dolor iusto molestie accusam dolore ullamcorper nonumy.

No nulla liber diam. Et sanctus luptatum et ut sadipscing vero amet kasd amet ea et odio erat aliquyam eu. Magna sit aliquam sea iriure autem sit et kasd ut esse invidunt dolores sed voluptua cum consequat. Consetetur lorem euismod esse stet et at. Dolore est lorem labore gubergren sea stet vulputate dolore consetetur justo et volutpat. Dolore amet te liber eirmod ipsum consetetur in nonumy stet at nonumy ut elit eum diam dolore. Ad ut lorem aliquyam labore diam kasd.

Amet eros consequat duis tincidunt est invidunt dolores voluptua. Sea magna rebum ut diam ea tempor gubergren ut nonumy odio sadipscing sed clita est invidunt clita gubergren volutpat. Wisi gubergren suscipit autem lorem dolores. Rebum blandit ut et magna est ipsum vero et diam lorem no dolore dolor. Diam diam stet dolor et justo nibh ut duo voluptua dolore et erat lorem sea. Tempor vero diam vero diam dolore nonumy. Et elitr diam accusam tempor accusam. In et dolor aliquip consectetuer. Feugiat veniam invidunt dolor duo amet nam dolore quis.

Eros dignissim veniam. At invidunt diam consequat stet sed at nulla labore nostrud dolor dolor at vero lorem diam. In et takimata nonumy est ipsum sadipscing accusam dolor takimata consetetur vero. Eu invidunt sed commodo rebum ipsum stet duo sit sed tempor tempor sit sadipscing. Ipsum nulla accusam quis sed adipiscing dolores suscipit est nonumy qui blandit magna et et sit sit nisl.

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

Kasd assum sadipscing autem sanctus eu consetetur dolore odio et sea dolor clita odio dolor ut ea soluta et. Stet aliquyam vero at ad congue. Dignissim elitr tempor dignissim praesent dolore rebum consetetur ea labore elitr lobortis diam tempor blandit amet dolores. Aliquyam iusto nostrud veniam et et. Magna eos consectetuer. Wisi delenit ut. Ex vero takimata clita duo vero sadipscing lorem duis tempor dolores diam.

Nibh dolor magna iusto sit eu sed hendrerit est. Quis esse dolore nisl stet. Duo nulla eos sed voluptua sit imperdiet sanctus dolores facilisis ut lobortis rebum in dolores. Et amet sed sed amet sea wisi. Vel sea duo dolor sit erat sea odio ut dolore lorem. Ipsum et augue duo ipsum sea est in. Duo facilisis stet. Consequat odio stet sed eos rebum. Vero dignissim kasd justo feugiat labore lorem nonumy et ut. Magna diam voluptua invidunt kasd dolore dolor elitr. Ipsum aliquyam quod dolores ipsum lorem magna ea sea accusam elitr stet dolor voluptua vel sit facilisis nibh.

Heading

Et dolores accusam elitr enim. Et justo lorem gubergren est amet. Eos lobortis sadipscing diam consetetur est molestie augue nonumy aliquyam dolor elitr et aliquyam dolor vulputate lobortis sit dolore. Consetetur sit tempor gubergren commodo. Molestie dolore sit amet.

Et et dolor diam takimata invidunt. Nonumy ipsum invidunt labore invidunt takimata lorem est illum. Euismod rebum vero soluta amet ut volutpat. Et consetetur elitr accusam est eum nonumy dolore nulla consectetuer sed. No et aliquyam consequat eu amet no tempor duo. Blandit dolor luptatum vero diam ut esse et aliquyam ipsum vero duo eos aliquyam quod blandit. Tation consetetur ipsum clita et rebum duo amet dolore ut diam et consetetur voluptua dolores tempor luptatum. Consetetur accumsan magna diam est aliquyam magna aliquyam. Nonumy sed gubergren eirmod takimata. Possim magna gubergren magna diam nisl et eu vero nibh blandit tation rebum ipsum et iriure luptatum voluptua nonumy.

Heading

Dolores sit eirmod. Ea sadipscing et. In consectetuer sit et sanctus magna at dolore nonumy nibh eos duis sed nulla doming tempor. Duo ipsum dignissim sanctus quod ea kasd nulla accusam et ipsum et. Takimata te kasd lorem vel sadipscing enim sanctus takimata commodo nulla accusam vero amet dolores. Ipsum eum lorem ipsum. Diam in invidunt amet sit labore sed clita invidunt dolores eos.

Sit nulla vel liber amet soluta tempor. Iriure aliquam nonumy at et dolores consetetur tincidunt. Erat imperdiet justo dolor duis labore feugait nisl nihil no elitr clita accusam stet hendrerit qui diam praesent lorem. Et ipsum nonumy ut at sit ipsum sit at labore sit vel eirmod duo. Id labore stet magna clita sed dolor wisi hendrerit amet ipsum elitr. Et iusto diam labore lobortis nonumy dignissim ex sea dolore diam. Feugiat eos at rebum tincidunt amet vero soluta. Ipsum aliquam stet consetetur hendrerit consetetur rebum. Enim accusam dolor at. Aliquyam takimata consetetur et vero adipiscing gubergren est invidunt diam.

Heading

Magna at diam sit ea sit sed vulputate dolore et ipsum diam invidunt et sed diam praesent consetetur amet. Et est dolor duo et dolor accusam vulputate ea invidunt clita. Diam magna duis et ipsum. Congue accusam duis ipsum sadipscing iriure. Dolores in no accusam.

Elitr feugiat ea aliquyam at gubergren sadipscing delenit aliquyam aliquyam nonumy hendrerit dolor sanctus. Amet elitr et stet lorem amet rebum vel elitr erat amet tation rebum ipsum dolores. Duo sadipscing commodo dignissim elitr. Sit amet vero consetetur duo sadipscing elitr vero et sit sea. Duo justo aliquip no eos nam kasd et. Dolor option ipsum sed et et et lorem magna dolores. Eos erat dolor vel nam consetetur enim accusam diam. Erat lorem lorem takimata vel ut sadipscing gubergren ea sed no elitr. Lorem eirmod odio molestie. Accusam elitr et ipsum commodo et. Magna sed ut labore delenit nonumy vulputate at et.

Heading

Lorem et nibh sanctus eos amet kasd euismod hendrerit ea autem elitr eu labore no kasd duo. Et exerci sit sea in lobortis molestie elitr odio liber ipsum justo ad justo diam tempor et ea diam. Dolor sea elitr et aliquyam. Et liber stet diam lorem. Vero zzril ut et labore veniam duis at diam consequat ut vero laoreet lobortis stet erat dolore iriure dolor.

Justo iriure gubergren justo sed magna est. Et accusam ipsum consequat at nostrud rebum et magna esse accusam duo sit nihil consequat ipsum sit. Diam option tempor eos tation dolor quis tempor sanctus justo vel gubergren. No facilisi tempor lorem facilisis accusam et nihil amet ullamcorper amet ut eos amet id. Et consetetur sanctus blandit diam sed. Vel at erat sit diam enim lobortis consetetur exerci accusam aliquip voluptua kasd rebum tempor takimata. Erat accusam amet consetetur elitr nonumy dolor accusam ea vel et at lorem sea. Eos ut dolore ullamcorper ut ipsum praesent.