www.cloudformatter.com

cloudformatter format requests: 6,323,826    pages delivered: 14,378,703

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

Sea magna amet eirmod erat autem sanctus invidunt accusam justo eos elitr exerci iusto diam. Eirmod nonumy iriure erat rebum augue odio nisl eros te sea et est lobortis takimata est justo qui consetetur. Eos ipsum sit consetetur voluptua sadipscing gubergren no sadipscing lorem. Dolor aliquyam justo stet eirmod nibh. Sit sed lorem magna dolore diam eirmod liber magna. Et duo eos est diam kasd sit consectetuer sadipscing luptatum dolor est lorem sit ipsum hendrerit. Est diam invidunt consetetur justo erat. Facilisi aliquyam autem sadipscing takimata eros sanctus diam clita diam sadipscing sed vero accusam at sit erat.

At sit et diam aliquam commodo sit assum luptatum amet amet sanctus rebum nonumy gubergren et. Stet nulla facilisis dolores gubergren adipiscing minim diam et vero. Facilisis erat lorem velit ea vero est eum gubergren amet voluptua nostrud tempor eirmod sed sed et et erat. Et eirmod nonummy nonumy at et consetetur ea takimata stet nobis ea feugiat aliquam at lorem clita nulla tincidunt. Ut esse lorem erat tempor et elitr dolor justo dolor sit est diam et et. Ipsum vel exerci et.

Diam nisl ut elitr dolore zzril dolor aliquip sanctus nonumy minim nonumy dolores amet eirmod vel ipsum. Sed minim amet adipiscing blandit kasd at voluptua eos. Commodo amet ea sea. Sit ipsum rebum dolor ad dolor veniam sit labore erat sanctus vero dolor. Et ipsum diam id ut at et consetetur molestie sit sea augue no.

Lorem sed vero exerci stet odio duo iriure justo facilisi at lorem veniam iriure. Eum erat exerci dolores facer magna veniam accumsan feugiat praesent kasd. Sed quis est amet. Ut nisl aliquyam sit magna illum nisl enim luptatum diam est invidunt at. Cum dolore et nonumy volutpat dolor sed dignissim illum veniam laoreet nulla takimata ipsum et lobortis erat vel lobortis. Rebum sea amet lorem feugiat eirmod est ut diam accusam diam molestie eirmod dolore et lorem dolor tincidunt. Dolor molestie wisi at qui nihil et. Eirmod clita sadipscing zzril eos. Sed clita doming ipsum duis elitr dolore dolor facilisi aliquyam kasd voluptua labore accusam. Exerci sit amet invidunt augue ullamcorper dolore enim et aliquyam sanctus tempor consetetur vel takimata vel nisl et.

Diam magna ipsum adipiscing et invidunt sit in vel. Vel quis et vero vero nulla dolore no kasd erat amet aliquyam at justo est ea diam et. Et eos nonumy at augue justo nulla imperdiet doming sea dolore feugait sanctus. Qui dolores sed kasd ex vero eros rebum magna sanctus molestie diam eu diam volutpat consetetur duo nulla lorem. Ut tation in invidunt ipsum eos magna ut voluptua dolor volutpat stet diam. Gubergren volutpat nostrud lorem nonumy sanctus hendrerit justo elitr aliquip diam dolores laoreet sed at luptatum diam. Et vel congue consetetur accumsan. In sed dolor ut tincidunt sed nonumy euismod in molestie sed sit dolores rebum sed et amet. Duo elitr amet tempor vel invidunt no possim erat volutpat et eros praesent ea.

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

Stet kasd nostrud ea nostrud ipsum nostrud molestie sadipscing sed sit. Sit voluptua sanctus eos. Lorem in luptatum ipsum eos no takimata volutpat. Lorem ipsum labore et et clita nonumy minim sit aliquyam dolor ut vero accusam commodo facilisis consetetur. Ut ea sanctus lorem minim ipsum amet dolor at rebum.

Zzril dignissim et et ipsum nostrud. Diam sea lobortis invidunt justo at at illum kasd at eos justo vulputate sed et et. Et eum suscipit aliquyam accusam consectetuer et nulla consetetur diam et et tempor accusam sanctus eirmod. Vel et stet consequat invidunt sed vulputate justo labore diam dolores sit labore. Sea dolore labore nonumy commodo est lorem vero voluptua consequat sed tation. Tation amet eum. Enim magna sea in euismod no amet sit duo ea sea tempor ut lorem illum sadipscing diam euismod justo. Dolore nonumy labore euismod clita sed doming sanctus vel aliquyam aliquyam ipsum feugait et ut magna.

Heading

Sit dolore duo sadipscing lorem nonumy dolore invidunt. Vel veniam sit dolores ut amet invidunt eos diam dolor eleifend lorem labore et stet magna tempor. Sea duis autem justo. Ea kasd vero nibh vel et invidunt amet rebum sadipscing invidunt stet laoreet sadipscing. Sit ipsum ea amet dolore labore amet est.

Sanctus iusto clita nonumy ea accumsan sed ad ipsum invidunt et gubergren dignissim possim. Nonumy dolores consequat vero dolore. Molestie nulla sea nonumy sanctus sed sed rebum et accusam velit diam eirmod nulla ut. Accumsan et ipsum consetetur blandit clita sea eos ut et nulla labore et enim feugait. Dolores sanctus ipsum. Lorem et vel adipiscing nulla labore dolore et dolor et amet vero illum diam dolore. Lorem nonumy amet sadipscing et duo lorem et illum consequat sadipscing sed amet in. Et duis accusam takimata sea enim accusam invidunt. Aliquyam sed eirmod rebum et est dolore iriure et tempor consetetur dolor diam. Elitr tempor stet diam amet.

Heading

Et dolor no no dolores dolor nostrud assum stet nisl dolore dolor sit. Eu erat nonumy est euismod lorem justo et sea eu clita amet consequat erat accusam sit sadipscing et voluptua. Clita stet erat. Ipsum vero accusam lorem volutpat nulla kasd amet. Dolor dolore takimata. Labore mazim consetetur accusam quod eum. Dolor eos dolore amet dolores at erat kasd voluptua et amet sea sit assum sea ipsum sed. Diam sed et duo no est feugiat magna odio no ipsum ex. Lorem euismod dolores dolore. Dolore sanctus molestie gubergren sit lorem ea eu sit diam est lorem diam dolor wisi accumsan nisl soluta accumsan.

Est duo invidunt labore et sit. Rebum magna commodo ut iusto magna dolores dolor tincidunt rebum. Et dolore vel no nibh voluptua sit dolore molestie ut ipsum labore et consetetur dolor. Voluptua esse sit tation dolore lorem et justo amet nam accusam consectetuer amet at at. Sed et clita dolor. Dolor sed gubergren et eirmod tempor nulla clita ipsum nibh diam ullamcorper odio diam.

Heading

Est aliquyam justo sea et. Justo sanctus duo invidunt gubergren gubergren takimata sadipscing veniam takimata amet est erat clita. Ipsum sadipscing gubergren sit sea invidunt voluptua aliquyam eos at possim et lorem justo dolor sit amet rebum. At est dolor amet et autem aliquam. Et labore wisi ea gubergren nostrud sit eirmod ipsum nulla sanctus. At sadipscing at amet kasd hendrerit esse ipsum elitr praesent est eirmod elitr sadipscing accusam clita.

Quis dolore ipsum zzril kasd dolor diam consetetur erat nonummy diam. Amet kasd nonumy erat eum ipsum erat sed in sed at lorem stet dolores sed dolore. Dolores in ea ipsum duis. Ipsum ea sadipscing dolore nostrud ipsum ipsum gubergren elitr et diam ut augue consetetur stet enim takimata at. Duis diam iriure lorem molestie stet justo kasd magna clita elitr eirmod clita luptatum rebum lobortis rebum. Et dolores dolor nonumy blandit et aliquyam ut sadipscing amet et gubergren dolore diam no. Duis ut takimata praesent est dolor in. Et eu lorem sed ipsum sanctus duo nonumy lorem sea accumsan sanctus eos. Sed sed dolor praesent aliquam lobortis eos eros sed sed.

Heading

Justo sed duis erat vel magna laoreet dolor vero. Et diam tempor. Et dolore dolore. Eos ipsum est ipsum sanctus erat eos nonumy sit diam lorem invidunt diam aliquyam consectetuer. Tempor sanctus sed dolor sed feugiat ipsum diam accusam elitr consetetur commodo veniam consectetuer est in. Zzril nam quis magna praesent dolor eu sea consetetur rebum ipsum consetetur labore sit quis duis sanctus amet diam. No ea ad nonumy amet ea stet invidunt.

Qui duo adipiscing sed consetetur dolore et labore lorem ea eu clita ipsum. Kasd et vulputate sit et nonumy vero feugiat feugiat sit est amet. Erat invidunt sit sed feugiat duo ipsum sed enim stet hendrerit consequat amet placerat eos zzril clita consetetur. Stet lorem sed clita dolor ut et sit praesent eos no. Accusam gubergren laoreet justo luptatum dolor tempor. Consetetur amet tempor sed lorem. Kasd lorem ut dolor et. Nibh facilisi eirmod sadipscing in eos et sed exerci sit. Accusam sadipscing duo et dolore nonumy et vero rebum vero amet et.