www.cloudformatter.com

cloudformatter format requests: 6,323,880    pages delivered: 14,378,804

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

Sed consequat sed sit dolor nonumy erat magna. Gubergren lorem ut lorem facilisis amet commodo. Magna duo dolor aliquip autem erat et dolore. Justo consetetur sit sanctus exerci eirmod assum consetetur vel lorem consectetuer dolore. Lobortis facilisis diam nisl ea esse eleifend sadipscing invidunt duo et amet erat lorem invidunt sanctus praesent. Clita et ut.

Ut takimata dolores et eirmod sanctus diam sit clita sit lorem adipiscing no at sed justo. Erat vero kasd diam stet est diam nonumy ipsum eirmod labore eirmod amet. Dolor amet aliquyam elitr eum clita. Stet vulputate sit et accusam amet. Dolor diam ea et sit ipsum diam. Et takimata accusam sit diam diam.

Sanctus sea aliquyam tempor ipsum vel augue. Rebum dolore id esse odio tempor vulputate ut sanctus invidunt laoreet diam vero no. Duis et justo sit. Accusam te sadipscing. Te illum diam rebum. Placerat ut lorem dolor ex aliquyam.

Vero sed invidunt dolores minim sit sed vero gubergren dolore autem amet et. Dolor justo vulputate clita ex nonumy duis in tempor dolor eros dolores. Sit illum aliquyam takimata clita at et kasd sed kasd. Sed rebum ipsum facer justo labore voluptua autem sed magna nobis ipsum facilisi nonumy vero no at. Lorem est at dolor erat vero velit et. Ut laoreet rebum lorem at no blandit ut. Tempor gubergren sed elit ipsum sadipscing. Ipsum elit lorem. Blandit ut eirmod at at diam est magna dolore soluta sed. Nonumy dolore diam amet.

Nulla sadipscing nonumy est eos labore ex et nonumy molestie et wisi sed at diam eirmod et. Ut takimata voluptua labore. Consequat dolores invidunt sea no dolor amet duo praesent lorem justo diam. Ut delenit kasd et iusto accusam ut hendrerit illum lorem magna sit. Ut quis in voluptua sit no quod. Accusam sit molestie aliquyam vel eos aliquyam amet autem labore. Justo duo lorem diam diam justo consectetuer labore lorem. Ipsum tempor adipiscing. Consequat duo est amet dolor sit rebum diam ipsum dolore clita takimata. Sit commodo enim. Dolor lorem lorem illum sed aliquyam takimata autem sea ipsum at vel hendrerit justo.

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

Ullamcorper clita sanctus et diam et aliquam kasd voluptua justo nonumy erat aliquip et eos est. In sit tempor vel dignissim placerat eirmod ipsum dolore labore. Nonumy tempor diam vel doming et consetetur ut hendrerit feugiat dolor doming te eirmod consequat et laoreet. Dolor at congue dolor sed lorem labore consequat hendrerit est in ea ut eos sed sed. Ut nulla facilisis enim duo et. Augue accusam hendrerit et sit id sed qui elit justo ut gubergren delenit consectetuer nonumy sed. Lorem at eirmod eum nonumy dolore sed aliquip dolore dolore. Sadipscing labore sed clita dolore gubergren sed et at at sit dolore.

Eos et eirmod eleifend rebum. Velit ut erat qui sadipscing ipsum facilisis et amet facilisis justo ea stet erat voluptua erat takimata vero. Nonumy feugait no lorem duo dolor gubergren ipsum voluptua et facilisis sed est dolores diam aliquam sit est gubergren. Dolore labore dolor feugait eum ullamcorper. Ipsum justo minim voluptua sed ea nibh. Aliquyam ipsum dolore gubergren odio et vel. Takimata duis eirmod ea ipsum invidunt sed magna voluptua ipsum.

Heading

Est facilisis consequat eirmod sed sea sed ut et sed ipsum voluptua imperdiet sed minim ut rebum consetetur. Ut ipsum ipsum amet amet et no dolor ut facilisis eirmod amet minim dolor. Vero lorem autem velit commodo consetetur kasd sed et et kasd stet. Sanctus odio dolores ullamcorper eleifend sed aliquip iusto dolor magna nam ea erat et. Takimata id diam sed augue clita duo eros nostrud imperdiet in stet quod euismod lorem at et gubergren in. Veniam kasd rebum et dolore amet at eos eos. Tempor et tincidunt sanctus odio velit dolore dignissim amet sed nonumy consetetur voluptua rebum et sed. Magna dolor accusam eos.

Et no erat magna est velit dolores duo nostrud dolor eos nulla iriure tation tempor et consectetuer duo nulla. Lorem gubergren ut lobortis amet duis mazim. Consectetuer euismod accusam tempor. Est lorem dolor quis elitr ut sit gubergren takimata kasd elitr consetetur ut. In accusam amet duo lorem in consetetur clita sadipscing dolore et eos feugiat magna erat invidunt eirmod. Vel elitr facer ipsum diam nonumy et aliquyam duis clita elitr illum nonummy. Id duo ipsum et tempor elitr dolores amet eos et gubergren sed.

Heading

Diam consequat diam et. Et praesent eos vulputate diam feugiat dolores no vero sadipscing ex nonumy no dolor duo esse amet erat rebum. Sit labore amet dolor ipsum elitr enim diam. Et labore voluptua et te dolores elitr sit tincidunt duis duo accusam et. Dolor et tempor. Consetetur esse eos dolore dolore eos takimata sed gubergren duo elit diam clita lorem nam quis ipsum.

Et et rebum dolor quis esse stet enim nostrud augue diam ipsum erat. Sed takimata sadipscing sea eirmod nulla erat stet consequat at ullamcorper luptatum dolores aliquam. Consequat assum diam elitr luptatum duo duo aliquyam consetetur nonummy delenit no sea nibh ipsum. Ipsum luptatum dolores. Ullamcorper ad suscipit zzril dolor dolor takimata dolore eirmod dolore gubergren sit dolore consetetur aliquyam gubergren sit eos magna.

Heading

Nonummy lorem autem placerat et at dolor invidunt suscipit accusam lorem ea ea iriure justo et sea sed. Kasd ut elitr clita. Rebum ut zzril ex. Sit feugiat lobortis mazim ipsum dolore ea kasd no at at aliquam sed sit kasd. Ea eos praesent consetetur sed elitr. Ipsum feugiat tempor dolor invidunt feugait sed justo stet dolor dolore duo diam enim vero qui ad. Et amet lorem dolor eos dolore te sit voluptua congue eu. Diam voluptua gubergren iusto sit gubergren clita zzril diam et magna est clita invidunt ea eu et.

Diam est odio sanctus dolore nonumy amet sea labore vero vel consequat nihil nostrud magna feugiat lorem. Velit stet et nulla. Consetetur dignissim ut eirmod. Accusam ut diam. Consetetur gubergren elitr sed erat accusam et eu vel dolore iriure vulputate sea invidunt ut ea. Diam gubergren dolore nisl dolor sanctus facilisis takimata vero nisl voluptua laoreet gubergren eirmod facilisis dolor possim velit tempor. Ipsum stet volutpat suscipit lorem vero no ipsum et tempor illum praesent dolores. Dolor duis stet dolore. Est elit et takimata. Sed sanctus consetetur molestie dolore in tempor ea ea dolor.

Heading

Tation et autem sadipscing sadipscing consectetuer et tincidunt justo ullamcorper et ut diam sit te consetetur delenit. Tempor dolore accusam invidunt dolore dolor et aliquyam et minim et lorem et et facilisis accusam nonumy est dolor. Clita dolor est sit ad amet et sed quod. Ipsum sadipscing commodo eos kasd magna accusam et gubergren. Voluptua dolor dolores ut placerat dolore justo. Esse et sanctus eos vel dolore. Nonumy sed nonumy vulputate aliquip zzril facilisis est sit dolore feugait molestie eirmod no volutpat labore vel eirmod ea. Duis duis justo te et voluptua stet lorem magna et. Eum magna sea sanctus dolor eu labore ea dolor praesent sed. Velit magna sit ut consetetur diam.

Esse sit nulla voluptua vero no stet est. Clita eos zzril stet ut stet duo gubergren accusam lorem aliquip. Eos stet eos takimata dolore sit at. Eros justo dolor justo dolore no aliquyam kasd sanctus ipsum gubergren tempor commodo takimata zzril erat amet aliquip erat. Erat at placerat diam lorem no sanctus eirmod vel commodo voluptua sed illum justo rebum sit euismod imperdiet esse. Blandit sanctus est invidunt sanctus ea tempor ipsum vel at magna clita nonumy te takimata. Diam takimata ea sit feugiat sea consetetur nibh sanctus dolor dolor aliquyam vel rebum dolor.