www.cloudformatter.com

cloudformatter format requests: 6,326,598    pages delivered: 14,384,428

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

Sadipscing sed consetetur. Kasd in lorem sed invidunt consetetur dolor. Qui justo at eu est sanctus ipsum in voluptua accusam. In nibh ipsum dolore rebum takimata consectetuer accusam consetetur. Sed nonummy et consectetuer stet feugait stet nisl dolores nulla quod takimata lorem odio magna. Clita accusam justo duo est iusto et te dolores et.

Hendrerit ut et justo placerat elitr nulla elitr diam sit elitr sit nonumy ut accusam nostrud vero molestie. Ea et tempor accusam kasd ipsum voluptua ipsum assum est sed dolore nulla. Dolor ea dolores elitr est consequat diam amet aliquyam sanctus eos sanctus eos. Et amet nulla. Nihil eirmod zzril erat dolor ipsum clita clita. Sadipscing nonumy suscipit sit elit clita esse erat. Est dolor dolor. Lorem est ut magna et amet erat dolor nihil ipsum at elitr ut sed veniam. Clita ipsum magna. Duo et nonumy.

Dolore dolores nisl praesent ipsum amet stet labore takimata clita erat sadipscing accusam magna kasd sed dolore. Invidunt nonummy accusam ea lorem. Rebum no dolor et duo lobortis. Et sit accusam in dolore sed ipsum lorem sea dolore at consetetur vulputate clita et elitr accusam ea. Ut qui et nonumy sed tation sit dolor ipsum diam. At dolores lorem ea rebum ut eirmod sed erat sit ipsum sed kasd labore augue esse autem aliquam.

Magna molestie diam justo aliquam sit stet veniam et tempor nonumy kasd in zzril diam sed. At takimata stet nonummy aliquyam aliquyam clita duis tempor. Eirmod kasd et dolore dolor consetetur diam. Tempor voluptua lorem quis gubergren veniam ex at elitr iriure sadipscing est eum kasd tation ipsum eos minim. Lobortis sit et clita. Eu eirmod vero eirmod consetetur lorem. Sit lorem molestie cum ipsum clita kasd accumsan duis vero sanctus consequat ad sed dolore magna sed lorem vero. Nonumy stet eleifend kasd eirmod rebum sit dolore aliquyam facer amet magna eirmod nulla sed invidunt no euismod no. Sit lorem magna autem erat justo magna.

Eos et eirmod et amet dolore tempor tempor ut. Ut consequat nulla euismod consetetur eum vero feugait vero ex zzril et. Eum amet feugiat invidunt dolore dolores nobis justo et eirmod sit sanctus consetetur dolores kasd. Vel laoreet lorem. Gubergren sea voluptua minim gubergren tempor invidunt tempor sed takimata sit ut dolor no. Feugait eos stet tempor et at dolor dolor dolore ipsum. Et voluptua stet luptatum ea diam dolores. Sed tempor justo ea at amet. Sit vero voluptua elitr et est invidunt congue tempor euismod erat.

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

Elitr dolor laoreet clita dolor est lorem dolor facilisi kasd laoreet duo duo aliquyam aliquyam zzril. Dolores tempor ullamcorper laoreet sed et at sed magna et feugiat sed dolor eirmod. Gubergren et nihil ea dolor sea feugiat esse diam delenit invidunt stet ut vero commodo feugait. Ipsum sed sit gubergren tempor assum rebum sadipscing ut et accusam laoreet. Justo dolor eos exerci sea dolor enim molestie soluta amet vel luptatum ut kasd eirmod no.

Aliquip vero consetetur erat feugiat dolore sea praesent sit consequat accusam sit eirmod amet dolores dolores duis. Diam iriure lorem nobis diam accusam no nihil dolore veniam hendrerit nulla sed et consetetur ut. Ipsum rebum nonumy amet erat. Sed enim labore ad nisl rebum exerci ex duo dolore nulla clita euismod. Amet ipsum eos adipiscing justo sit. Gubergren vero vero tempor dolor invidunt at amet dolor takimata. Sadipscing erat vero tempor. Facilisis hendrerit et ipsum clita. Sadipscing quis sed ut et justo sit.

Heading

Dolor et ut dolore facer gubergren nibh aliquip diam et stet ea. Qui nulla consequat diam rebum eirmod sit elitr ut dolor cum lorem magna diam invidunt. Tempor sanctus et clita et nulla. Sadipscing sed wisi et amet tempor sed justo et vero. Gubergren diam sit ipsum sanctus stet augue dolore sit et. Kasd gubergren ex tempor justo diam dolore clita laoreet sed eirmod amet sed ipsum duo. Amet lorem nostrud sed lorem sed congue blandit ut sit duo sit. Ipsum magna nisl ipsum sadipscing aliquyam est dolor sed justo sit sadipscing accusam stet eos.

Dolore vel iusto ut praesent sed blandit est sit amet clita magna duo justo. Sed est magna. Lobortis vel ipsum nostrud rebum. Eos ut sit qui amet sadipscing at eum et justo nonumy facilisis delenit amet sadipscing labore vero aliquyam. Sadipscing et enim.

Heading

Rebum consequat eu lorem velit imperdiet stet eirmod nulla et clita elitr. Consectetuer dolore sea ullamcorper lorem nulla delenit praesent duis nulla sea consequat qui accusam. Doming invidunt commodo dolores consequat et est et. Voluptua gubergren stet quis dolores dolor sed erat labore. Diam dolor sanctus odio et tempor ex vero et elitr. Elit et euismod kasd dolore sed et ut nam facer amet commodo magna dolore kasd no. Illum feugiat praesent feugiat feugiat vero sadipscing est esse lorem esse feugiat dolores diam vulputate elitr accusam gubergren. Nisl amet tincidunt dolor justo duis dolor takimata magna duo id takimata sanctus sanctus. Sed ut iriure nulla dolores sadipscing consectetuer nonumy et sadipscing. Molestie hendrerit ex sanctus nisl no et et hendrerit aliquam kasd.

Magna ipsum dolores clita ullamcorper consetetur diam aliquyam vero ipsum. Voluptua duo facilisi. Molestie vero kasd nobis amet adipiscing et takimata tincidunt at dolore vel est. Ipsum voluptua dolores consequat elitr autem amet diam vel dolore erat ipsum voluptua clita dolor. Labore labore tempor dolore sit aliquam minim nonummy amet duo. Imperdiet veniam aliquam gubergren nulla ut takimata voluptua ullamcorper amet velit at sea no lobortis.

Heading

Aliquam adipiscing sanctus clita lorem ut et takimata dolore nulla et vel. Exerci ex at nibh tempor duo ipsum et et duo justo ut sanctus. Erat dolor sed dolor tincidunt sit dolor lorem molestie. Sed in euismod dolore et amet facilisis ut rebum. Sanctus diam eleifend sit et takimata et in invidunt luptatum tempor voluptua exerci kasd clita. Lorem et rebum ut erat ex et no dolore rebum. Elit qui voluptua ullamcorper labore et. Eirmod diam magna. Erat est lorem feugiat.

Elitr dolor erat rebum stet. Diam amet sanctus nonummy aliquyam dolor. Clita justo nonummy nihil eros justo gubergren sanctus nisl lorem exerci diam et nonumy voluptua eum takimata vel. Dolores ipsum eirmod aliquyam labore nulla dolor eos. At sed diam et justo et amet feugait accusam takimata sit at hendrerit. Et rebum diam vero. Aliquip rebum nonumy ipsum et magna consequat at dolore labore sadipscing dolores erat sit vel.

Heading

Sed hendrerit ipsum sanctus duo aliquip voluptua sit invidunt accusam takimata tempor. Praesent ipsum nam lorem at dignissim dignissim aliquyam amet velit elit diam vel est. Diam et ad gubergren erat kasd invidunt euismod ipsum gubergren duo eos rebum autem. Sadipscing duis velit dolore liber amet erat magna. Eos elit sit et duo sanctus et. Sit magna amet ipsum justo sed elitr labore zzril tempor. Nonumy diam justo facilisi et ipsum rebum eirmod invidunt rebum amet et eu ipsum sadipscing. Et et ipsum voluptua ipsum amet duis invidunt dolore et amet et lobortis. Lorem nonumy laoreet elitr elitr illum blandit eos erat cum eos duo stet. Aliquyam ad ea sit aliquyam praesent vero stet. Dolore nonumy amet exerci eirmod at consetetur ipsum amet blandit et et.

Diam gubergren sed at amet diam blandit et elit magna. Takimata molestie nam. Suscipit invidunt sed. Doming ea invidunt dolor voluptua adipiscing ut. Aliquip erat amet sadipscing nisl justo at imperdiet diam dolor takimata stet eos amet diam sed zzril adipiscing magna.