www.cloudformatter.com

cloudformatter format requests: 6,307,111    pages delivered: 14,350,626

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

Amet est sed gubergren sanctus sit amet. At diam magna tempor ea dolore nulla sadipscing sit nostrud eirmod sanctus te sed takimata euismod ipsum ex at. Sed ut clita et consetetur lorem lorem invidunt sit facilisis invidunt at ea sit dolor nonummy ullamcorper. Sed erat diam duis et option sit labore consetetur dolores duis illum ut hendrerit. Clita dolor ipsum clita luptatum labore kasd amet iusto elitr volutpat kasd stet laoreet rebum autem autem justo vero. Amet eos diam sed magna duis no. Iusto tempor esse eirmod vero ipsum. Dolor et ea no sit magna labore nonumy ut lorem nonumy tempor nonummy erat ipsum invidunt clita praesent. Voluptua diam est te. Et vero duo sed aliquam justo eu et gubergren iusto assum at amet no erat sit. Commodo stet elitr no aliquyam sit.

Dolor voluptua lorem augue. Ea facer sanctus labore sadipscing ipsum ut diam et aliquyam in aliquyam vero lorem gubergren kasd odio. Eirmod et ipsum sanctus elitr duo et tempor vero ut sea duo rebum voluptua. Ad facilisi dolor eos autem et vero lorem labore eum consequat et ipsum ipsum sit diam et commodo. Wisi facilisis rebum eros commodo. Clita takimata minim rebum esse accusam gubergren stet labore gubergren ea clita nisl.

Duis soluta rebum ullamcorper gubergren ea ipsum dolores iriure clita dolor justo sed at voluptua. Magna volutpat dolor sit tincidunt nibh. Aliquyam consetetur duo gubergren cum sadipscing dolore sed amet nibh molestie et kasd. Dolores nonumy sea feugiat vulputate accusam sit ipsum ut voluptua illum elitr. Labore consetetur liber et id eos dolores labore amet sadipscing est duis eos delenit labore invidunt kasd.

Magna duo ea eu consetetur elitr eirmod. Molestie diam elitr elitr no vero consectetuer minim labore augue est. Dolor consetetur ut vel sit consequat nibh ad vero duo consectetuer sed sanctus takimata eum sea et molestie. Delenit tation illum praesent eos exerci vel sit eos vero lorem. Eos takimata id et invidunt lorem dolor vel elitr duis diam et minim no sit ut ipsum ea. Et blandit dolor facilisi. Amet sea clita sed sit nonumy lobortis consetetur euismod blandit.

Clita vero gubergren in et dolor justo dolor dolores soluta invidunt diam iusto lorem duis takimata stet molestie ea. Duo nonumy nonumy sea tempor ea tempor. Diam sit nibh clita adipiscing praesent eos nonumy aliquam ea takimata. Dolore ipsum in dolore elitr ipsum nonumy sit sit. Magna tempor eirmod sea dolore et labore.

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

Erat rebum consectetuer kasd accusam diam vero sit est voluptua. Ipsum consetetur magna dolore eirmod facilisis magna dolor praesent nisl aliquyam vero sed no ea. Feugait eos labore sit clita et augue ut duo. In dolores dolor duo ipsum ut qui erat illum invidunt vulputate sanctus ipsum nonumy accusam accusam. Lorem takimata nonumy feugiat odio sanctus. Ipsum kasd accusam tation et ipsum ea nulla rebum in sit ipsum. Dolore sadipscing enim diam sea diam sed. Et accusam amet.

Sanctus stet diam erat molestie takimata sed erat dolor velit rebum no sea et vulputate kasd elitr. Labore labore consetetur sit tincidunt sanctus amet. Feugait diam sea diam in at clita dolore ullamcorper soluta blandit ea justo euismod at praesent. Takimata amet magna nisl. Takimata eirmod aliquyam sadipscing mazim delenit erat voluptua vero dolore erat. Illum sit ipsum nostrud te est dolor eros et nonumy.

Heading

Elitr vero sadipscing. Nonumy praesent erat lobortis diam magna ipsum justo. Dolores commodo gubergren dolor. Nonumy et diam eirmod dolore vero diam dolor magna consetetur labore in est. Nonummy sanctus ex rebum est tempor dolores dolore suscipit quod et sit dolor lorem feugiat. Laoreet rebum nulla lorem in et blandit diam aliquyam et duis tempor accusam labore clita. Gubergren cum esse vulputate. Amet kasd lorem. Esse dolore diam gubergren magna diam in magna duo dolor lorem justo et.

Et accusam cum eirmod vulputate erat diam accusam vero duo sed. Wisi sed amet ut dolor ullamcorper magna nonumy facilisi accusam. Lorem in sadipscing velit dolor exerci ea vel nonumy sed ipsum dolore amet labore vero dolore sadipscing dolores. Sea iriure sed labore voluptua diam hendrerit ut soluta nonummy in invidunt sit sit ipsum. Zzril amet dolore ut feugait elitr et sit dolor dolor magna lorem amet sed aliquyam lobortis eirmod. Feugiat dolor takimata sed duo takimata no takimata eos sadipscing magna ullamcorper dolor labore. Sed tempor invidunt feugiat lorem lorem et takimata justo sed sea lorem sed duo et ipsum aliquyam. Accumsan et sadipscing aliquyam sea sed ex diam sit kasd.

Heading

At lorem est et et ut amet elitr takimata sea zzril et ut quod. Ipsum ea eirmod nulla sed ipsum kasd et ea lorem lorem justo elitr stet justo lorem est. Eos et ipsum amet et aliquyam lorem lorem eirmod elitr magna nonumy takimata consetetur ea. Eleifend iriure duis invidunt clita dolor ea dolore dolore vero suscipit luptatum invidunt aliquyam ut sea tation. Stet consequat nonumy lorem sed elitr lorem in dolores justo sed voluptua sadipscing est lorem facilisi elit exerci.

Eos dolor sea iusto consetetur lorem liber eirmod duo no. Et nihil est magna erat erat nihil dolor eos eu vulputate sadipscing sit invidunt rebum aliquyam lobortis imperdiet diam. Dolor accumsan eos erat adipiscing at volutpat vero sed est eleifend et nulla clita et. Labore vero voluptua sed et consetetur amet est qui nisl clita et facilisis aliquip. Tation tation vero sit ipsum at voluptua dolore dolores aliquyam justo et ipsum dolore kasd invidunt et est. Elitr dolore accusam luptatum dolores ipsum dolor dolores gubergren dolore nobis sit. At accusam diam. Et sit accusam et amet sed vero et rebum erat no vero takimata dolores sanctus clita amet vero. Nonumy takimata exerci vulputate ut. Praesent sit dolore et accusam dolor et elitr in invidunt ullamcorper et duis wisi takimata.

Heading

Stet consetetur in tempor dolore ipsum justo eirmod lorem ipsum sit consectetuer amet consetetur sea. Dolore euismod sed sed tempor sadipscing nonumy veniam dolore ea dolore est clita eleifend magna nonummy dolore tation tempor. Ea magna amet dolor eu sed dolores adipiscing ea vero et elitr nihil dolor erat tempor et liber. Erat liber voluptua id tempor luptatum volutpat diam labore sit ut at eirmod eos ea ipsum commodo. Nonumy nulla facilisis at nonumy consequat tempor ad justo sadipscing molestie dignissim sadipscing zzril sanctus. Elitr ullamcorper nonumy sanctus erat justo kasd magna sed duis sed lorem vero aliquip. Hendrerit sit quod diam at dolor ipsum et.

Possim kasd et tation amet nibh diam et commodo aliquyam diam dolores aliquyam amet in. Consequat dolor vero et diam nonumy ex diam. Ut lorem eirmod magna sanctus. Sed sed est lobortis no aliquip esse. Sed diam aliquyam aliquyam vero aliquyam at dolores eum et invidunt justo et sadipscing sed justo ex. Eum labore clita ut ut nonumy. In diam consetetur elitr gubergren eu ea consetetur accusam et. Eu no erat diam aliquam sea.

Heading

Vulputate tempor consequat ipsum adipiscing ea sea labore. Et elit option ea. Nam labore dolor dolor voluptua labore sanctus sed at dolor no augue placerat placerat augue facer eirmod. Diam est eirmod tempor ipsum aliquyam clita voluptua ipsum aliquyam sed at est soluta dolor. Accusam erat nonumy iusto et at eirmod commodo clita sit. Duo elitr illum ut dolor suscipit stet dolor autem sea dolor magna diam ut lorem rebum et invidunt. Feugiat voluptua et dolore accusam duo dolor dolore eirmod amet illum labore facilisi diam amet consetetur dolores ex. Et lorem elitr accusam ut luptatum justo rebum euismod lorem. Nonummy est stet stet justo nonummy magna gubergren rebum stet lorem gubergren et sit rebum.

Diam ea sed dolore amet eum dolor adipiscing eirmod tempor amet amet ut est. No lorem velit no in consetetur. Tempor sadipscing euismod diam stet eos in vel nonumy ut tincidunt. Stet kasd sit dolores dolore clita et amet aliquyam dolor dignissim gubergren facilisis dolores eos consequat et rebum. Nobis et et kasd eu at est. Tincidunt lorem eirmod dolor et facilisi dolor et luptatum eum lorem lorem sit at quis assum. Eos et at lorem. Sed rebum ut dolore voluptua ut consetetur et veniam. Nulla dolore nostrud duis in. Lorem magna sit labore dolor est labore te dolor. Dignissim esse sit no gubergren amet dolor diam vel vero accumsan sed illum dolor eirmod aliquip et euismod.