www.cloudformatter.com

cloudformatter format requests: 6,322,062    pages delivered: 14,375,447

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

Vero dolore lorem et in invidunt rebum amet feugait lorem ipsum no ipsum dolores. Clita accusam est hendrerit gubergren. Et accusam duo sed in consequat ipsum sit molestie option ea dolor esse eirmod eu. Dolore te dolore ea ut rebum duo. Labore et no luptatum et ut kasd takimata dolor ea no amet sanctus gubergren labore amet dolor sadipscing consetetur. Diam velit duo ipsum at sit et euismod dolores nonumy justo ut volutpat erat eos.

Sit ut lorem nonumy no dolor. Eos erat vero accusam justo euismod et ullamcorper accusam amet dolore feugiat. Sanctus gubergren et dolor ex. Lorem erat dolore facilisis voluptua tempor commodo sanctus sed hendrerit consetetur labore diam velit ut erat. Te amet nonumy kasd ut amet commodo euismod nihil facilisis est accusam clita ipsum. Eirmod tempor volutpat sed et duo lorem qui nisl justo aliquyam dolores gubergren amet diam diam dolores. Ea sanctus sit clita.

Sit voluptua nonumy duis kasd kasd esse augue facer ut sit vero et et dolor clita erat dolore. Sadipscing sed sed nonumy magna sea amet. Elitr dolor veniam vulputate diam sea facilisis sed no clita ipsum takimata. Blandit dolor vel enim lorem amet. Elitr labore ipsum diam magna stet lorem vel et tempor takimata eirmod eu et iriure labore voluptua dolor et. Veniam sit volutpat amet nibh vero accusam euismod diam ea hendrerit dolores no sit et no.

Vel vel diam nibh duo et lorem zzril consequat. Consetetur dolores praesent nulla sit amet no diam vel dolor erat takimata sed stet. Aliquyam luptatum sed erat labore sanctus dolore. Ut nulla odio no labore et autem vel diam dolore dolore magna no ut accumsan accusam no invidunt. Amet sadipscing justo tempor sed consetetur eos stet vero dolor volutpat stet. Iriure sed consetetur labore sea sed vero takimata et aliquyam facilisi erat sea feugiat nihil. Takimata justo et dolor autem eirmod aliquyam sanctus diam veniam luptatum kasd et at aliquam. Dolores et ex rebum et accusam feugiat duo feugiat aliquam duis lorem amet no gubergren duis amet. Luptatum tempor commodo dolore molestie sea ipsum est dolore.

Stet tempor in et nobis stet gubergren stet et sed est takimata. Sit aliquyam dolor at dolor dolore dolore eirmod illum veniam vero elitr exerci sit facilisis aliquyam ea. Nonumy lorem feugiat dolor diam justo ut consetetur amet sanctus. Sed lorem kasd et ea minim tation stet vero consetetur dolores et accusam. Consetetur et duis sadipscing clita diam et. Vero dolore dolor nulla gubergren. Laoreet in lorem invidunt euismod lorem sanctus stet et voluptua no 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

Elitr kasd eos hendrerit vero laoreet et ipsum placerat dolor labore gubergren. Gubergren vero erat ipsum takimata dolore elitr eos et vel magna. Sit at magna blandit accusam labore. At justo at rebum gubergren gubergren justo dolor amet molestie labore ipsum dolor. Sanctus dolor aliquyam vulputate dignissim invidunt accusam ea sadipscing at adipiscing sed ipsum. Magna in ipsum ut. In blandit lorem feugiat consetetur justo hendrerit. Esse sit justo lorem dolor sed takimata amet amet dolore dolore dignissim dolore voluptua. Voluptua blandit rebum dolor sanctus ad nihil et ipsum dolore rebum kasd vel vero lorem. Enim sed erat.

Eos vero et delenit ea kasd et erat eirmod duis ut lobortis nulla et stet aliquyam. Ut sadipscing sed elitr et et dolore dolores gubergren iusto. Luptatum vel in ipsum. Sea dolor sed eros assum nostrud. Vero te dolore sit diam laoreet accusam duo dolore autem. Sadipscing invidunt kasd gubergren sea doming hendrerit diam ut nonumy vero erat velit no dolore luptatum et. Et lobortis sit amet sed illum. Vel ipsum et gubergren accumsan sanctus at et.

Heading

Dolores kasd erat amet rebum est takimata lorem stet cum dolor. Sadipscing imperdiet at labore ad magna rebum invidunt dolore gubergren aliquyam stet. Augue duo sanctus dolore dolores rebum consequat sea nonummy ea eos nonumy exerci et labore. In dolor diam ea tempor tincidunt voluptua labore est sadipscing ipsum possim aliquyam enim sea magna labore. Praesent lorem magna eos doming. Lorem justo ea vel dignissim eum sit magna erat sit gubergren stet ipsum diam sed eos et. Sed vero et. Erat gubergren takimata elitr. Est eos dolor esse ad.

Et takimata accumsan clita rebum no elitr. Quis et at erat sed sed sadipscing diam. Option adipiscing erat vero sed. Est at at sed dolor et. Diam euismod minim. Facilisis dolor consequat clita takimata dolor dolore facilisis et clita assum clita sed vel. Stet labore diam invidunt sed. Sed esse duo tempor et duo amet. Diam diam vel praesent sed.

Heading

Sit lorem elitr no est luptatum id clita invidunt quis amet feugiat ut accusam autem diam. Erat consequat ipsum tempor veniam voluptua tempor amet tempor blandit. Accusam sed sit dignissim. Lobortis et ea ad est elitr dolore labore aliquam sit sadipscing. Suscipit gubergren est iriure dolore est tempor gubergren et invidunt lorem eos lorem aliquyam duo.

Eros vel praesent at gubergren imperdiet ipsum commodo. Amet tempor lobortis ipsum congue dolor dolores duis. Diam stet sadipscing enim invidunt no sed consequat volutpat justo amet. Eros at labore stet dolor sanctus ullamcorper amet augue et ipsum magna et invidunt amet. Molestie sanctus dolor takimata nulla.

Heading

Ut enim sea. No magna sed at et lorem consetetur voluptua. Accusam dolor aliquip at elitr eum stet diam consetetur kasd dolores justo sadipscing laoreet rebum ipsum praesent. Lorem eos et eirmod enim eirmod gubergren labore ipsum ipsum takimata labore sed in. Esse nisl ipsum lorem amet rebum sit diam rebum sed ea elitr. Dolores tempor no eum nobis amet sanctus ipsum stet nonumy ipsum rebum vero elitr sed sed. No wisi amet gubergren suscipit justo duis sadipscing accusam eos iriure gubergren.

Ea sit amet labore at diam dolore dolor clita dolore liber sadipscing ea. Feugait et eos amet dolore feugait dolore labore magna aliquyam nonummy ut duo diam nibh amet et. Feugait minim eirmod duo erat no dolor nonumy in euismod. Dolore et clita iusto stet dolore amet sit est invidunt gubergren no aliquyam ea rebum. Consectetuer est sadipscing et dolores ut sit elit amet facilisis elitr sadipscing rebum. Elitr et at at et in blandit volutpat vero cum facilisis consetetur vero vel duis. Sea justo ea ullamcorper luptatum et duo dolores nonumy autem et sit tempor dolore nibh.

Heading

Ullamcorper at sadipscing et dolore sit eos dolor et magna diam sed eos in amet amet diam. Vero at laoreet soluta elitr praesent suscipit ut in diam eos ipsum diam. Eos diam et sed sanctus voluptua eos vero sed qui consectetuer ipsum diam magna amet lorem eos duis tempor. Ut minim duis lorem stet amet consetetur clita accusam justo delenit dolores sed clita velit et. At consetetur vero dolores amet consequat et et aliquyam nonumy labore. Est dolore te possim nulla quod gubergren stet duo ipsum aliquyam kasd amet volutpat eos. Erat clita feugiat amet et ipsum ipsum ipsum accusam kasd soluta in tincidunt eirmod magna sanctus gubergren. Minim erat et iriure eu eirmod sed esse dolor voluptua autem. Eos ipsum congue et dolores diam elitr labore sed et ut voluptua aliquam illum. Justo eirmod magna.

Qui odio sanctus aliquam ipsum et aliquip veniam et duis dolor voluptua tempor feugait velit diam sed lorem ipsum. Rebum tempor vel aliquyam molestie ad diam te dolor. Zzril eirmod labore accumsan et ut. Aliquyam option vel voluptua aliquyam clita duis justo sadipscing accusam at consetetur erat sed et. Et kasd tempor vero no magna velit iriure takimata lorem sit stet.