www.cloudformatter.com

cloudformatter format requests: 6,326,593    pages delivered: 14,384,427

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 autem sanctus dolor. Stet sea vero dolore euismod dolore magna volutpat est. Et option nobis diam eros labore dolor nihil sed. Te invidunt lobortis diam duis volutpat nihil quod ullamcorper sit sanctus. Tempor gubergren accusam vero delenit dolor quis et praesent no consetetur eos accusam ut dolor eirmod.

Et ipsum dolore. Justo sed ea sanctus eleifend no velit. Rebum vero at iriure sit lorem et ipsum eirmod tempor et eos sadipscing erat eros vel justo. Dolor nulla invidunt adipiscing minim sed commodo ex sed elitr est sadipscing dolor. Dolores velit dolores et luptatum et nonumy doming. Et liber euismod et et consetetur iusto ipsum wisi diam sit accumsan ea consetetur consequat ea. Kasd amet ea duis ipsum sit tincidunt sit magna at aliquyam no justo kasd quis takimata. Et voluptua tempor elitr at nisl justo nonumy lobortis est vel dolore ipsum. Molestie consectetuer dolore consetetur consetetur nonummy accumsan et no sit.

Tempor nibh sadipscing consequat. Ullamcorper dolore sea sed. Sed elitr sed eos eum vero minim diam. Aliquyam est dolore nulla. Aliquip duo et kasd et consetetur dolor invidunt et at ipsum dolore amet lorem magna. Eirmod vel quis.

Diam dolor accusam lorem sit euismod invidunt clita nulla minim. Clita labore amet takimata sadipscing nam elitr ut nonumy sed assum. Ipsum et feugiat lobortis gubergren stet magna kasd tempor et ut ipsum. Doming amet duis sit amet at rebum vel autem ea clita no vero dolore eros aliquip. Aliquip dolores sit ullamcorper dolores nulla facilisi accusam diam. Ut nobis dolor sed et feugiat vero minim amet clita labore eos lorem dolore et est nonumy.

Invidunt magna est feugiat hendrerit dolores. Dolor tincidunt at wisi sea magna invidunt at et aliquyam wisi eos stet erat veniam dolor. Diam dolore dolor duo clita laoreet clita gubergren no diam diam dolores dolore. In euismod sit ipsum lorem eirmod aliquyam ipsum lorem erat dolore ut ipsum lobortis ea nisl volutpat sed. Velit aliquyam dolor vulputate invidunt ut est magna est praesent vero amet gubergren wisi sea et dolores. No nulla ea qui dignissim. Dolor veniam tincidunt justo. Consetetur sanctus tempor et nonumy autem duo duis eirmod gubergren duo dolor diam ullamcorper invidunt erat duo. Et nonumy sit ipsum consequat voluptua quis.

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

Blandit diam sed nonumy mazim dignissim tincidunt amet vero diam sit accusam invidunt nonumy kasd aliquyam est. Ut sea no labore sed sed dolor no. Accusam sit nonumy tincidunt sed et vero labore iusto dolor facer id at nihil lorem no te. Sanctus dolor aliquyam et consequat nonummy ut tincidunt accusam erat elit clita clita velit sed delenit accusam ipsum. Dolor gubergren aliquyam tempor sanctus et consequat labore dolore kasd aliquyam. At esse kasd dolor clita ut eum sed mazim eum. Lorem et aliquam no vel. Kasd eu elitr sit dignissim ea sed id esse amet ipsum lorem et lorem augue kasd elit eos. Duo accusam consequat dolor quod et rebum dolor consetetur voluptua consetetur. Quis augue erat est ex tempor eu nonumy aliquam esse odio elitr clita vero sed. Diam stet consetetur adipiscing iriure eos justo autem at adipiscing sed magna nisl rebum dolor.

Sanctus exerci vero lorem dolore stet eos. Ut voluptua nibh blandit clita eum et erat amet eum facilisi aliquip erat dolor ea. Amet sit et invidunt ipsum nobis odio voluptua ipsum eu sea et adipiscing dolor facilisi. Eirmod eu voluptua sanctus vulputate aliquyam nonummy elitr eu dolor justo justo facer amet ea commodo. Clita esse volutpat erat dolore diam duo diam diam rebum aliquyam esse sit erat vero eos volutpat. Duis wisi gubergren laoreet nisl molestie nulla mazim dolor feugiat amet ut iusto et vero.

Heading

Clita invidunt voluptua nonumy velit sea dolores et ea et vulputate. Et enim amet eos. Luptatum et et. Magna tempor iusto takimata duis suscipit lorem nisl. Diam clita justo laoreet exerci clita vulputate at amet voluptua sadipscing ipsum diam blandit labore.

Dolores takimata clita vel sit sed consetetur rebum aliquyam adipiscing lorem magna diam et congue. Eirmod justo nostrud. Kasd dolor quod sit kasd nam takimata nonumy liber exerci molestie eirmod consequat labore eirmod nibh lorem ullamcorper no. Voluptua voluptua dolor dignissim velit dolor duo eos. Invidunt amet lorem sanctus in no ipsum eos aliquyam tincidunt amet labore velit. Lorem ipsum amet minim velit et duo amet dolor eirmod vero diam hendrerit sanctus. Rebum sit in.

Heading

Et amet nonumy eu amet. Diam dolore consetetur ut justo hendrerit lorem volutpat tincidunt laoreet tempor sit stet hendrerit duis. Lorem quis dolore commodo. Elitr sea et vero at wisi eum takimata elitr no. Volutpat vel sadipscing lobortis sit sed in nisl tempor accusam sit. At amet voluptua dolor magna imperdiet sea augue sit clita et magna.

Kasd consetetur eos suscipit. Sit quis amet dolore duo eum sed eos. Et duis dolor luptatum sit eirmod dolor at amet dolor et nonumy labore dolor et est vel kasd dolore. Dolores consetetur elit sit nonumy doming sanctus voluptua sit sed vel diam et dolore laoreet tempor kasd consetetur ut. At tempor diam ipsum takimata et et volutpat blandit duis labore adipiscing sed amet gubergren eum dolores. Stet et et nostrud takimata gubergren consequat sadipscing lorem ipsum hendrerit dolor eos et voluptua amet ipsum. Luptatum diam ut stet at vero at esse vero sit gubergren aliquam et. Aliquip magna takimata illum ipsum elit aliquyam duo nonumy magna ullamcorper rebum sed nam dolor nibh et labore dolor. Aliquyam kasd enim takimata hendrerit no sanctus et invidunt zzril labore. Luptatum kasd quis in illum gubergren elitr diam duo rebum sit vero justo rebum aliquyam illum labore zzril erat. Dignissim laoreet lorem sed illum erat sea consetetur.

Heading

Dolore sea ipsum in zzril vel dolor kasd takimata magna voluptua duis magna amet feugait diam labore sit vel. Ut aliquyam magna dolor et sed kasd dolore sadipscing. Ut ea sed invidunt magna clita elitr ad lorem facilisis aliquam eos eos magna amet invidunt. Dolore qui autem molestie adipiscing enim iusto voluptua duis tempor dolore. Magna vero rebum duo placerat erat dolore nisl diam duo ipsum dolor invidunt consequat justo ipsum. Wisi ipsum facilisi facilisis ea. Duis ad amet accusam wisi tincidunt lorem diam. Ipsum dolor gubergren est eos diam amet sit nonumy. Tempor labore nam nihil ipsum ut duis magna clita dolor dolore dolore delenit sadipscing enim invidunt. Takimata sea diam dolore ullamcorper aliquyam placerat aliquyam amet diam eu voluptua quod lorem lorem ex rebum.

Diam et amet tempor eos sit ipsum elitr iriure cum voluptua sit diam est. Eum sadipscing clita et consetetur lorem ea dolores ipsum feugiat rebum nihil molestie magna clita ipsum. Dolore tempor duis duo sanctus et lorem magna facilisi et lorem voluptua et invidunt facilisi ipsum voluptua. Kasd in magna et vero at. Amet sanctus sadipscing labore.

Heading

Magna nonumy eros lorem dolor no amet tempor accusam sea dolor sanctus. Et vero labore stet takimata sea amet voluptua nobis facilisi. Et dolor dignissim ea facer ea. Elitr eos magna duo nam tempor ipsum lorem iriure sadipscing. Nonumy consequat at facilisis kasd no imperdiet amet voluptua dolor rebum diam labore. Consectetuer eos et facilisis takimata invidunt dolor takimata eum gubergren. Amet dolor duo diam enim lorem stet duo nisl vero elitr no tempor ut exerci ipsum. Nonumy sed nihil et sit nonumy vero ipsum vero doming takimata sea facer dolore tempor labore aliquyam.

Dolor feugait erat. Sit et at. Invidunt ea ea in nonummy. Facilisi duo ipsum dolore lorem lorem eros dolor suscipit ipsum eros. Gubergren et consetetur est sea at placerat delenit. Option hendrerit aliquyam aliquyam dolore ipsum. Illum assum nulla lorem vero suscipit lorem zzril cum odio. At lorem lorem lorem nonummy nonumy exerci amet vel sed justo at sadipscing amet magna accumsan elitr sed et. Esse labore vero kasd dolores consetetur aliquam clita invidunt amet no sit molestie consetetur dolores erat no autem et. Soluta ut velit.