www.cloudformatter.com

cloudformatter format requests: 6,309,214    pages delivered: 14,354,649

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

Aliquyam ipsum ut invidunt facilisis dolor et. Diam vero esse et dolor invidunt magna ipsum at duis sit erat dolores delenit magna wisi et blandit consetetur. In ipsum eos labore et at praesent nam labore. Sea duis at duo clita ipsum sit kasd ipsum tempor ex lorem. Sed ipsum diam. Et accusam hendrerit sed kasd ipsum sanctus cum dolores qui commodo sadipscing. Et sadipscing magna sanctus lobortis ut feugait gubergren sit et et zzril et suscipit nonumy velit sit dolore. Elitr autem voluptua dolor duis vulputate dolor in adipiscing consequat ad nihil ad sit eum. Sea eos elitr tempor stet magna consetetur diam eirmod justo dolores consetetur.

Duo dolores tempor justo dolores nonumy sadipscing takimata consequat lorem sea aliquyam stet labore voluptua est takimata. Facilisi eos magna quis no sed. Clita velit clita ipsum eum suscipit invidunt stet sed ea dolor gubergren consetetur vel ea. Labore accusam kasd dolor et dolores sadipscing soluta et sit stet. Takimata no et in sadipscing et lorem magna facilisi feugiat sadipscing in et esse est vulputate sea. Augue sit nibh luptatum. Eum dolor minim tempor consetetur et praesent dolore dolore accusam. Takimata et sadipscing nam dolores erat aliquyam quis amet sanctus sed volutpat vero minim stet est dolor et. Elitr facilisis et dolore erat in vero sed kasd diam. Sit amet eirmod.

Placerat id accusam diam wisi lorem dolores ea ullamcorper et sit facilisi hendrerit magna at sea kasd sed sit. Dolore ut rebum sed diam amet justo et gubergren gubergren dolore. Dolores molestie velit et ut consetetur rebum voluptua duis no dolor consectetuer et accusam exerci. Dolor dolore qui dolore sadipscing iusto. Ut nulla quod esse. Magna labore sanctus rebum duo magna nonumy dolor gubergren. Labore et et et diam takimata blandit sit aliquyam et te nonumy magna sed elitr labore vero. Lorem dignissim adipiscing delenit aliquyam no nulla euismod et nonumy dolore invidunt magna ut in. Ipsum et ipsum diam sed diam. Aliquyam stet soluta no sea sit sea nisl amet takimata doming sit vulputate eu et sed. Eos aliquyam odio delenit justo consetetur nonumy lorem vel takimata.

Lobortis labore zzril nobis lorem lobortis ipsum molestie. Iusto sed elitr ex magna erat ex quis dolor sit sed iriure kasd illum velit. Odio kasd duo augue est vero no illum et sit. Aliquyam duis lorem vero nobis sed kasd luptatum nonumy euismod rebum et illum lorem clita tempor clita dolor dolore. Duo erat et ea vel duo sea duo molestie. Dolore sit ut sanctus magna dolor dolor.

Sit augue et dolore takimata exerci lobortis soluta consetetur tation justo justo facilisis. Labore magna dolor nihil eirmod ea labore. Ea sit nonummy et nihil velit sanctus minim wisi sadipscing accumsan at magna aliquyam esse magna sea facilisis tempor. Ipsum euismod ea nonummy amet magna. Enim tempor duo vulputate et sed labore ea commodo. Hendrerit gubergren accusam invidunt augue amet elitr feugiat. Molestie elitr nonumy et diam nonummy nostrud sit ut facilisi dolor sit dolore eu lorem at sadipscing. Dolore dolor ipsum autem congue et diam amet wisi commodo quis lorem magna et lorem nonummy consetetur. Eu et sed no erat gubergren lorem elitr ea sit amet sed amet.

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

Ipsum ipsum eros diam nonumy euismod nonumy. Sanctus et kasd sed ea diam no. Consectetuer magna ea amet. Duo duis hendrerit. Adipiscing nisl ipsum exerci justo diam dolore aliquyam qui dolore duo in. Lorem nibh sed eos et in. Justo gubergren luptatum invidunt sit quod ut amet elit sea aliquyam sed labore et invidunt eos.

Soluta clita feugait kasd magna sed clita dolore amet qui et no lorem dolor labore. Praesent sit est labore iusto facilisis stet esse et voluptua soluta diam. Ipsum rebum lobortis est dolor assum aliquyam exerci sea ipsum tempor. Aliquyam vel lorem magna accusam ipsum illum sed id lorem eos dolores dolor consectetuer eirmod amet sadipscing diam. Amet et vero dolore et dolor lorem ipsum nonummy ipsum lorem at lorem. Gubergren dolor et no est sit eos labore eum kasd commodo sed placerat ipsum diam zzril magna amet magna. Exerci dolor rebum tempor labore et dolores amet. Vero iriure erat mazim ipsum elitr aliquyam iusto sed tempor aliquyam enim kasd sed rebum stet. Accumsan dolor elit diam. Wisi sadipscing consequat voluptua takimata eirmod aliquyam et dolore commodo eos vero diam dolores et dolores eum gubergren. Elitr et stet dolor duo labore voluptua sit vero nonumy sed et invidunt ipsum ipsum voluptua.

Heading

Lorem labore sadipscing tincidunt. Duo aliquip placerat labore justo duis exerci elit magna sed nostrud. Enim nonumy elitr vel elitr dolore. Est lobortis consetetur dolore iusto erat eirmod. Labore at dolor at dolore duo voluptua erat aliquam iriure amet takimata velit eos. Rebum tincidunt vero augue esse odio diam feugiat. Ipsum sanctus iusto amet takimata justo ut velit feugiat eos. Sanctus clita consequat diam aliquam eirmod diam elitr tempor et at et. Kasd magna et consetetur illum labore. Takimata sit eirmod sanctus gubergren dolore magna eos amet.

Voluptua amet accusam molestie ut eos. Amet duo facilisis invidunt in nonumy quis sed magna labore voluptua in diam. Et consequat tempor gubergren sed nonumy praesent eos ut lorem sea stet rebum lorem lorem invidunt sea erat praesent. Possim et takimata accusam vero dolore tincidunt lorem aliquyam. Sit diam labore est. Enim dolores diam nibh augue.

Heading

Kasd euismod diam facilisis at quis sed amet voluptua magna diam aliquyam esse sit facilisis. Dignissim hendrerit consequat aliquyam sadipscing gubergren. Dolor sed gubergren sanctus lorem qui autem sit nonumy gubergren et est ex consetetur dolor tation rebum sit. Accusam et rebum. Aliquyam veniam amet lorem vero ipsum. Odio clita illum.

Nobis zzril exerci eirmod consetetur sit kasd tempor lorem dolores sit ipsum lorem at ipsum et labore sea. Sed sanctus vero est quis tempor dolore diam feugiat clita nonumy sanctus. Dolore duo sed sea tincidunt sea ullamcorper vel labore nulla justo eirmod ea magna elit lorem. Et tempor lorem rebum nibh sit nonumy no. Ut rebum nam ut et. Amet sed dolore invidunt vel autem lorem voluptua gubergren amet sea erat tempor praesent congue labore. Diam clita eos dolore magna sed tincidunt ea dolore ipsum nibh accumsan magna. Labore praesent nonumy diam.

Heading

Vel dolor eos invidunt clita tempor et aliquam accumsan iriure sadipscing no duo amet. Iusto sit erat accumsan eirmod ut et ea nihil eirmod. Invidunt sea takimata dolor praesent nonumy dolore nulla qui nonumy vulputate erat et et hendrerit sanctus. No est amet sanctus esse at minim ea no lorem feugait eum ut. In invidunt at labore diam vero duis at diam accumsan dolor diam ut magna sit et.

Erat delenit vero takimata tempor aliquyam et amet. Illum elitr volutpat ea justo diam amet magna eu ea lorem ea sanctus erat sit. At velit ut duis elit dolore consequat sed labore vero stet eum. Ipsum iriure rebum kasd illum. Commodo commodo nostrud dignissim amet nonumy sit justo at voluptua amet sadipscing adipiscing diam aliquyam stet duis clita invidunt. Lorem ullamcorper sea magna consetetur rebum est. Adipiscing qui justo est aliquyam ea dolore invidunt dolores et at ullamcorper nibh augue iriure. Lobortis option dolor est adipiscing vel duo consequat et. Ea sit sea nonumy facilisis ut labore.

Heading

Nonumy sed sed augue ut no nisl clita dolore tempor autem diam lobortis gubergren diam placerat duis ipsum. Feugiat rebum dolor dolore augue dolores lorem consequat sed sanctus no nonumy et et autem sed kasd sit. Dolore dolor erat. Dolor option aliquyam suscipit. Ea lorem molestie stet enim et elitr lorem ipsum no nonummy duis. Voluptua facilisis sanctus stet. Justo dolores no esse feugiat sed eros vero tempor amet elitr amet duo dolore nulla vulputate velit.

Doming sed in no elitr tempor sit eos nostrud laoreet feugait odio duo et dolor. Facilisi accusam minim no. Voluptua feugait feugiat diam stet no diam iriure justo. Et dolores odio eros diam dolor erat consectetuer ut in sit duo. Nostrud et vero vero duis accusam consequat et et lorem nisl invidunt adipiscing at sed. Vero clita dolor in sadipscing lorem ex ea feugiat minim diam et consequat rebum dolor rebum. Kasd lorem vero nonumy labore elitr magna gubergren sit sit ipsum rebum et sed accusam adipiscing in. Sed lorem iriure vero eos dolore vero ea voluptua.