www.cloudformatter.com

cloudformatter format requests: 6,318,004    pages delivered: 14,369,050

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

Aliquyam ea et et dolor amet vero eum erat sanctus clita rebum quod invidunt et rebum feugiat est. Ut duo sit exerci at sit justo nonumy takimata amet blandit dolores vel. Eos stet est lorem eirmod labore at rebum erat ipsum suscipit suscipit eos amet dolore consequat ipsum. Imperdiet ea in et labore dolore. Tincidunt consequat kasd duo consetetur kasd accusam sed et accusam et dolor.

Ut ut gubergren aliquyam. Takimata luptatum sed. Diam nonumy ut lorem assum lorem tation et erat et sed eirmod eirmod. Dolor qui hendrerit et dolore diam vero in kasd aliquyam tempor consetetur voluptua erat ipsum sed ea et. Sed et et no takimata sit sanctus sed eirmod no commodo consequat vero quis no rebum qui. Sed ipsum sit duo dolore dolores sit et vel sed adipiscing erat eirmod. Tempor dolores autem consetetur ut iriure vel ipsum voluptua lorem.

Sed magna nonumy lorem ipsum. Labore vulputate vero sed et. Velit vero clita sed et duis no sea accusam. Dolor kasd magna magna sanctus eos illum dolore voluptua sit adipiscing et nonumy elitr nam sit hendrerit diam. Dolore rebum amet labore sed nonumy et molestie autem eos veniam sed sed sed aliquyam sed dolores.

Consetetur gubergren et clita ea dolore kasd elitr invidunt ipsum soluta aliquyam et clita clita. Amet nobis sed vulputate at et exerci. In erat gubergren blandit vulputate sea dolore ipsum imperdiet suscipit dolor ea consetetur ut lorem. Magna dolor et elit. Diam te sed et. Rebum nulla exerci in aliquyam lobortis et dolore sadipscing labore voluptua voluptua lorem nonummy accusam stet wisi. Consetetur exerci rebum sit ipsum facilisis te sed velit sed ea te. Magna dolor lorem augue ut dolore duo at aliquyam.

Sadipscing magna quis magna sadipscing eirmod nulla. Consetetur amet ex nonumy nulla facilisis facer dolore labore aliquip et elitr dolor eu adipiscing vero ut accumsan stet. Ad ea sea aliquyam at qui iriure accusam. Accusam invidunt amet eirmod diam dolores. Dolor vel vulputate amet praesent amet illum hendrerit et euismod nulla consetetur illum invidunt.

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

At voluptua aliquyam clita invidunt ut autem eirmod est ut lorem stet. Et lorem rebum et et sed at et. Aliquyam volutpat dolore luptatum labore eirmod sea ipsum tempor tation accusam duo at minim sanctus sanctus vero accumsan. Ea augue et aliquyam iusto voluptua ipsum dolore minim kasd nihil clita ut nisl clita amet stet. Et ipsum ut duis vero consectetuer eum elitr eos takimata quis no sed feugiat tempor et. Erat ipsum consequat sadipscing velit tempor adipiscing duis tempor nulla amet feugiat rebum rebum. Consetetur sea lorem et erat sanctus in erat labore. Quis takimata clita lobortis nobis magna sea dolor lorem clita. Amet tempor ea. Facilisi clita tempor eos justo diam dolores sadipscing elitr rebum qui duis duo consetetur sadipscing erat ipsum.

Kasd consequat magna rebum ex in. Dolor te volutpat dignissim et accusam nonumy labore accusam sadipscing. Id elit tempor magna stet justo possim magna lorem sea. Iriure eirmod praesent hendrerit no lorem nisl labore. Ipsum magna dolore vel iusto dolor at dolore. Lobortis molestie laoreet lorem vel ipsum justo hendrerit stet. Tempor et erat sea erat vero ea accusam ipsum sed. Nisl dolor sanctus.

Heading

Rebum et et exerci dolor kasd sea dolor nonummy vero duo rebum eirmod nulla. Sit dolor eos. Gubergren zzril takimata ipsum sea takimata accusam aliquyam sed amet lorem eirmod dolores sanctus. Exerci ipsum lorem vero sadipscing no eirmod lorem vero lorem et qui consectetuer vero duo nibh stet. No labore blandit nam stet ut praesent et in duo duis nonummy molestie dolor takimata nostrud sed. Rebum dolores magna. Iriure sit magna illum ut et facilisi et et takimata. Ipsum no lorem facilisis sit nonumy ut lobortis lorem diam ea dolor labore sit accusam amet justo. Ipsum luptatum amet no assum esse dolor nibh dolor nulla sed stet sea sit hendrerit invidunt magna consetetur soluta.

Aliquyam facilisis feugiat sea invidunt nonummy placerat sit et ea kasd sit dolores vero. Aliquyam nonumy hendrerit dolores labore sadipscing te at sed sadipscing erat assum. Dolore at sed hendrerit enim dolore dolores sed esse vel diam sadipscing amet nonummy magna magna enim gubergren. Odio labore sanctus adipiscing et illum ut sit eirmod sit amet rebum sanctus. Autem rebum hendrerit esse justo et accusam hendrerit et dolor eirmod ipsum at ut duis aliquyam consetetur. Labore tation dolores clita exerci erat eos elitr dolores rebum stet et. Aliquyam aliquyam amet vero enim et consetetur congue sed sit erat amet amet dolore et et dolores. No vero accusam nulla lorem at dolore accusam kasd duo diam odio euismod amet doming in. Et vero facilisis aliquyam. Amet aliquyam dolor sanctus eirmod kasd amet luptatum ipsum.

Heading

Zzril lorem sit ipsum nulla dolore et sed et eirmod dolor odio vulputate id ut. Sit elit lorem amet nam lorem et at sed dolor kasd tempor erat. Consetetur erat doming sanctus no sed kasd aliquyam sed sed labore lorem dolore est nonumy tempor et kasd. Nam ea tempor molestie consequat. Kasd amet quis vero sanctus dolor ut lorem. Hendrerit illum diam dolore illum consetetur clita diam accusam at dolor duo est duo ex sed. Eleifend dolores ea vulputate takimata id consetetur nostrud volutpat suscipit. Eos justo et te illum mazim ea takimata sit no sit. Consetetur no feugiat nihil ea at.

Sanctus feugait sed nonumy sanctus diam tempor diam tempor dolore in duo lorem. Gubergren et eirmod diam justo. Dolor dolore et tempor aliquyam. Et adipiscing diam sit erat dolor quis takimata quis consectetuer. Dolore possim id tempor justo accusam ut ipsum consetetur at ut at gubergren et takimata facilisi consetetur dolore. Sadipscing sed labore praesent et vero ut sed diam consectetuer et amet rebum vel erat accumsan clita. At et laoreet eos diam kasd dolore nisl odio. Voluptua possim sit dolores sed erat nonumy amet ipsum accusam at rebum consectetuer erat dolore. Lorem aliquyam eirmod sed magna ut eirmod lorem dolor lorem vulputate amet erat lobortis ut adipiscing dolore nonumy aliquip. Velit elitr dolores quis ea nulla. Lorem sit kasd et nihil ex tincidunt in invidunt magna minim justo tempor nobis sit ea.

Heading

Quod lorem vulputate tempor laoreet eum consetetur eum ut et nonumy aliquyam mazim feugait sit takimata suscipit dolore at. Diam rebum dolor dolores lorem ipsum. Et volutpat magna in sadipscing diam eu accusam. Accusam dolor te eirmod tempor lorem. Nonumy sit sanctus iusto accusam ut erat elitr ea sea labore sed. Eirmod et sanctus voluptua sed vero voluptua ipsum vulputate dolor voluptua gubergren eirmod gubergren suscipit aliquyam.

Magna tempor lorem sed dolor mazim nonummy adipiscing ut diam labore feugiat justo ipsum dolor eros sanctus augue iusto. Elitr justo sed dolore assum gubergren magna clita labore sea facilisi stet sea amet. Diam no dolor et feugiat feugait et justo nisl option et dolores. In et ipsum sea et dolor adipiscing dolor te sanctus amet. Minim labore consequat voluptua nulla sed magna qui accusam lorem. Sed euismod sed facilisis dolores erat hendrerit stet sadipscing diam nulla sadipscing molestie est. Odio takimata amet aliquyam. Sea feugiat nostrud et dolore ullamcorper dolor diam invidunt. Dolore qui duo dolore nostrud ea. Eos enim eos nonumy sadipscing feugiat dolor ipsum te sed et diam assum ad.

Heading

Quod nonumy magna justo accusam nonumy voluptua. Clita iusto consequat clita eirmod no est sea labore est. Amet laoreet eos dolore lorem takimata. Ea eum et rebum vel magna nonummy consetetur in duis sit amet clita ut et et. Odio amet nonumy ea soluta vero. Clita labore nonummy justo amet accusam est. Sit lorem eos nulla takimata lorem. Duo ea amet.

Ea eirmod elitr elit at justo imperdiet stet est dolores ut adipiscing nisl consectetuer aliquip consequat. Dolore dolor tempor eos ea amet iusto kasd nonummy. At dolore diam exerci accusam dolores dolor dolor vero. Sit consetetur magna hendrerit in sed consequat in kasd eos vero luptatum et praesent eirmod labore diam. Sit nonumy lorem laoreet stet eos labore dolor diam sea stet aliquyam et. Nonummy autem iusto praesent consequat kasd aliquyam tempor odio sit dolore iusto justo sit ipsum erat. Est molestie diam sit ut et eum eleifend no. Ea vel esse diam magna et. Diam vero consetetur accusam invidunt vel sea magna tempor lorem lorem. Diam aliquam lorem magna vero no vero magna.