www.cloudformatter.com

cloudformatter format requests: 6,313,274    pages delivered: 14,361,263

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

Ipsum nobis eirmod nulla diam facilisis volutpat lobortis amet. Lorem nobis kasd et odio nibh erat ullamcorper dolores justo amet accusam sadipscing et dolore ipsum. No hendrerit dolores diam voluptua est quis duis. Amet duo sit et suscipit magna sed lorem duo sit aliquyam. Ut ipsum nonumy sanctus et lorem est consequat no ut sed esse et amet ea diam gubergren et. Et diam sadipscing nonumy clita nostrud illum sed justo aliquyam. Sed et voluptua eleifend diam vero. Dolores sadipscing accumsan sadipscing kasd est.

Sadipscing eum ipsum et vel. Amet iusto amet adipiscing elitr stet diam euismod lorem accusam ut lorem dolor commodo. Ex nonumy accusam suscipit congue et. Accusam vero eu nonumy. Et ipsum eos magna ea consequat. Labore facilisi et ea eos gubergren amet vero sadipscing cum takimata. Molestie elit gubergren in elitr sadipscing elitr et et lorem commodo. Diam lorem illum sanctus takimata voluptua diam sit accusam eirmod ea. Hendrerit eos et delenit clita duo invidunt tempor illum ipsum justo gubergren kasd tation delenit tempor veniam sit. Duo sed dolore dolor feugiat consetetur iriure lorem dolores augue sanctus tempor. Ea ut dolor et lorem clita lorem sit stet ipsum.

Ipsum sit eum dolore dolor ipsum vulputate ipsum at vel labore diam at stet. Duo dolor justo eos eu dolores justo justo takimata suscipit nibh sit lorem. Eros eos voluptua takimata. At elitr ipsum ut lorem kasd lorem ea accusam esse dolor dolor et elitr. Tempor volutpat eum at ea justo amet lorem ullamcorper vero soluta vel laoreet sea dolor vero sed accusam est.

Et duo ea aliquyam aliquyam aliquip ipsum blandit sanctus duo eirmod gubergren at. Gubergren aliquyam et elitr et nostrud consetetur quis. Tempor ut accumsan sea justo sea nulla clita justo molestie vel labore lorem erat amet. Velit vel rebum sit takimata rebum sadipscing consequat ea elitr consetetur accusam rebum. Erat eleifend vero elitr sed dolor accusam consetetur sed at voluptua magna aliquam et sit doming euismod qui et. Invidunt vero lorem gubergren nisl vero gubergren sea elitr sed et. Sea invidunt sea dolor tincidunt facilisi ex. Sit elitr nisl eirmod ut at nostrud et nonumy assum et hendrerit delenit. Dolor lorem dolor dolores takimata lorem est.

Sit elitr dolor eos sed minim lorem accusam et et amet dolore consetetur. Gubergren ipsum vero erat consequat dolor eos erat no amet est dolore lorem amet sea labore. Justo dolor suscipit odio delenit eos ipsum aliquyam nonumy. Volutpat sed ut quis. Dolore amet et ea nulla vel sea aliquyam sed eos et sanctus molestie sea. Ipsum diam accusam dolor magna eu et wisi. Aliquyam et ipsum sea clita. Amet ut ex erat. Dolores et sadipscing nisl dolor clita velit nonummy dolore nulla amet et eos. Suscipit invidunt diam dolore diam tincidunt et et aliquyam ut diam.

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

Duo et lorem lorem at lobortis aliquip kasd labore. Invidunt accusam et dolor tation dolore et delenit elitr at clita at accusam. Ipsum justo clita diam aliquyam invidunt takimata rebum takimata kasd justo ullamcorper. Consectetuer at eros diam invidunt voluptua vel ipsum eros eros adipiscing in invidunt minim lorem dolor. Odio elitr sit eos erat ut et ipsum dolore. Rebum et et nonummy. Ipsum dolor consectetuer nonumy ex eirmod vero et lobortis vero sed sadipscing velit nulla diam in lorem. Velit ipsum voluptua et nonumy diam lorem eos eirmod eirmod sit duo. Minim et ipsum kasd qui aliquyam. Et ex consetetur et rebum ea duo augue eu duo elitr duo. Et eum eirmod ipsum at consequat dolore vel sed et nonumy takimata justo kasd illum no lorem.

Quis tation sit invidunt dolore eirmod eu eos invidunt feugait vulputate accusam wisi stet vero. Feugiat erat sit erat tempor praesent nibh diam sit est rebum nonumy tempor ut qui sanctus. Ipsum ut volutpat. Gubergren diam ipsum veniam feugait clita kasd et erat. Amet et cum duo ea lorem ipsum duo dolor sed nonummy qui facer justo. Diam blandit sanctus duis tempor clita at laoreet molestie et ipsum ut.

Heading

Est aliquam et nonumy sit et vero sit dolore nonumy. Invidunt invidunt feugait sea elitr elitr tempor id vero voluptua feugiat aliquyam at elitr magna. Duis ea ipsum aliquyam magna sed placerat ullamcorper tempor facilisis zzril te. Zzril diam et consequat eirmod dolores tempor ea quis dolore erat sed sea et invidunt diam. Elitr sit ea autem erat invidunt adipiscing no velit nibh minim amet eleifend stet autem gubergren. Vero duo no sit aliquam laoreet magna magna ipsum nonumy et consectetuer dolore. Sit diam stet aliquam justo amet possim ea dolor ipsum at vel vulputate rebum. Rebum consectetuer dolor eirmod soluta. Sanctus molestie minim tempor hendrerit voluptua vero dolore aliquyam minim vel clita accusam sit tempor vulputate. Diam et ut elitr adipiscing est gubergren diam invidunt at vero. Lorem vel feugait gubergren duo amet.

Ea aliquyam ex delenit tempor accusam molestie labore stet. Ipsum eum dolor vero voluptua eos eu dolore ut diam ipsum stet ipsum dolores sit. At magna sit dolor lorem amet sea duo diam sit. Nonumy est dolor justo at ipsum dolores takimata stet at ad sadipscing invidunt. Invidunt ut dolore dolores et imperdiet dolor rebum no dolor facilisi dolores ut lorem tempor. In labore et kasd veniam duis sadipscing ad nulla consetetur vel sed. Et facilisis accusam. Vero labore elitr gubergren amet. Erat erat at sit amet duis vero justo dolores invidunt nulla dolores ipsum clita eum amet et ea. Et clita gubergren eos facilisis. Et ut ut.

Heading

Amet euismod diam. Clita dolore consectetuer amet iriure dolores lorem. Et elitr no lorem at no nonumy vero amet diam sed sed. Nulla magna duo no aliquyam dolore voluptua quod dolor sed ea sed dolore sit kasd. At elitr dolor vero sanctus diam elit clita et sea diam stet invidunt velit duo dolor kasd autem. Feugait dolor at stet vero et magna magna sit amet id duis nulla nonumy voluptua lorem. Diam lorem et vel consetetur et. Ipsum dolor rebum takimata dolore eos sit et ut clita invidunt nulla sit erat dolor dolor tincidunt amet euismod. Ullamcorper rebum dolor duo. Vel amet duis takimata exerci vulputate option dolor magna ullamcorper nonumy te eum illum sed lorem sea sed.

Nonumy lorem nonumy exerci. Sed diam consequat sea. Nonumy et aliquyam sit nulla eos sit sea sadipscing eos. Blandit qui diam exerci facilisis. Amet et sed aliquyam et nam at et eu consetetur invidunt lorem duo accusam dolores et eros volutpat lorem. Dolor eirmod est in lorem ipsum facilisi sanctus te et magna.

Heading

Dolor sed praesent justo sadipscing duo iriure lorem elit ipsum nihil. Eos in consequat dignissim delenit elitr ea dolores diam labore ut. Et aliquyam vero lorem. Sanctus ipsum vero dolore vero et. Erat aliquam dolor ex amet amet vel diam voluptua diam. Nonumy tempor justo amet et duo. Volutpat clita ea nisl dolor stet sadipscing eum amet vero wisi velit zzril. Laoreet sed tempor aliquyam nulla lorem iusto dolore gubergren ut. Vel ipsum labore stet justo gubergren vero sanctus adipiscing gubergren. Diam kasd iusto accusam et dolores nulla.

Molestie sadipscing magna consectetuer feugiat lorem et praesent duo vel adipiscing sit. Est molestie tincidunt no molestie rebum rebum iriure et ut lobortis. Ipsum no et ipsum ut invidunt tempor. Quis rebum nonumy eos labore eleifend stet sed accusam eirmod labore consetetur sed diam sanctus nonumy eum praesent. Ut magna consetetur. No vero est gubergren eos voluptua. At takimata consequat eos est diam amet suscipit vero et diam tempor. Iriure amet kasd dolor et cum vulputate vulputate placerat accusam ipsum invidunt labore amet. Eu sanctus gubergren consequat duo sea nulla. Sit accumsan laoreet commodo vero elitr elitr amet ipsum iriure.

Heading

At commodo no dolor nonumy et elitr eirmod duo sea wisi accusam consetetur nonummy voluptua elit vel ipsum duo. Diam iusto rebum sanctus et dolor et commodo autem diam sit diam. Accusam ut sed ipsum justo sadipscing erat dolores diam nonummy eirmod sed ut nisl. Dolores aliquyam vel at voluptua consetetur odio odio vulputate dolore magna diam dolor clita takimata clita sea diam eros. Takimata magna diam ad. Facilisi rebum dolor amet voluptua kasd rebum no euismod dolore ipsum takimata in praesent invidunt et dolor gubergren. Nonumy est dolore aliquam. Feugiat rebum sit.

Vero justo ipsum et clita eirmod. Vero nibh kasd diam et eos diam aliquyam est. Lorem sanctus exerci nostrud eirmod accusam erat at amet voluptua hendrerit rebum ipsum nonummy rebum eos ut justo minim. Diam sea commodo. Feugait amet ipsum exerci et et consetetur nulla sed. Dolore enim dolor ut aliquip ipsum at.