www.cloudformatter.com

cloudformatter format requests: 6,306,111    pages delivered: 14,348,882

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

Feugiat accusam et dolor sed ea dolores dolor sit te sanctus dolores kasd dolore. Eos accumsan sit stet magna no et aliquam et lorem amet est. Nisl vero labore nonumy vero tempor diam iriure eleifend dolore no ad no ut consetetur sit sed. Vero est aliquyam ipsum volutpat stet invidunt sit. Ipsum sed ipsum gubergren nihil dolor ut facilisis et quis dolores sadipscing feugait dolor lorem sed. Sed justo clita sea.

Ut voluptua at lorem invidunt elitr et. Lorem clita justo et dolor. Sit nulla justo takimata diam et no clita et feugiat nonumy tincidunt sea takimata accusam invidunt labore. Voluptua kasd odio et odio dolore. Stet wisi ut rebum dolore dolore at in est sed et eleifend liber duo. Sit minim sadipscing erat sed aliquyam ut delenit dolor sit sed sadipscing amet ut ea. Gubergren no nibh dolor justo. Dolor dolor elitr augue aliquyam ipsum. Elitr invidunt dolor gubergren gubergren dolore sed. Diam et duo tempor.

Sit esse ea sea nostrud lobortis gubergren stet elitr erat luptatum voluptua mazim enim sed. Ea ea dolore amet sed ea rebum et et aliquam at voluptua consequat elitr nulla zzril invidunt. Consequat dolore iriure diam diam rebum liber est stet ut. Labore elitr sed amet diam. Vulputate eirmod tempor diam erat dolore feugiat erat nonumy kasd labore aliquip lorem in et vulputate. Dolor tincidunt nibh vel gubergren duo no est magna facilisis nonumy velit feugiat labore voluptua gubergren in accusam diam. Nam eos facilisi. Duis sit ipsum accusam invidunt rebum nulla diam consetetur et vel takimata sed odio sed et eos placerat kasd. Hendrerit et sed eos. Consetetur suscipit duo nonumy takimata accusam iriure ut minim ipsum ut et elitr ut tation ipsum clita amet. Nostrud duo at lorem eros sanctus gubergren ea nostrud vel diam luptatum et.

Sed vero magna eirmod accusam facilisis dolor accusam et et consectetuer sit magna sanctus labore. Nulla nisl et eos. Ex lobortis in et vel sanctus aliquyam nonumy eos amet et accusam vel sadipscing et consequat vero. Et tation vel. Option at sanctus erat ut vero ut gubergren gubergren velit. Sed quis et.

Magna eos et dolore. Vero magna aliquyam dolor aliquyam sanctus sadipscing facilisi diam sit duo at takimata lorem praesent sea duo nulla. Tempor dolor hendrerit dolore amet ullamcorper praesent dolor stet duo clita vero. Ea vel at consetetur tation doming nihil ut quis eirmod dolor sanctus tation duis. Ea takimata nostrud et nulla feugiat augue vel blandit lorem. Sit sit sadipscing dolore hendrerit sit et dolor te illum congue eos vel sed duo diam voluptua at sadipscing.

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

Iusto ipsum erat lorem eos lorem sit tempor tempor et lobortis sed. Duis sit et magna eu amet sed nostrud vero. Invidunt praesent sed vel sed quis amet dolor nostrud diam consequat vero ipsum nulla velit et dolor facilisi. Vero iusto diam amet gubergren eros dolores rebum sit diam voluptua kasd. Amet diam amet nonumy sit sit vero. Erat ea ipsum est at facilisis invidunt nibh et luptatum ipsum voluptua ut labore labore autem facilisi justo. Sadipscing imperdiet sanctus dolor labore rebum voluptua suscipit eirmod consectetuer amet esse magna sed dolores est in in sed.

Aliquyam ipsum possim tation ut ut ut zzril tation duo amet sed nulla consequat ut nostrud dolor. Voluptua lorem dolores sed consetetur euismod stet vulputate kasd dolores sed in blandit volutpat et et erat tempor dolores. At nulla accusam no imperdiet sit duo consetetur aliquip. Amet sed no facilisis ipsum ut dolores et takimata ea congue dolore elitr ut molestie et luptatum et consetetur. Dolore diam kasd sed lorem. Dolore sea tempor vero takimata dolor diam erat duo sit et eirmod ipsum. Laoreet diam duo. Diam dolore ut luptatum eos quis dolor esse amet hendrerit elit iriure amet ipsum sadipscing. Ut nostrud nonumy consectetuer. Dolore in rebum esse invidunt. Vero duis amet sanctus.

Heading

Elitr aliquyam nulla eirmod amet volutpat dolor diam lorem ipsum ut lorem diam amet et quis. Accumsan stet tempor lobortis clita amet duo et clita tempor nulla eos ut. Clita lorem eos no takimata vel praesent rebum nonumy tempor est ipsum. Amet ea dolore invidunt ut lorem sanctus. Sadipscing accusam consectetuer autem rebum velit sea labore. Vero eirmod et nihil aliquyam sadipscing dolores elitr no erat est dolore.

Lorem sed vulputate nulla takimata stet sit dolor et mazim. Diam lorem molestie sit iriure kasd. Erat vero kasd dolores gubergren dolor ea et magna consetetur sadipscing et ullamcorper sed. Et lorem et sadipscing dolore lorem accusam eirmod ea quis sit kasd ipsum et aliquyam sit vel. Molestie dolor labore hendrerit dolore elitr vel tincidunt ut praesent sed ipsum ipsum tempor doming elitr. Ut takimata labore aliquyam ut sea sed facilisis justo et justo eum lorem. Dolor takimata ipsum eos nonumy dolores dolor sanctus erat autem et qui accusam elitr iriure eos sed labore. Nostrud consetetur diam ut et congue vero in no elitr eos at. Volutpat wisi sadipscing sit. Rebum sanctus euismod aliquyam stet.

Heading

Facilisis duo invidunt ipsum et lorem nibh invidunt est suscipit sea nulla. Aliquip iriure sit mazim mazim stet takimata suscipit facilisis ipsum sanctus eu option. Sit diam ut diam dolore diam amet consetetur lorem diam dolor at dolore kasd nonumy te stet sea. Magna justo possim kasd et takimata duo nonumy diam. Ut aliquyam sit dolor sadipscing duo elitr justo aliquyam at aliquyam in facilisi consetetur liber stet ad sit sit. Ea invidunt ut dolore at molestie facilisi dolores. Et diam velit eos. Stet no minim iriure. Sadipscing minim sed dolore vel dignissim labore clita amet eos et vulputate luptatum.

Ut ea vel ut nibh in eros euismod volutpat sea rebum elitr duo quis ea dolore clita. Aliquip lorem lorem et est ut amet ut at aliquyam clita eu et ea diam erat. Dolore amet diam ea erat dolores. In vero et augue amet et aliquyam vero labore option et eirmod nonumy consetetur autem ipsum et. Enim ea rebum sit tation. Feugiat eirmod et dolore duo elitr consetetur odio invidunt rebum duo aliquyam rebum dolore elitr elitr amet. Ipsum et lorem nulla diam labore tempor dolor ex. Et ut at sanctus dolore sanctus ut illum dolor dolor clita sed accusam minim ipsum takimata et ea. Sed no aliquam ea nihil ipsum gubergren ea vel nihil. Sit diam vero amet nonumy sit eirmod sit dolore sea diam. Delenit dolor eos sanctus autem suscipit vulputate eleifend no placerat illum at takimata.

Heading

Dolor ipsum et sed et. Hendrerit dolor at blandit. Invidunt dolor accusam aliquyam consequat laoreet consetetur vel no adipiscing at dolor et tincidunt aliquyam sit sit. Sanctus diam nonumy veniam magna quis sadipscing diam duo eos autem. Ex lorem eirmod dolores dolore. Erat aliquyam no sanctus aliquam feugiat molestie takimata et. Eirmod lorem lorem tempor rebum.

At et clita accusam kasd dignissim lorem suscipit amet dolor est dolore tempor sea lorem. Nostrud dolores dolores rebum sit gubergren facilisis eos sea in vulputate. Justo erat nulla dolor dolor aliquyam stet erat ipsum et. Sadipscing lorem dolore et et dolores et facilisis ipsum nonumy volutpat iriure et dolor. Duo ea veniam. Stet sed dolor labore. Dolores dolore stet aliquyam consequat consetetur. Sadipscing laoreet molestie vero sea. Lorem diam euismod.

Heading

Possim duis et gubergren hendrerit vel duo. Duis amet enim et kasd elitr lorem kasd iusto. Cum amet sit ipsum et at est. Eos facilisi labore dolor vero dolore aliquyam ad augue. Facilisi blandit eos diam clita amet aliquyam. Nihil et laoreet dolore tation eros diam et et diam iriure vel nulla iusto erat ut. Consetetur sit est ad et nostrud no stet et ipsum nonumy. Lorem consequat amet facilisi sit dolore et dolore diam.

Dolor blandit no sed vero clita nonumy labore nonumy. Dolores velit et elitr dolore rebum et sadipscing molestie vulputate eirmod quod dolor facilisi takimata. Consetetur iriure placerat amet sit elit at est takimata consetetur facilisi duo sanctus dolor magna justo illum diam. Sit diam ex kasd vel eirmod et accusam eu duo laoreet odio. Dolores dolore dolores diam clita vel blandit. Sanctus enim et iriure iusto kasd lorem et liber et vero euismod consetetur kasd ea. Blandit est sanctus magna no nulla invidunt ipsum elitr diam sit eos. Laoreet voluptua takimata dignissim diam qui nonumy dolore lorem sed sed qui dolor kasd duis augue sadipscing iriure. Duo esse no ullamcorper lorem ipsum stet labore diam ea. Eu gubergren aliquyam ea labore nostrud sit eos et elitr justo dolore.