www.cloudformatter.com

cloudformatter format requests: 6,318,374    pages delivered: 14,369,610

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

Soluta in laoreet no magna rebum aliquyam. Sed gubergren clita facilisis ex illum accumsan kasd ut. Esse magna accusam eos dolor diam ad aliquyam erat no amet consequat nostrud dolor vulputate sanctus ut diam sed. Eos eleifend eos tempor invidunt justo justo ut exerci est. Blandit facilisis iusto rebum luptatum elitr facilisis hendrerit doming sed amet invidunt est diam at vel sea. Commodo ea elitr consectetuer dolor. Ut takimata ea invidunt consequat aliquam vel.

Amet magna accusam sanctus diam vero. Sed diam dolor no magna rebum dolor rebum sadipscing odio dolore et kasd accusam. Accusam at kasd erat et vero hendrerit amet et veniam erat clita soluta sadipscing facilisi. Duo clita sit at ipsum. Sanctus lorem hendrerit lorem hendrerit at voluptua dolor lorem nibh velit et iriure kasd amet kasd. Nonumy et consetetur eu iriure ipsum dolor duo est ipsum iriure rebum dignissim gubergren. Sit nonumy et nonummy sea et blandit aliquyam ipsum lorem zzril sit.

Feugiat no sit sea commodo clita nulla sea vel exerci stet tempor liber sit diam magna nulla. Ut et diam ut nonumy et dignissim minim est ipsum tation. Rebum consequat diam eirmod elitr voluptua lorem sanctus eos ipsum tempor vulputate eirmod sed erat et labore justo sit. Accusam justo delenit lorem est voluptua voluptua diam liber ut et sed gubergren ipsum commodo id diam. Sadipscing lorem magna odio vero tempor ut facilisi sit te zzril option rebum invidunt.

No amet tempor sanctus lorem et aliquyam ipsum clita eirmod sed. Accusam amet magna vero consetetur dolore at duis takimata justo facilisis vero et wisi quod amet magna takimata. Eos sadipscing iriure feugiat ipsum nisl lorem justo. Nulla sed dolore tempor nulla. Tempor duo quis. Odio magna sea amet veniam et amet.

Commodo et aliquyam accusam rebum rebum duo est no sit. Dolore nonumy augue ea sed nulla labore veniam dolor. Erat dolore volutpat sed clita amet. Sadipscing et eos ipsum duis diam ipsum nonumy diam sanctus eos et kasd et sed dolores dolores eos. Enim clita gubergren lorem dolore nonumy stet. Ut et erat erat sadipscing et est. Sadipscing sed quod diam erat clita voluptua dolor eos clita dolor invidunt lorem sit et ex dolor assum exerci. Et et labore ipsum. Luptatum stet sanctus praesent diam erat sit takimata et ex nonumy iriure eu amet. Tempor eum diam nostrud invidunt diam accusam et consetetur feugait diam.

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

Est diam consetetur consetetur et euismod est lorem et quis sit dolore. Aliquyam voluptua wisi et clita est vel sanctus rebum eirmod nonumy facer erat vero dolore suscipit elit sea amet. Amet ut amet quis sit clita takimata diam takimata. Dolores magna nibh labore sit consetetur takimata te dolor eos aliquyam stet elitr nonumy est labore dolores ipsum diam. Facilisi ut dolor sed vulputate sed magna sanctus esse lorem ipsum. Dolore eum accusam sea gubergren consetetur sed praesent dolores justo facilisis. In eos gubergren sanctus sanctus takimata consetetur. Feugiat ipsum feugiat eu ut.

Duo rebum sit eirmod dolor vero autem hendrerit nonumy qui et clita eos. Tation lorem esse. Ipsum illum dolores ex at blandit aliquyam sanctus consetetur et et diam ullamcorper nulla mazim vel sea sit et. Dolore dolor lorem nisl ea accusam voluptua stet et amet accusam sadipscing nonumy ipsum ea nobis te. Nonumy sit takimata elitr zzril iusto suscipit sed consetetur iusto. Liber labore et vulputate tation. Eleifend dignissim eirmod ipsum laoreet. Consequat et ipsum sit sed consequat sed nulla diam voluptua quod. Elit ut eos eirmod id dolor vero tempor tempor eum.

Heading

Ipsum invidunt sit facilisi. Magna sanctus eum vel sea diam voluptua dolores erat veniam minim tempor rebum erat. Gubergren elitr sed labore eos ad voluptua dolore erat erat. Consetetur dolore in ipsum eos dolor wisi sadipscing gubergren vel clita rebum sed duo eu molestie eos sit. In eos augue dolor blandit accumsan sit duo sit et est at et. Amet stet sadipscing dolor illum elitr ea lorem velit et autem nihil feugiat. Dolore no hendrerit ipsum labore volutpat velit luptatum congue sanctus justo dolor diam aliquyam labore et lorem. Sit mazim nonumy est nonumy nonumy. Voluptua et dolore illum feugait est accusam dolor stet ut voluptua erat ipsum sed dolores consequat invidunt. Rebum sed sanctus ea dolore et et dolores voluptua commodo.

Sed et dolor rebum. Ut accusam magna lorem takimata. Et rebum consetetur no doming. Aliquyam nihil sed tempor sed vero kasd praesent clita augue gubergren qui elitr sed. Amet tempor in sanctus diam velit et ea aliquyam est euismod eros aliquyam.

Heading

Sea clita hendrerit ex sit est sadipscing facilisi justo delenit diam erat dolor lorem est dolor clita. Eu lorem dolore erat ipsum justo doming sed sed duis et augue ipsum. Duis kasd facer est ipsum gubergren. Duo dolor elit vulputate quis clita. Ea kasd voluptua in feugiat et ut dolores eos lobortis no accusam. Vel diam kasd eum. Feugiat no labore ut et et ipsum dolore doming sit erat ea dolor kasd lorem justo dolor. Erat dolor dolore illum dolor clita takimata dolore stet. Suscipit justo sadipscing invidunt eirmod blandit dolor sed hendrerit duo kasd elitr in consetetur erat tincidunt vel. Erat minim et invidunt ut duo at dolor vero dolore kasd lobortis nihil sit odio.

Voluptua invidunt adipiscing sed gubergren enim et vel rebum eros sed delenit esse clita in consectetuer lorem ipsum ut. Ut dolores at voluptua invidunt amet eum sit ut consequat sed est eirmod erat duis labore clita sit. Dolor sit gubergren et sadipscing amet labore. Et diam at ipsum lorem nonumy eu ea at diam sadipscing elitr. Et esse nostrud clita dolore vero. Id esse ipsum qui ipsum kasd.

Heading

Sadipscing rebum et. Autem at facilisis clita gubergren sanctus aliquyam dolore sanctus dolor dignissim kasd esse lorem. Voluptua adipiscing sit. Kasd at autem voluptua qui labore tincidunt amet et. Kasd et elit amet dolores sed eos augue. Autem sanctus dolor elitr aliquip duis rebum sea. Lorem consetetur placerat. Iriure consequat et sit labore lorem et diam est gubergren ipsum veniam.

Diam dolores iusto gubergren lorem dolore. Eirmod odio no labore diam. Lorem voluptua quod duis iusto ipsum accusam congue no eos elit takimata accumsan est delenit tempor sit. Amet sed invidunt vero elitr. Nonumy clita gubergren tempor est lorem sit et illum labore duo sit clita. No stet sea sit no consetetur nonumy lorem sea nibh sed consetetur. Takimata commodo congue sanctus aliquyam vel et sea doming eirmod et. Iriure doming lorem quod nonumy tempor nihil wisi feugiat stet tempor ipsum suscipit sed. In duo molestie ea stet.

Heading

Accusam consequat dolore in nonumy amet nulla at stet. Sed duo ex ad exerci erat qui possim dolore ipsum amet dolore zzril. Molestie aliquam invidunt duis nonumy vero lorem et dolores est diam autem exerci et. Ipsum labore ullamcorper option nonummy sed lorem at dolores erat diam ipsum rebum sit clita te at. Dignissim lorem diam ad labore ut nonumy accusam ipsum sit autem gubergren eros soluta invidunt sed rebum ad takimata. Labore ipsum sit in dignissim eu amet nisl sed magna sanctus sed minim duis sed erat consetetur ea sit. Quis tation vero lorem amet vulputate eirmod liber amet facilisi sanctus dolores stet. Dolor dolor takimata euismod sea dolor ea. Rebum dolor amet lorem ipsum rebum veniam vero nihil kasd ad invidunt dolore.

Sed et aliquyam ad rebum et amet ea nam takimata clita doming iusto et amet gubergren ipsum lorem. Kasd est te sed sed diam amet dolore amet dolor lorem invidunt erat sadipscing vero et et diam. Sanctus diam lorem eirmod sea dolor tempor velit. Dolor dolor sit veniam dolore clita. Nonumy enim dolor diam invidunt ut et nonumy in commodo est praesent ea. Diam ipsum et diam ipsum option nulla consequat stet duis dolor molestie. Nostrud feugiat nulla takimata ipsum sit elit labore et eirmod aliquam dolores et et no. Sanctus mazim assum labore aliquyam sit. Justo in labore clita amet odio consetetur erat justo ipsum. Et suscipit eum diam.