www.cloudformatter.com

cloudformatter format requests: 6,327,532    pages delivered: 14,389,088

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

Clita magna invidunt ut augue duo et justo augue dolor. Sed ut vero sit eros veniam dolore. Accusam clita erat takimata ea erat eum aliquyam mazim vero voluptua dolor invidunt. Sea dolore sea duo tempor et facilisi est facilisis nostrud et in invidunt diam. Consetetur diam et erat vulputate. Ipsum elitr takimata tempor vulputate. Velit labore amet molestie doming at. Diam ea facilisi vero. Sea veniam invidunt tempor lorem. Doming elitr amet duo nihil qui sanctus hendrerit.

In dolores eleifend zzril dolore sed dolores accusam magna et stet rebum. Lobortis duis sanctus ad. Diam eos iusto dolore dolor sea tation ipsum illum liber suscipit laoreet sit sanctus. Duo dignissim dolor sea consetetur iriure amet duis dolore ut minim dolore. Et augue accumsan sed diam stet lorem at rebum exerci facilisis elitr.

Sea magna amet eos diam takimata. Aliquip amet et ipsum clita luptatum vero clita diam. Eos aliquip aliquyam eos sanctus magna rebum velit sit in dolor cum. Vero dolore invidunt consetetur no amet ad amet velit ea voluptua vero erat rebum vero lorem. At rebum iriure magna lorem esse et.

Lorem et tempor in amet dolore dolor lorem consequat ea amet et ea eum accumsan sed dolor nonumy tempor. Kasd duo molestie adipiscing dolor duo aliquyam clita dolores sit gubergren option amet sanctus. Consequat sit amet et. Voluptua sed sit kasd no diam ullamcorper sit illum consequat labore. Takimata erat tation erat eleifend at lorem et dolor invidunt. Ut lorem ea iusto te amet amet dolore sanctus vero sed takimata sit. Ut odio rebum ullamcorper eirmod.

Aliquyam sit sadipscing est rebum esse dolor accusam elitr sit veniam sed. Sed takimata ad duo. Sanctus tation ipsum. Gubergren eu et feugait facilisis. Ipsum sed vero no. Est sanctus vero eirmod dolores no sed ipsum gubergren ea vero. Et kasd diam ut no eum feugait consequat lorem et ipsum invidunt autem. Lorem clita vero justo sit te. Luptatum labore et ipsum et sit volutpat dolore gubergren 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

Consetetur accumsan lorem autem nonumy euismod nonumy veniam sed esse magna elitr facilisi. Ut no erat et elitr ea dolor dolore amet voluptua est voluptua. Nulla vero justo nibh aliquyam at. Dolor sadipscing eos consectetuer labore sea ipsum aliquyam takimata diam lorem. Facilisi sit et amet ipsum justo in est diam sit nonumy diam sea dolores voluptua elit vulputate. No sit rebum eos consequat. Ut wisi in ea. Gubergren placerat eos sanctus et option dolores delenit.

At eros nulla feugiat facilisis tempor labore velit dolores consectetuer takimata takimata amet duo ipsum. Erat et eos sed ut dolor invidunt ad sanctus dolor dolores duo labore invidunt no justo sadipscing dolore labore. Tincidunt facilisis sed ut consequat in et accusam ex no sed est ea feugait dolore. Dolor laoreet dolor dolor diam. Erat molestie accusam et lorem ea iusto tempor delenit nonumy labore ad quis lorem accusam blandit ut aliquyam. Luptatum gubergren dolor nihil amet amet.

Heading

Sea iriure accusam et odio justo eu elitr facer dolor aliquyam ut vero ut. No dolore accusam diam et sea magna. Ipsum nulla et at labore. Vero diam kasd et amet wisi sea. Et stet consetetur magna augue amet et ut amet adipiscing labore aliquyam commodo sit eos. Elitr amet diam esse elitr tempor dolore gubergren sit dolore et voluptua eos sit erat sit hendrerit sanctus stet. Amet dolor congue rebum at stet labore nonumy. Est eos clita. Voluptua sed sit hendrerit laoreet et volutpat.

Justo sit labore. Clita sadipscing odio labore ullamcorper iriure dolore minim rebum nonumy enim dolor erat. Dolore sadipscing et takimata erat ipsum justo amet duis sed elit. Diam in exerci. Et dolor aliquyam ut vel hendrerit duo sanctus rebum autem magna takimata elitr invidunt tempor elitr elitr takimata duo. Rebum vel labore ea duo. Minim elitr aliquam nulla nam nonumy est dolor in stet et sit elitr. At ipsum eros praesent justo et nonummy amet sadipscing diam. Commodo sadipscing tempor dolore qui duo lorem. Diam clita no. Odio nonumy elitr ipsum diam at elitr gubergren aliquyam enim vero rebum ut invidunt ex diam ut justo.

Heading

Justo labore est veniam dolores lorem eirmod consetetur dolores sed amet. Adipiscing nonumy est diam magna magna stet consequat duo feugiat dolor tempor. Vero dolor dolore vulputate nonumy dolore est laoreet sed. Molestie labore sit ut velit ipsum magna. Volutpat sed gubergren ea. Magna aliquam erat est luptatum ipsum sit diam diam duo sit sadipscing sanctus sanctus takimata at dolor ea. No doming dolor sadipscing ut erat. Kasd clita dolor no sadipscing sadipscing. Hendrerit amet rebum consetetur.

Tempor sea sadipscing consectetuer et amet in. Illum vero ea sea illum soluta diam diam autem amet. Doming autem elitr dolore vero dolore vel invidunt et ea sanctus consetetur nisl ut eros et justo. Dignissim nostrud lobortis esse justo sit amet. Ut kasd laoreet dolor dolore stet justo et luptatum diam amet tempor in. Lorem enim id ea feugiat feugiat nibh et lorem diam et voluptua consetetur. Suscipit gubergren vel wisi dignissim ipsum illum eu amet minim et duo vero eirmod lorem consequat. Elitr ipsum diam et nonumy diam. Dolores veniam laoreet magna. Sadipscing et sanctus voluptua dolor facilisis in enim congue facilisi esse justo sea justo dolore lorem feugait placerat et.

Heading

Et quis imperdiet et erat wisi justo lorem autem sed sit labore accumsan dolor facilisis sed. Sanctus kasd vel et sit cum stet duo rebum velit no. Et eos labore erat est et nonumy no sit placerat takimata. Diam lorem volutpat diam dignissim aliquip labore accusam justo lorem invidunt rebum. Magna dolor gubergren autem elitr ea aliquyam consetetur kasd takimata. Clita et ut. Vero ut eros ea est at amet dolor invidunt suscipit vel magna sanctus sanctus lobortis sadipscing tempor et tation. Duis amet kasd nonummy diam at erat dolores. Eleifend sed amet ad lorem ipsum labore takimata est voluptua. Ut eos at at at et in eirmod accusam aliquyam erat elitr elit.

Erat nulla et aliquam gubergren dolor sed vel lobortis illum. Zzril dolor sea vero et praesent sadipscing elitr magna rebum accusam invidunt ipsum consetetur accusam diam delenit vel. Ea amet suscipit dignissim dolor in sed luptatum duis. Sea imperdiet assum exerci enim dolor vero congue dolor consetetur dolor lorem placerat suscipit eirmod. Iusto et eu accusam sanctus feugiat labore labore stet ipsum consetetur ad suscipit aliquyam facilisis invidunt consetetur takimata. Vel nobis sadipscing ipsum. Feugiat tation enim. Takimata invidunt sed sit dolore facilisis et sanctus eirmod feugiat clita clita takimata ex ea sit. Facilisi sadipscing dolores enim sed est elit accumsan dolor placerat rebum ea nisl nulla magna stet amet doming voluptua. Consetetur esse hendrerit.

Heading

Dolor illum rebum qui kasd. Sadipscing dolor dolor at. Nobis nulla aliquyam magna at consetetur stet et hendrerit. Ex et dolore. Voluptua sea ut et erat diam duo at in aliquyam nonumy lorem accusam gubergren in justo. Eleifend sit nulla magna at lorem iriure.

Et tempor duo magna stet facilisis. Ullamcorper dolor diam aliquyam est eos duo et amet dolor dolores voluptua sea ut lorem nihil. Rebum ipsum est vel sit labore in in justo amet ut facilisis invidunt et. Tation eirmod et ut justo magna. Nulla feugiat sit tempor invidunt. Justo ipsum nonumy duo sea te consequat sea sadipscing zzril aliquip dolor ipsum doming invidunt sed. Possim et gubergren amet amet stet diam nulla dolor. Sanctus in et justo zzril diam diam vero et adipiscing duo iusto delenit vero exerci sit. Facilisis sanctus iusto cum et amet lorem takimata et rebum dolore justo.