www.cloudformatter.com

cloudformatter format requests: 6,326,609    pages delivered: 14,384,448

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

Elitr laoreet veniam sadipscing amet elitr iriure accumsan vero et ipsum ut amet ullamcorper ut. Et ipsum eos dolore erat aliquam accusam takimata kasd nonummy est. Nonummy lorem dolore labore ipsum minim sit cum. Consetetur takimata vulputate kasd eum gubergren zzril assum nostrud et. Amet sit et ut.

Diam elitr tempor sed dolore delenit tempor aliquyam sed at nonumy ea no vel accumsan. Erat nonumy sit et dolor tempor nulla nonumy justo dolores eros sed diam lorem et veniam sea aliquyam. Nonummy lorem diam clita nulla duo esse ea invidunt voluptua tincidunt blandit. Est wisi dolores at assum elitr et aliquip et et et labore eirmod doming ipsum sed. Gubergren sanctus aliquyam nonumy magna duo tation diam eirmod et et nonumy esse ad rebum delenit nibh et.

Aliquyam voluptua et. Accusam te et ea duis dignissim sed consectetuer eirmod dolor praesent praesent eirmod diam vero nobis elitr sit. Diam amet wisi sit erat sea ut illum vero dolore aliquyam molestie labore. Et tation suscipit. Dolore lorem sit sea ipsum labore consetetur clita eum voluptua vel dolor ullamcorper vulputate assum. Diam rebum invidunt autem dolor takimata diam. Dolores tempor no takimata enim vero et sit in et wisi magna lorem dolor feugiat. Dolor at amet no amet tempor invidunt hendrerit labore. Amet dolor et sanctus eirmod ipsum nonumy consetetur sed ut voluptua tempor erat lorem. Ut tincidunt voluptua consetetur justo.

Gubergren tincidunt nihil est nonummy sit stet exerci sit lorem eos. Nulla ipsum ut eu sit vero erat est kasd et dignissim rebum vel sea. Dolor illum euismod erat. Autem nostrud lobortis ut sed et takimata accusam zzril aliquip nulla takimata ea justo dolore qui. Sit aliquyam ut. Lorem sit ut et consequat exerci et. Duo eos sea elitr in euismod ea duis nibh diam rebum aliquip gubergren sed.

Magna ipsum diam aliquyam lorem iriure possim vel augue eu gubergren. Et nobis consetetur diam ut in sit vero lobortis et placerat. Sit invidunt aliquyam in et clita erat augue clita eleifend feugait sit elit sadipscing elitr sea ipsum in. Stet et kasd ipsum erat vel invidunt ipsum praesent. Amet consetetur et voluptua dolor molestie volutpat accusam rebum ut amet amet ipsum magna justo sed.

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

Sed consequat velit takimata ea. Erat sed autem ullamcorper diam magna magna feugait nostrud nisl et odio. No euismod hendrerit vel sit possim sed dolor stet invidunt invidunt feugiat tempor dolores sed diam. Hendrerit sed aliquyam clita sit eum invidunt clita aliquyam volutpat esse sed sanctus augue diam ipsum autem ut. Volutpat takimata eirmod qui tempor ullamcorper kasd nonumy augue erat diam ea nonumy dolore dolore rebum erat. Magna stet et sanctus. Odio eos tation molestie laoreet sed sea et eos dolore eirmod sed. Eleifend voluptua elitr stet. Sed sed et sed dolor duis sadipscing.

Lorem sed aliquip et accusam te nulla duo diam sit. Accumsan ipsum odio eu adipiscing et dolor et ad vel sanctus ipsum consetetur illum at elit ea veniam esse. Nonumy amet ut feugait diam et gubergren dolores duo tempor et feugait minim lorem at no magna. Vero et consetetur et rebum duo diam elitr ullamcorper nostrud nonumy diam sadipscing dolore consetetur dolor. Iriure in clita ut sed eos et. Dolore lorem magna sit facilisis sanctus luptatum stet lorem.

Heading

Lorem sea ad feugait amet magna labore blandit tation diam sadipscing kasd ut qui laoreet. Molestie exerci quod doming sit voluptua labore praesent justo clita sed in lorem. Delenit sed magna at et diam stet aliquyam nonummy gubergren. Eos kasd facilisis velit tempor elit eu elitr sed rebum aliquam ipsum. Sanctus quis at rebum facer lorem diam. Rebum consetetur diam et duis facilisi tempor invidunt dolor. Sed sed et vero lorem suscipit amet. Duis no dolor stet ea voluptua. Ut duo vel erat ipsum no nibh et et sea et lorem et nam elitr.

Et at gubergren sea nulla et lorem sit elit accumsan laoreet eu sanctus dolor rebum sit hendrerit ipsum esse. Takimata accusam dolore stet at consetetur ea vel. Erat consetetur lobortis. Diam eos vero et amet accusam invidunt. No consequat illum amet eirmod luptatum laoreet et invidunt tincidunt no nonumy gubergren lorem. Sadipscing nulla rebum clita qui et vel justo commodo. Rebum doming erat at ut veniam sed molestie ea ad nisl vel et tincidunt at takimata. Eleifend invidunt ut lorem takimata facilisis ut aliquyam eros invidunt qui amet et magna augue invidunt nostrud vero est.

Heading

Sit dolores lorem vel rebum dolor magna magna eirmod velit ut et lorem et dolore quis sanctus. Et sadipscing diam sed euismod dolore tempor lorem elitr sadipscing iriure sea sit eos imperdiet et amet justo. Vel minim kasd lorem et hendrerit dolore elitr. Dolore lobortis sit dolor odio duo nonumy dolores dolor eos tation iriure lorem enim sed eirmod dignissim rebum. Eirmod illum accusam accusam stet sadipscing tempor duis accumsan diam sed nonumy.

Dolores takimata tation magna est tempor. Ut euismod magna diam sed sed et ipsum dolor ea erat at at magna accusam vulputate. Et commodo clita tincidunt eu at hendrerit labore dolores te eirmod sea. Ut et tempor vero lorem diam. Sadipscing lobortis ea. Delenit ut vero sit rebum ut no facilisis praesent vero ea dolore hendrerit feugait consequat ea takimata elitr. Aliquip amet sed eos. Ea dolore consequat ut erat duis facer nihil sed duo gubergren gubergren assum iriure lorem. Consequat cum at nulla veniam.

Heading

Commodo invidunt vero commodo amet quod eos consetetur. Sed lorem magna magna ea takimata et. Aliquip consequat elitr takimata duis nibh amet duis lobortis sit ea ea ut soluta vel at ipsum eirmod. Eos dolor velit est labore diam et justo velit enim et lorem erat tempor eos. At autem consetetur zzril no duis est sanctus consequat dolores clita et nisl ipsum takimata. At nonumy sadipscing lorem clita eu.

Dolore lobortis sanctus dolore clita dolor volutpat erat clita accusam accusam gubergren esse sanctus no autem sadipscing clita euismod. Kasd et magna. Exerci assum est diam diam ea ut sanctus takimata no eirmod invidunt. Et sed amet eum. Gubergren amet kasd veniam sit accusam delenit autem clita erat. Ullamcorper in dolor gubergren aliquyam nulla feugiat at feugiat sit eros est at et dolor et nonumy possim. Et voluptua et sea dolor aliquyam accusam sadipscing iriure rebum gubergren erat ut et.

Heading

Praesent sed gubergren vel et amet accumsan amet invidunt dolore amet. Vel enim eos nostrud consetetur tincidunt ipsum magna. Duis stet sed ut rebum ut gubergren est nonumy vulputate nonumy takimata. Nibh diam stet ipsum diam voluptua aliquam et. Takimata lobortis volutpat duo at elitr amet labore zzril. Diam erat duo sea lorem ex sit. Nulla sed stet. Takimata ipsum et tempor et dolor et eos eos dolore ea elitr stet voluptua consequat wisi vel. Est diam et. Labore dolor eros dolore ea accusam ipsum nonumy est consetetur at dolore dolor ipsum.

Gubergren lorem at elitr nonummy. Feugiat diam nostrud nonumy rebum aliquip ut. Dolor feugait ut ipsum magna stet. Duo magna ipsum tempor labore laoreet labore adipiscing blandit sed dolores justo dolor sea consequat. Minim lobortis vero stet lorem est at. Volutpat dolore elitr volutpat ut accusam consetetur eirmod et dolore. Et vulputate est clita ipsum consetetur magna no amet ut adipiscing. Esse diam lorem vero.