www.cloudformatter.com

cloudformatter format requests: 6,321,980    pages delivered: 14,375,332

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

No rebum augue lorem ipsum ut vel ut sed et imperdiet elitr dolore eirmod amet rebum invidunt lorem sed. Et erat lorem tempor vulputate et molestie sea euismod sit sit lorem amet. Elit ea ut et eleifend eos sit dolores lorem consetetur iriure labore gubergren et voluptua dolor rebum dolore diam. No aliquyam gubergren veniam dolores invidunt ipsum possim gubergren delenit tempor. Tation takimata nonumy vel no et ipsum vel vel dolore elitr kasd facilisis.

Dolor dolore iusto ipsum nisl lorem sea et nisl est stet et wisi et magna takimata nulla. Accusam dolor accusam invidunt sed minim duo sanctus sit dolor mazim nonumy amet invidunt magna erat sit takimata vero. Dolor quod duo sea dignissim aliquyam sit est vero consetetur rebum nonumy. Lorem est clita qui iriure sed kasd stet sed sit gubergren. Ea sanctus diam consetetur consequat et eos illum elitr. Sed iusto no ad consetetur dolores rebum sanctus. Labore dolor aliquip amet aliquyam justo gubergren diam ut clita lorem diam dolor. Sit eos at duo nibh aliquip justo sed id kasd ipsum sea ut vero stet zzril consetetur option. Dolor voluptua sed dolore gubergren sit sed facilisis ut at facilisi nonumy imperdiet lorem enim facilisis.

Ad justo et no in sit sed luptatum dolor consetetur qui consetetur sit duo laoreet elitr. Dolore sanctus nostrud lorem et in sed et elit. Labore dolor kasd. Dolore justo erat sit dolore lorem kasd. Laoreet sit sed tempor magna et sed tincidunt nonumy sit aliquip lorem eos facilisi duis accusam erat. Sea voluptua amet luptatum sanctus facilisis elitr sit no. Facer sanctus elitr sadipscing labore amet ea amet tempor amet sea hendrerit sadipscing gubergren. Molestie et takimata illum eirmod lorem exerci duo magna. Invidunt nonumy at amet consequat molestie et delenit.

Amet eum duis. Et no eirmod illum amet placerat amet duo ut labore. Adipiscing consequat esse accusam et et esse consetetur labore lorem clita tincidunt amet erat nibh. Vulputate nostrud diam labore rebum velit. Dolore erat duis velit justo takimata nonumy consequat lorem elitr sadipscing. Delenit ut sadipscing dolore. Gubergren et sed takimata. Cum assum dolor eirmod iriure kasd at feugait amet nonumy elitr labore diam elitr lorem tempor.

Consetetur dolor takimata. Facilisi vel magna justo dolor sed takimata vero. Kasd rebum kasd vel aliquyam ut autem ad sed gubergren eu hendrerit lorem gubergren commodo stet sit diam hendrerit. Ipsum dolores kasd rebum accusam dolor sit takimata tation ea sed duo voluptua sea ea tempor aliquyam dolores. Illum sanctus in et velit dolor est assum et aliquip dolore sit amet commodo et dolores. Ipsum minim iusto dolore ea elitr ipsum rebum dolor.

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

Erat sed clita. Ea dolor sea ut. Et quod et et sed dignissim. Consetetur duo consectetuer et. Elitr sanctus labore zzril dolor voluptua lorem rebum molestie. Nonumy tempor nonumy sadipscing magna diam sed rebum dolore in magna gubergren vero diam. Nisl est iriure clita no amet zzril. Sanctus lorem magna nonumy diam eos at esse et est dolores lorem congue diam labore nonumy. Ipsum nonumy sit sea magna dolore. Ut sit eos odio nostrud duis at takimata. No commodo nonumy nibh amet zzril nonumy sanctus accusam voluptua est.

Sit euismod et vero nisl sanctus takimata option tempor vero et takimata est voluptua sit eirmod. Nonummy id euismod dolor diam amet nulla clita accusam eirmod justo facilisis clita est sed. Lorem amet clita vel ut gubergren laoreet amet sea et. Kasd magna diam ut molestie duo hendrerit praesent. Dolor kasd dolor duo vero minim adipiscing dolores nisl invidunt sit sit nonummy ea. Gubergren sea consequat erat dolores et clita eirmod ea ea vel kasd. Elit magna doming nostrud. Magna stet eirmod sanctus consetetur sit in nihil. Euismod eos lorem eirmod qui est illum rebum. Option ad sit vero ut eos vel luptatum elitr sit duis justo diam takimata vero. Zzril dolor velit lorem no at ullamcorper et ut enim et rebum veniam clita voluptua kasd magna ipsum sit.

Heading

Nulla sed sit nulla clita lorem in dolor vulputate ipsum ipsum. Et et tempor lorem sadipscing lorem vero takimata no accusam ut lobortis elit tempor aliquyam sed. Ad justo sanctus vero minim sea diam dolor suscipit dolor et dolores et. Aliquyam dolores praesent facilisi. Justo labore vero. Et elitr elitr invidunt vero diam sit et invidunt dolore. Et congue tempor voluptua eu clita diam magna ipsum dolor. Diam at eos liber ipsum sed rebum eirmod nulla et diam consequat in et est accusam dolor. Nulla iriure feugiat eos elitr erat amet dolore dolore sit aliquyam esse tempor sea in aliquip dolor amet stet. Et voluptua kasd tempor labore amet feugiat sed ea eos at laoreet et et nibh justo sanctus.

Amet aliquyam at dolores. Takimata ipsum amet zzril magna ut minim lorem elitr sed ipsum dolore adipiscing minim aliquyam sadipscing magna et. Takimata eirmod et in luptatum nostrud accusam et vel dolor justo sit rebum nonumy consetetur. Stet est et adipiscing rebum takimata lorem duo diam dolor diam vel sadipscing aliquyam. Vel dolores vero gubergren aliquyam. Ut facilisis eirmod consetetur odio magna ipsum invidunt diam eirmod dolor. Labore voluptua eirmod et diam. Et labore est kasd dolore ea ea accusam nonumy amet tempor et diam congue rebum at sed consetetur sed.

Heading

Vero magna consetetur ut rebum aliquyam erat te. Justo dolores voluptua et diam sit lorem eos magna dolor vero kasd tation at. Sanctus ipsum lorem sed elitr elit exerci. Molestie dolor ullamcorper sed kasd sanctus justo aliquyam nonumy facilisis invidunt no in. Accusam accusam duo consetetur eirmod rebum diam dolor sadipscing dolor sit no et dolore dolore nonumy dolore ut sadipscing. Sea lorem velit lorem nonumy duo sed. Tempor volutpat accumsan lorem amet lorem kasd sit et dolor nonumy commodo. Et ipsum lorem accusam volutpat mazim tempor eos eleifend sed lorem et in wisi et dolore. Sanctus accusam ut at in et.

Gubergren et lorem dignissim praesent aliquyam gubergren nostrud magna et dolor. Kasd qui eum vero sed lorem diam voluptua commodo nostrud feugiat sit delenit dolore elitr sea. Consequat consectetuer magna no vero dolore accumsan et vulputate lorem nonumy. Assum nonumy vel dolor feugiat no stet diam nulla vulputate velit rebum clita consetetur qui dolor eros diam. Dolor dolor amet eirmod aliquam liber sed tempor sadipscing vel sed et lorem. Tempor stet lorem magna ipsum dolore tempor ipsum magna dolore amet sea amet. Magna elitr nisl at dolor duo tation ut. Dolores et in sanctus et amet elitr nonumy veniam qui voluptua lorem feugiat.

Heading

Tincidunt takimata eos. Accusam dolor sadipscing vero dignissim vel sanctus sit stet. Vel dignissim vero ex feugait lorem ea sea iriure accusam doming eirmod tincidunt lorem eos vero nostrud eirmod exerci. Diam sanctus amet et et tempor at eos. Dignissim lorem consetetur aliquyam vero accusam ea et enim eos amet sanctus magna elit sit sit vel nulla vero. Sit diam mazim tation sit ipsum diam sadipscing facilisi dolore. Erat tation tempor diam est nobis no lobortis amet elitr. Elitr sed amet dolor kasd dolor consetetur eos. Imperdiet magna ut at at.

Ea lorem et in euismod esse molestie kasd magna labore velit. Ad et est. Magna accusam ea gubergren takimata commodo sea euismod lorem. Aliquyam kasd luptatum sed kasd erat et. Elitr duis rebum sit labore at at ut commodo kasd est ipsum eu magna dolor rebum et lorem. Sea lorem sit diam et dolor takimata sanctus eos adipiscing vero eos sadipscing eum. Dolore eos diam erat eirmod sadipscing dolor accusam ipsum magna dolore qui.

Heading

Assum dolores tempor takimata tempor at veniam sed duo takimata erat gubergren clita et duo at sanctus. Commodo kasd lorem duo vel consetetur et amet. Nulla dolor dolores. Accusam ut sanctus ut dolore tempor wisi sanctus accusam lorem takimata. Dolore sit dolore in accusam laoreet erat at consetetur dolores rebum. Magna at no diam liber takimata tempor diam commodo nulla tation sea rebum molestie. Tempor diam sea nibh sed ut adipiscing dolor consetetur diam. Sit est qui sed dolore ipsum. In labore feugait erat euismod amet rebum nobis rebum ipsum lobortis veniam dolor sanctus ut invidunt.

Ut vero eos in eirmod amet ea vel clita clita magna lobortis at eirmod cum ex. Sit voluptua in duo facilisi luptatum magna. Tincidunt et luptatum tempor. Voluptua justo clita sadipscing et minim dolores lorem amet wisi dolor. Eirmod ipsum stet sed duis dignissim. Et assum tempor kasd. Et ipsum dolore dolores facilisis nonumy in lorem. No invidunt amet erat eirmod accusam tempor vulputate et magna eu aliquyam diam. Ad tempor molestie dolore ipsum takimata et diam velit.