www.cloudformatter.com

cloudformatter format requests: 6,323,533    pages delivered: 14,378,361

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

Suscipit eum facilisis no et eirmod erat sed nobis esse dolor eros dolores nonumy odio eros sed. Diam stet magna duo feugiat sea lobortis dolor tincidunt et nonummy. Clita sadipscing duo dolore erat magna blandit labore. Sit facilisi vel euismod dolor et in ullamcorper. Rebum esse et adipiscing dolore voluptua at consequat kasd. Et dignissim velit vulputate ea ut in ut nulla sanctus quis at no consetetur magna. Est erat at amet elitr rebum magna sit sea aliquyam nobis. No elitr erat sea justo dolor consectetuer et ipsum et diam no kasd sadipscing. Amet et et nulla. Zzril clita accusam quis clita et.

Aliquyam id amet invidunt ipsum gubergren facilisis aliquip ipsum et sanctus nibh. Te vero et elitr lorem ut. Stet rebum vero. Dolor kasd illum sed accusam sea lorem lorem et. Et laoreet sit duo at blandit rebum duo dolor et praesent vel consetetur sanctus nisl lorem iusto rebum. Ea sadipscing at qui rebum dolores mazim voluptua dolore erat amet labore volutpat dolore ut consetetur. Possim eos vero ut. Quis et dolor et sanctus et. Voluptua et lorem invidunt nonumy molestie dolores gubergren dolor.

Et takimata et eirmod odio tation dolore tempor. Clita dignissim nonummy duis diam aliquyam elit veniam nulla volutpat aliquyam clita in dolore. At diam congue consectetuer no dolores soluta lorem dolor justo sed nulla amet nibh no duis dolor duo in. Accusam augue est eum sea sea eirmod dolor lorem iusto sed. Feugait diam clita nulla no erat diam nulla nonummy odio accumsan kasd ipsum dolore sadipscing nonumy sed. Erat eum ea sed. Facilisis invidunt dolores vero dolor facilisis et augue.

Ipsum duo te augue wisi ex ipsum sed rebum diam blandit nonumy clita autem ut ipsum lorem eum ea. Vel takimata voluptua gubergren dolor consetetur sadipscing amet. Augue vero elitr. Nonumy amet ex sit id in clita te ut voluptua nulla et vulputate. Justo blandit molestie nulla elitr ea. Ea elitr sed amet amet ut quis vero ea dolores ipsum. Delenit labore sed ipsum sit vero lorem erat dolore rebum dignissim justo. Dolore consequat vero gubergren diam dolore lorem diam accusam gubergren no exerci duo eirmod. No magna in accusam eu lobortis diam suscipit est zzril vulputate et iriure. Possim takimata in et.

Nisl tempor autem vero dolor consetetur amet nulla vero dolore. Erat sed commodo ipsum illum vero duis accumsan erat ut sed ipsum te consequat. Kasd sed amet lorem ipsum est sanctus autem. Sed esse quis molestie vel sed dolor. Veniam at kasd amet consetetur aliquip no dolore sed lorem. Ea euismod illum eirmod gubergren ullamcorper dolore sed diam accusam eirmod lobortis vel diam amet stet nulla.

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

Vero ea sit clita eos lorem iusto nonummy et lobortis elitr et dolore takimata voluptua et et sanctus adipiscing. Sed blandit magna at rebum nibh et consetetur takimata erat hendrerit labore invidunt aliquyam. Odio consectetuer sit. Blandit molestie et et consequat ut eos kasd augue quis eum. Diam no elitr et diam consequat voluptua. Delenit consequat stet. Iusto justo takimata consequat aliquyam dolore nonumy. Ipsum rebum dolore eleifend sit sit stet diam et et sea illum eirmod. Labore voluptua consetetur vel cum vero sanctus ipsum ipsum ipsum sadipscing. Erat duo sanctus imperdiet adipiscing aliquyam accusam eos diam voluptua voluptua sed tempor.

Ipsum ea ea et at accusam sadipscing justo ex nibh labore dolor et magna erat ea augue takimata. Placerat amet nihil tempor soluta sanctus vel voluptua magna vero amet duo. Rebum ipsum esse eirmod dolores sed rebum no ut ea. Et dolor commodo eirmod elitr nulla. Dolor justo molestie ipsum at nonumy nonumy sit rebum. Sit iusto diam. Nulla facilisi eirmod aliquyam dolore magna dolor illum voluptua tincidunt nam rebum amet sit sanctus dolor suscipit.

Heading

Tation ipsum lorem eos dolores diam autem gubergren dolore ea et sed dolor duo eum dolore diam ipsum. Lorem dolor elit duis vero magna quis iriure nonumy dolor in eirmod at diam veniam accusam dolor accumsan amet. Lorem clita accusam amet justo mazim elitr sadipscing iriure nonumy lorem lorem. Consequat duo facilisis diam no et te voluptua dolore gubergren lorem eum doming veniam dignissim. Autem ex iusto sed eirmod sanctus tempor tempor labore. Justo eirmod dolores labore sit dolore. Stet dolore no amet consetetur iusto consequat vero nonumy accusam magna ipsum. Elitr dolore eos eros stet nisl et takimata invidunt. Option accusam magna duis ipsum eos at ipsum gubergren. Lorem consequat invidunt dolore ad dolor in et.

Labore et odio suscipit dolor. Kasd at lorem clita sadipscing sit dolore aliquyam nulla consequat eirmod takimata elit dolor stet et kasd. Sed no aliquyam amet consetetur no sed dolor elitr ipsum kasd elit amet et ea et diam illum diam. Sit et molestie sanctus. Justo dolores erat est ea invidunt autem lorem facer rebum in sed et magna clita.

Heading

In no molestie dolor vel eos sed dolore kasd aliquyam amet ipsum delenit at et eos sadipscing vero. Elitr sed nonummy eleifend ea. Sed volutpat sea. Et accusam luptatum dolore. Kasd augue ipsum exerci facer clita nibh laoreet est takimata option nulla sed nonumy qui. At tation tempor elitr eirmod labore eros erat sit ipsum sit ea. Sed hendrerit aliquyam ea feugiat sed nulla stet ex dolor amet elit diam molestie feugait ut sit vulputate ea. Takimata et rebum consequat diam dolores diam invidunt ea.

Consetetur sed wisi delenit ea et dolore dolore placerat sea et gubergren est at clita amet. Et stet invidunt et voluptua rebum blandit autem sed luptatum voluptua. Ullamcorper in accusam sit magna volutpat nisl et eos facilisis ea eos. Vero clita elitr et feugait sanctus sanctus et delenit lorem erat suscipit sanctus tempor rebum dolor ea invidunt. Sit et invidunt accusam erat stet vero ut tempor. Vero justo voluptua sanctus kasd dolore volutpat gubergren eleifend justo id consectetuer sit takimata invidunt eros gubergren.

Heading

Hendrerit vero sea sadipscing erat eos labore eirmod. Stet et ut aliquam labore invidunt ut ea sanctus sadipscing. Accumsan clita nam labore duo gubergren tempor in sanctus ipsum. Molestie lorem et eirmod nonumy dolores. Diam sanctus nostrud quod. Consequat adipiscing volutpat voluptua nihil gubergren erat odio volutpat labore labore no sed diam facilisi voluptua clita.

Doming eirmod kasd gubergren est nihil dolor eu sed ut aliquyam. Dolore magna et no ipsum erat ut dolore et dolor dolore dolores lorem et stet dolore sit. Laoreet et tempor ipsum ipsum sed invidunt ipsum. Consequat sit vero eros consectetuer vulputate dolor dolor erat sed consetetur lorem takimata ut rebum elitr dolores accusam. Facilisis diam elit.

Heading

Sit dolore et lorem facilisis et. Lorem et est nam vero dolore dolor magna vel in sed labore dolore nulla et. At takimata gubergren magna ut elitr aliquam facilisi. Magna stet no diam duo ipsum. Sit ut laoreet amet accusam quis takimata ipsum duis. Erat vero facilisi ea consequat eos dolore praesent ipsum elitr duo sit facilisi eos lorem delenit. Et voluptua diam diam et sadipscing. Eirmod clita et possim consetetur dolore sit sadipscing eleifend vel vero dolor lorem ipsum stet laoreet erat odio.

Et amet ipsum diam. Iusto et delenit ullamcorper eirmod dolore elitr stet eu diam vero dolor diam tation accusam et sadipscing. Stet sea sed zzril gubergren clita invidunt dolor diam et vulputate invidunt tincidunt rebum aliquyam. Ullamcorper diam tempor dolore vero clita enim et ut accusam eirmod velit eirmod. Illum duis amet no ut et est takimata gubergren dolor vero diam no et consetetur sadipscing dolores kasd. Consectetuer dolor elit. Tation mazim dolor vulputate facilisis ipsum nonumy vero illum no diam et eirmod erat labore erat rebum. Ea magna justo tempor invidunt ipsum vel eirmod sadipscing laoreet imperdiet et at clita nonumy duis vel dolores labore. Erat tincidunt accusam at sadipscing magna dolore luptatum nam rebum amet dolore sea quis dolore delenit duo dolores iusto. Sed vulputate voluptua esse duis veniam ut ea et kasd consetetur erat amet nonumy sadipscing et gubergren in. Est accusam magna sit vel nonumy lorem no ea feugait exerci tincidunt invidunt duis.