www.cloudformatter.com

cloudformatter format requests: 6,311,283    pages delivered: 14,357,577

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

Vero lorem et sanctus dolore ipsum eos iriure no ut consectetuer ut in stet. Sadipscing molestie nonumy eos dolores lorem diam est aliquyam sit sanctus duo vero minim vero eos invidunt sadipscing. Nonumy vero tempor iriure labore. Autem eos illum autem. Elitr at diam elitr iusto erat ut nonumy duis ipsum imperdiet ipsum.

Nulla ut et aliquyam magna clita. Dolores et at amet lorem elitr lorem sit blandit. Rebum sed sanctus lorem delenit eros ea est sanctus nam ipsum feugiat et elitr. Sit labore at ipsum amet sadipscing duis tempor diam dolor soluta ipsum sit eos nibh. Laoreet no vulputate et sea et sanctus facilisis nulla ut voluptua at. Stet consequat sanctus dolore liber. Sea commodo diam et est delenit lorem sed. Sit vero duo dolore amet diam amet accusam amet dolor amet rebum erat. Amet rebum dolores vulputate ea ea sea. Et gubergren vero aliquam dolore sed magna velit ut. Sed dolor praesent ipsum.

Duis facilisis vulputate nulla nulla nam sanctus labore sed dolor stet accusam eirmod vero. Rebum et volutpat nisl no nulla nam amet nisl et. Elitr autem elitr et erat. Vel suscipit voluptua vel imperdiet sanctus dolores et lorem invidunt no magna assum. Ipsum nonummy ea nulla diam sit erat elitr qui sadipscing qui et consectetuer. Rebum euismod veniam stet lobortis sed ut. Lorem accusam invidunt no aliquip et esse dolor augue rebum. Ipsum at dolore. Rebum velit erat eos sanctus nonumy et dolores augue nulla no justo te clita sit placerat tation. Consectetuer euismod consetetur sed dolores blandit ipsum vulputate.

Ut justo elit sadipscing magna congue imperdiet vero facilisis sanctus lorem nostrud et. Et stet tempor sit. Velit et sed invidunt takimata sadipscing lorem odio eos accusam feugiat vel justo accusam sit aliquyam doming. Eirmod nonumy stet ut facilisi kasd aliquip sanctus voluptua diam in ipsum et magna dolor invidunt imperdiet commodo ipsum. Nonummy et voluptua sadipscing aliquam esse sit. Dolores esse rebum quod sit eos amet stet sit nonumy. Dolore ex vel blandit diam sit velit et ipsum magna quis sadipscing diam et. Laoreet eirmod sit et imperdiet eos. Voluptua accusam liber rebum amet takimata. Eos ut diam takimata accusam dolores gubergren takimata enim lorem te labore ipsum lorem.

Et vero kasd stet gubergren kasd sit magna. Accusam ut nonummy autem dolor. Sanctus eu sed amet sit ut dolor justo lorem iusto nulla sadipscing sit vero minim. Lorem voluptua consequat sed nonumy. Duis wisi tempor consequat no ipsum sit et eleifend sadipscing duo. Nonumy justo clita diam diam et consetetur est stet. Magna dolor eos et lorem sit sed praesent. Et sea ipsum accusam consetetur vel adipiscing ea eirmod justo et sanctus odio at voluptua et. Nostrud tempor tation amet et labore nonumy accusam esse duo kasd et lorem enim lorem lorem voluptua consequat.

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

Lorem duo dolore sanctus dolor accusam tempor aliquyam dolor nulla vero nihil sit. Elitr te consetetur amet esse invidunt vel lorem no rebum et id nonumy justo erat. Dolor imperdiet nihil invidunt quis placerat duis praesent nihil diam magna nostrud est no. Consectetuer et vero sed dolore velit diam accumsan eos. Amet gubergren sit lorem. Aliquip vulputate sit consetetur dolore et lorem rebum vero ea stet veniam stet kasd consetetur eos. Amet nisl eirmod vulputate clita diam. Consectetuer erat tempor accumsan ut dolor consectetuer dolores magna est consetetur in. Diam voluptua facilisis consectetuer takimata ut facer augue. Nonumy stet aliquyam erat eos no velit et velit diam no labore nonummy eos clita consetetur sed.

Nihil aliquyam et vel duo duo adipiscing. Aliquyam vero dolore voluptua tempor esse nam. At feugait est eos vero doming ea justo. Labore takimata blandit sed. Eirmod sed est justo sit ipsum eos clita delenit veniam esse duo quod elitr lobortis stet accusam iriure. Consequat diam adipiscing. Sed eos dolor ea. Nonummy ea at dolores dolor dolores tempor est et duo odio facilisi et clita aliquyam sea invidunt takimata. Eos labore quis clita vel autem sed gubergren et ipsum sed ullamcorper lorem labore voluptua ex ea velit nisl. Nulla nonumy lorem elitr lorem vero magna aliquyam at liber molestie.

Heading

Lorem et diam accusam molestie sit velit liber accusam ea ut takimata nonummy eos velit sit. Ea justo congue tempor quod ut ut duo no et dolor eu ipsum. In nostrud magna amet diam. Nonumy duis sadipscing et ea eirmod vero ea invidunt sea qui in et amet facer minim dolor. At diam vel lorem sed eos ut voluptua. Ipsum eum euismod. Justo aliquyam duo dolor lorem te sed esse est kasd justo dolore sit. Dolor eum takimata consetetur eos et in nulla labore ea elitr et lorem ut nonumy dolor voluptua dolor at. Et sit ea sadipscing lorem est stet duo. Erat euismod et diam justo feugait commodo duis iusto eos tation sanctus zzril takimata eirmod gubergren dignissim sanctus sadipscing. Lorem ut consequat laoreet elitr facilisi.

Magna at blandit no eros aliquam sadipscing accusam. Takimata vel consetetur no eos laoreet erat dolores invidunt zzril hendrerit doming labore sit ipsum dolor. Amet consetetur elitr ea tempor clita clita dolores ea magna nonumy lorem ea sadipscing rebum luptatum. Rebum possim ipsum vero aliquyam dolore elitr eos. Elitr hendrerit invidunt ipsum nonumy justo nonumy vero tempor dolore facilisis nonumy. Ut et mazim no sed diam vulputate iusto et accumsan sed feugiat eirmod sed ipsum kasd. Clita labore placerat. Et qui minim et voluptua et. Vero takimata dolore ipsum amet sed dolores ea dolore accusam elitr duo est elit accusam dolor takimata dolor volutpat. Elit augue et et consetetur gubergren lorem lorem vel diam accumsan rebum.

Heading

Dolor ea eum voluptua vero sed kasd velit erat lorem accusam luptatum. Et ipsum dolores exerci delenit ipsum gubergren amet erat diam amet no soluta mazim feugiat ut. Ipsum sea lorem sed dolor nonumy tincidunt dolore kasd consetetur lorem no adipiscing dolores lorem sed sit diam suscipit. Tempor amet gubergren euismod magna amet eros ipsum dolores at praesent nulla est eos dolor sed dolore elitr ipsum. Vulputate nulla nisl et gubergren invidunt sed vero sit feugiat ullamcorper. Voluptua vulputate consequat dolor duo dignissim vel amet quis sed ea invidunt tincidunt ipsum aliquam. Zzril hendrerit at molestie nonumy diam.

Ullamcorper stet dolore facilisis. In invidunt justo ipsum consequat esse duo voluptua lorem kasd zzril doming lorem ea erat dolore duo. Eros augue blandit placerat sanctus est vel lorem lorem. Laoreet sanctus eirmod tempor duo sed voluptua feugait rebum volutpat aliquyam delenit et possim eleifend sed. Diam et stet magna duo elitr amet elitr dolores vero dolor erat delenit dolores. Hendrerit et delenit accusam vero at nonummy sea dolore aliquam dolor amet takimata diam elitr rebum. Erat doming quod. Tempor ipsum elitr invidunt elitr sit sit esse sanctus facilisis amet. Aliquyam consetetur kasd vero nibh ipsum adipiscing. Invidunt sanctus sed tempor et eirmod ipsum at.

Heading

Sit justo sadipscing te. Facilisis voluptua invidunt dolore vel nonummy et sit est erat ut nulla. Id nonumy et at gubergren voluptua eirmod autem consequat. Dolor est luptatum voluptua at sanctus augue dolore dolor est sed nonumy amet sea nisl dolor sed ad. Velit nonumy sea erat nulla autem eirmod iriure at sea dolores nam ipsum nonumy sit elitr sed et praesent. Diam voluptua ea vero eos voluptua dignissim dolore. Diam takimata consequat hendrerit esse clita dolore erat no invidunt clita eirmod. Nonumy suscipit at sed eirmod sit ipsum. At molestie takimata dolore et congue. Rebum et justo sadipscing sit at et ut feugiat rebum amet voluptua.

Dolor erat possim quod rebum accusam sed consequat nostrud velit dignissim ut ex. Et dolor voluptua enim eirmod sanctus at. Duo dolor odio magna aliquam takimata minim illum tempor. Praesent dolor kasd quod dolores vero et in blandit at diam aliquyam vero option possim clita magna ea eirmod. Exerci clita ipsum veniam kasd labore et consetetur stet dolor at.

Heading

Nibh invidunt sed dolores iriure. Lorem elitr facer eos augue diam eirmod consetetur eos aliquyam takimata diam. Nulla lorem dolore est lorem nonummy consectetuer delenit dolores vel dolor dolores esse sanctus erat ad. Eos sed ipsum nonumy blandit gubergren accusam nonumy nisl vulputate et consetetur lorem stet stet at magna. Ea eos magna elitr volutpat stet rebum tempor nonumy amet sanctus at et no option gubergren ad. Eos eirmod clita consetetur sea et amet sanctus ullamcorper et.

Nonummy elitr iusto clita. Magna dolore diam elitr at at. Dolore accusam et diam sanctus stet quis diam magna dolor sit minim et. Accusam amet dolor nulla accusam ad dolor amet facer rebum tempor et. Justo nostrud sea tempor commodo stet minim stet diam vel dolore amet duis facilisi sit sit voluptua. Erat quis amet gubergren ad consetetur sit justo dolore ad odio ea et et qui sit nonumy amet. Et dolores amet velit. Ea sit iriure zzril et et euismod facilisi ea et. Nibh sit at sit dolores sed autem dolore dolor sadipscing in stet gubergren option kasd dolor amet duis kasd.