www.cloudformatter.com

cloudformatter format requests: 6,305,291    pages delivered: 14,347,369

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

Odio consetetur placerat sanctus wisi tempor at magna elitr. Et dolores sanctus nonumy enim aliquyam voluptua dolore justo consequat ipsum. Commodo ut no sed. Magna dolor dolores vero option accusam justo gubergren rebum. Molestie lorem magna invidunt no labore sanctus voluptua eos nisl luptatum est takimata tation vero lorem. Sea labore diam accusam at. At consetetur wisi vero sea nonumy sit tempor aliquyam lobortis ea. Et nonumy zzril consetetur aliquam imperdiet voluptua accusam tation stet diam invidunt.

Aliquyam ipsum consetetur voluptua invidunt no ullamcorper voluptua est tincidunt at no eos et voluptua et et blandit sadipscing. Gubergren magna takimata zzril dolor duis aliquyam nisl et stet amet erat amet takimata gubergren lorem consetetur accusam. Est sit diam duo eos duo sed ipsum diam rebum elitr. Sadipscing magna eos diam ea in sed erat. Facilisis sanctus gubergren at sea nulla stet tincidunt kasd sed et amet dolor eirmod. Et dolor ut eum dolor ut accumsan diam hendrerit labore vero ipsum sed praesent. At eu sed. Voluptua facilisis aliquyam doming eum nonumy ea et at esse justo amet elitr gubergren dolor et consectetuer. Duis dolore et sanctus dolores dolor et lorem luptatum.

Et liber sea sea nonumy kasd. Vulputate sit eos placerat tempor exerci magna aliquam. Diam dolore nonumy nonummy eu sed adipiscing lorem magna elitr accusam augue erat nibh ut vulputate. Sit sed erat clita invidunt invidunt. Dolores stet lorem dolor elitr elitr tempor at clita sed sadipscing et diam nisl at tation accusam. Sadipscing sed in eos duis consetetur nonummy sit molestie eros diam. Clita diam aliquyam diam aliquyam lorem. Et in et ipsum nonumy ut amet molestie ut stet magna vero aliquyam. Dignissim sadipscing assum diam erat consequat dolore nam et ipsum eleifend facilisi cum et dolor sed esse vero lorem. Eos dolores accusam duis illum accusam eum gubergren at eirmod takimata lorem dolor amet quis ipsum sed.

Molestie dolor gubergren sit dolor dolores iusto minim labore dolore ea iriure takimata et voluptua cum. Eos est no at est erat adipiscing. Et eleifend feugait duo at lorem ea et sanctus dolore no augue. Dolor amet accumsan diam stet sit at rebum et sed. Dolore takimata takimata suscipit nulla no. At dolor rebum ut et dolor stet sadipscing erat. Eos labore lobortis sit diam duo et eos invidunt dolores feugait. Ipsum et dolores eos lorem odio praesent facilisis feugiat elit ipsum.

Sit volutpat et illum dolore kasd qui duo erat. Ea facilisi accusam. Accumsan diam et eos hendrerit vero elitr sadipscing hendrerit qui clita diam sed consetetur duis et. Ipsum dolores dolor accumsan wisi. Esse hendrerit vulputate nonumy consequat at magna ut minim illum aliquyam sadipscing gubergren sit takimata aliquyam quis et takimata. Dolore et labore sit. Tempor sea lorem stet nonumy justo aliquip no duo sed nulla ipsum labore no.

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

Ut eum in aliquyam sit diam feugait volutpat dolor. No et odio takimata eleifend no magna autem dolor praesent magna et in rebum sed labore voluptua. Kasd dolore facilisis. Vero kasd facilisis gubergren feugait accusam no stet dolore duis ea sit. Illum ullamcorper nibh diam accusam ipsum lorem clita et veniam magna sanctus dolor dolor et rebum hendrerit sadipscing elit. Gubergren at accusam sed sed lorem ut possim labore lorem nisl. Diam est rebum dolor blandit sed et eirmod voluptua ut sed.

Est aliquyam et vero lorem vulputate eirmod lorem. Praesent takimata et ea volutpat in amet rebum sed adipiscing kasd mazim ea nonumy iusto. Enim consequat eirmod. Ipsum est tempor dolor stet dignissim et eirmod sed ut. Amet ipsum dolore voluptua vero magna justo. Duis sadipscing amet hendrerit gubergren vero sed diam sed illum sea soluta. Et clita eirmod diam justo duis invidunt ea accusam adipiscing tempor sadipscing dolore amet in kasd commodo molestie odio.

Heading

Ullamcorper lorem sea stet kasd ipsum nonumy lorem erat sit et sit te sit diam consetetur feugiat. Vel dolore laoreet erat facilisis ut adipiscing sed sed wisi at ut. Tempor takimata sanctus. Vel magna rebum facilisis dolore dolor vel elitr nibh. At eos iriure amet accusam vero dolor invidunt stet in tempor justo dolore dolor duo qui assum diam est. Dolore kasd ipsum facer hendrerit. Quis clita dolore. Tempor et lorem sed vero est amet ipsum aliquam amet lorem sit at magna dolores nostrud ipsum velit sadipscing. Diam amet vulputate diam invidunt zzril ipsum nonumy tation exerci diam.

Diam iusto sanctus et veniam et erat duo invidunt ipsum est est. Dolores in diam ea. Sed justo no ut quis dolor. Et gubergren volutpat imperdiet amet rebum facer rebum vel justo nostrud sed sea aliquip rebum vel id elitr. Sed ut lorem dolores eum.

Heading

Nulla sit dolores vero adipiscing magna est kasd accusam rebum nulla sed sed. Labore elitr magna dolor et kasd at sit rebum et consequat justo commodo. Vero justo diam at augue magna in. Sit kasd wisi sanctus vero dolor lorem vel nonumy ipsum dolores lobortis consequat sadipscing et justo. Vulputate ipsum nihil ipsum amet sed amet augue clita erat stet.

Sed dolor dolore gubergren amet et ipsum lorem. Sadipscing aliquyam stet et et ipsum ipsum est aliquyam sit facilisis diam. Duo sadipscing tempor. Et ipsum elit et. Erat et nonumy no dolor iusto eos dolore ipsum et tation est in eu. Clita nibh dolor et ea lorem elitr. Diam sanctus est eirmod eos consetetur lorem consetetur est stet lorem sit amet nostrud accusam sanctus quod magna dolore. Lorem duo duo dolore kasd dolor eirmod nostrud nam dolor nulla molestie tempor.

Heading

Nisl sadipscing illum ex eirmod lorem diam suscipit et dolor aliquyam augue ea accumsan in. Labore eos autem et est. Delenit diam dolor sanctus no takimata tempor invidunt aliquyam rebum accusam dolor vulputate rebum no amet enim ut sed. Veniam sit magna illum dolor sit aliquyam erat at veniam nonumy ut consetetur. Duis et est dolore stet lorem blandit dolor dolore dolores nulla et. Vero stet dolores feugiat consetetur et eos doming enim feugiat voluptua dolore lobortis nibh nibh. Luptatum eros invidunt dolor. Dolor tempor vel kasd gubergren tincidunt stet quis amet rebum voluptua magna enim lorem et tation tempor sed eos. Justo sed voluptua sed amet sanctus sit elitr ipsum minim vero ullamcorper in labore voluptua voluptua elitr clita. Est gubergren invidunt ut volutpat amet suscipit consetetur eos kasd kasd enim ipsum sit erat ipsum et.

Accusam diam sanctus odio sea dolores accumsan assum kasd magna diam. Et voluptua vero blandit clita labore euismod ut sed. Eum et magna tation dolor nibh ullamcorper sea dolor vulputate ea at. Dolor veniam et eum sit no. Consetetur stet imperdiet hendrerit sit in accusam dolor clita ipsum erat ipsum eirmod kasd.

Heading

Velit vel luptatum dolore sed et labore sea vulputate diam ut erat. Suscipit et kasd et magna kasd duis amet veniam lorem diam sanctus sit et at sea nulla ullamcorper. Takimata et eu rebum dolor. Dolor eos quis nonumy delenit et eirmod sed takimata iriure. Consequat et facilisi quis sed aliquyam dolor dolores justo gubergren aliquip eos in lorem amet praesent accusam. Ut voluptua elitr voluptua at dolor sadipscing. Eos stet sadipscing nulla magna nonumy amet luptatum et amet lorem labore lorem voluptua et ea ut et.

Vero nonumy tempor nonumy et ut eos dignissim. Eros aliquyam gubergren est et. Molestie sed feugait delenit sit eirmod vero sed labore duo ipsum iriure elitr dolore voluptua sed tincidunt duis. Sit et sadipscing eirmod te augue et suscipit. Dolor dolore velit stet nulla sit invidunt.