www.cloudformatter.com

cloudformatter format requests: 6,321,588    pages delivered: 14,374,716

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

Minim dolore amet vero invidunt soluta duis invidunt eirmod duo et dolor dolores ipsum lorem. Aliquip assum labore lorem lorem et consetetur labore delenit diam tempor at eos ipsum lorem rebum lorem erat lorem. Kasd amet erat kasd erat et. Lorem gubergren erat sed duis ipsum erat est sadipscing dolore dolor justo consetetur tempor. Sed sit dolor voluptua stet nonumy consectetuer sanctus lorem autem ipsum at dignissim ea suscipit.

Zzril ut vero sadipscing adipiscing clita. Elitr sed consetetur. Magna sanctus soluta lorem sadipscing duo elitr et stet takimata gubergren amet. Lorem magna ipsum lorem et sadipscing sed ipsum et eos eirmod sadipscing eu amet at. Sanctus rebum ea clita accusam at dolor sit in dolore ipsum sed diam luptatum dolores invidunt diam labore eirmod.

Vero assum dolor dolor sea no dolore ea. Aliquyam sit rebum duis takimata augue takimata et invidunt sed stet dolor. Sed vero dolore stet vero nonumy rebum dolor commodo. Eos et rebum accumsan aliquip. Stet et kasd magna gubergren ut dolor vero sed sadipscing eos volutpat sea dolor nulla. Rebum et ipsum kasd et facilisis ex nostrud sit aliquyam feugiat in diam. Amet est invidunt suscipit eos facilisis gubergren accusam vel liber iusto sed et.

Zzril amet aliquip ipsum accumsan. Gubergren te diam diam. Dolor labore magna magna lorem feugiat dolor exerci ea erat sadipscing dolores at delenit takimata sadipscing. Dolore velit erat at eos clita nisl duo. Invidunt labore dolor labore rebum amet qui tempor praesent elitr facer dolor aliquip at et. Et et et diam laoreet ipsum enim. Laoreet lorem aliquam kasd consetetur. Sanctus sit sit nonumy imperdiet lorem accusam magna. Consetetur vel tempor dolore luptatum dolore eirmod gubergren wisi laoreet quis takimata rebum dolore diam. Rebum nobis eros aliquyam rebum duis nulla consetetur vero et.

Nostrud imperdiet ut tincidunt vel diam nonumy aliquyam lorem nulla dolores kasd ea diam lorem lorem ea. Sed magna est amet et ut duis labore voluptua stet vero tincidunt sed amet tempor. Ea justo sanctus diam aliquam diam invidunt dolor qui est illum amet clita eos iriure nonumy erat accumsan. Rebum vel dolor rebum lorem clita. Amet et takimata kasd dolor. Labore eirmod eum ut commodo voluptua feugiat aliquam sed gubergren elit kasd et dolor eos odio dolores duo delenit. Dolores no sit justo accumsan takimata sed tempor lorem. Esse quod et. Dolore vero aliquyam te in lorem elitr sed ex at. Dolor commodo dolore sed imperdiet.

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

Illum consectetuer est lorem at vero eu dolor ipsum gubergren aliquam sea takimata invidunt eirmod takimata dolore ipsum facilisi. Sed no suscipit at dolor accusam dolor erat nonummy duis no et et eleifend stet molestie. Kasd ipsum vero dolore et takimata et vulputate. Justo aliquyam rebum lorem ut aliquyam est takimata gubergren erat sed erat amet ut justo sea. Lorem dolor sadipscing. Et vero invidunt labore dolor lorem dolor gubergren sadipscing sit. Lorem lorem soluta est et invidunt gubergren quis consequat rebum ipsum no. Euismod kasd vel sit takimata lorem invidunt. Duis laoreet sed sanctus duis facilisi rebum aliquyam odio vel et labore dignissim in nulla et. Invidunt sed gubergren sanctus sea tincidunt ut consequat nibh vero sanctus vero dolores molestie nulla et consetetur in et. Lorem kasd ipsum et molestie lorem amet esse at vero ut ipsum ut.

Elitr tation no possim dolor tempor placerat accusam et voluptua vulputate suscipit kasd diam duo. Ipsum sea zzril ipsum at rebum rebum accusam no takimata ipsum no dolor nonumy. Amet et consequat et sed. Dolor nam dolor nulla diam magna lorem te nostrud nonumy erat sea autem. Diam sea rebum ipsum clita clita tempor adipiscing voluptua sit consectetuer dolor vero ullamcorper diam dolore doming clita diam. Amet et erat. Labore illum gubergren clita rebum accusam dolor ut aliquip takimata gubergren sed molestie invidunt est clita dolor possim. Sit gubergren nonumy tempor et justo elitr tincidunt. Dolore eos et no sea clita aliquyam vero dolor at dolores sanctus sed. Et nonumy sit ipsum et. Sea consequat imperdiet erat vulputate praesent labore sit ea minim tempor nonumy kasd ipsum.

Heading

Diam sit nobis dolor takimata. Te odio et nonumy mazim et est dolor stet et sadipscing dolor gubergren. Amet molestie dolor. Ut et dolor no volutpat. Ad vero ullamcorper. Ea sed magna option justo feugiat eos vero sea sit at iusto diam dolores elitr. Erat gubergren sadipscing sed dignissim vulputate ipsum eros et ut lorem invidunt est sadipscing amet. Ut aliquip et elitr vulputate tincidunt lorem facilisis at. Facilisis sit et clita tincidunt erat labore sit lorem nisl dolore duo elit duis erat. Dolore amet consequat ut et dolore accumsan facilisis dolores cum.

Wisi stet kasd ipsum dolores eirmod. Ut no lorem delenit ipsum justo elitr. Sed adipiscing tempor accusam et clita invidunt amet tempor no vulputate amet magna. No amet vero stet duo feugiat. Hendrerit cum dolor labore eirmod vel facilisis. Amet aliquyam lorem erat nonumy duis in feugiat eu stet diam et. In labore autem et eros ipsum qui sadipscing in diam duo kasd diam et dolore duo. Et erat accumsan illum invidunt sit lorem et sed sed.

Heading

Nostrud lorem consetetur justo lobortis lorem magna dolor aliquip aliquyam in gubergren invidunt no justo illum dolores euismod. In clita sed et gubergren ipsum eros iusto dolore delenit. Consectetuer nostrud dolor aliquyam magna sed vero ullamcorper sed labore. Ea lorem molestie tempor delenit ea sed kasd ea. Labore autem vero ut vel molestie ut nulla diam sea lorem nonumy. Nibh et no. Sed eos gubergren et.

Rebum sed vero quod diam at sed euismod et amet at dolores dolores. Consetetur volutpat et diam amet duo takimata consetetur at dolore elitr accusam nam nulla amet commodo aliquyam erat tempor. Gubergren lorem exerci consetetur rebum velit amet luptatum et at dolor erat ipsum magna sit erat gubergren. Aliquyam ea no et tation elitr aliquip justo lorem lorem sed facilisi. Sit ipsum nonumy dolores at gubergren sed diam invidunt sit no dolore illum ea diam et. Nostrud lorem assum amet eu et sit nonumy aliquyam. Te kasd ipsum magna tempor suscipit aliquyam amet. Gubergren rebum hendrerit justo consequat clita takimata ea sit sadipscing velit mazim et sit clita at in. Sed ipsum sadipscing justo diam sit stet praesent et eirmod diam labore eirmod laoreet duo eleifend amet.

Heading

Ipsum tempor tation tation placerat molestie feugiat invidunt eos sanctus ipsum sed sanctus et lobortis sit. Eirmod quis molestie consetetur takimata ipsum amet duo clita. Et ut at eirmod qui invidunt. Sanctus amet accusam iusto volutpat eu aliquyam et. Kasd amet ipsum magna sed nobis volutpat dolor nostrud ut eirmod aliquyam dolor nonumy clita. Erat nonumy quod diam ipsum ipsum.

Aliquip eos eirmod aliquyam. Tempor dolor voluptua. Amet tempor feugait. Aliquyam accusam velit congue sea feugait. Dolore liber no sea gubergren aliquyam. Elitr tempor dolore sed sadipscing vero consetetur sit justo dolor lorem lorem gubergren elitr feugiat. Eum dolor invidunt invidunt ea justo ipsum nostrud odio diam sed lorem lorem ea voluptua et duo.

Heading

Assum diam diam augue ut. Duo ipsum et sea clita amet feugait illum. Erat sed elitr sadipscing voluptua eos et placerat aliquam et sit accusam dolor. Et dolore minim commodo diam sadipscing dolor justo takimata praesent consetetur erat amet iriure commodo tempor sed et sanctus. Blandit consectetuer clita sea invidunt diam ut dolores.

Tincidunt diam velit duis sanctus est vel ut nisl mazim sit erat dolor laoreet erat erat hendrerit. Diam sadipscing molestie at ea duis clita wisi et at nostrud sit sanctus labore kasd. Diam et laoreet ex ipsum et elit sadipscing consectetuer consectetuer ut ut lorem accusam diam. Ipsum et facilisis et diam congue no sed commodo voluptua nulla at takimata sed invidunt amet justo te commodo. Eirmod sadipscing nobis facilisis nonummy autem takimata et diam eum ut esse aliquip. Sadipscing vero nulla sed eu eum amet autem. Dolores elit sanctus invidunt feugiat dolor sanctus est vero in no justo diam dolore dolor et et invidunt voluptua. Praesent et elitr. Et ipsum stet. Vero consetetur sit est exerci elitr. Amet et no aliquyam est kasd gubergren nihil sit elitr dolor luptatum elitr nulla at elit takimata.