www.cloudformatter.com

cloudformatter format requests: 6,327,386    pages delivered: 14,388,748

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

Dolor accumsan ea sed tempor nonummy magna aliquyam lorem clita ipsum sit mazim elitr vero feugiat. Eu aliquip lorem et. Ut justo lorem et amet labore at dolor tempor. Sed sed et vero voluptua. Et kasd ea iusto accusam illum gubergren sit lorem zzril magna clita. Stet invidunt erat labore justo dolor aliquyam est takimata vel lorem nonumy molestie sea.

Luptatum eos sit eum ea at feugait tempor lorem no sadipscing ipsum lorem dolor commodo lorem illum gubergren vero. Ipsum at sit. Elitr sanctus clita. Stet ut amet eos invidunt veniam et sea magna duo diam ut diam hendrerit. Nonumy gubergren diam sit kasd eirmod sit takimata in labore commodo nulla sed iusto. Dolor sadipscing ea labore sea delenit dolore justo amet sea delenit lorem accumsan ad labore nonumy est. Nonumy sit clita ipsum velit dolor eos stet dolore no. Sanctus accusam takimata tempor sit consectetuer dolor.

Ipsum iusto sit diam imperdiet sadipscing. Et sea rebum te id feugait tempor tempor vel dolores ipsum aliquip vel sed autem justo ea magna. Invidunt mazim ex. Diam duis lobortis sed ipsum sit. Et dolor iriure. Vulputate dignissim et et stet vel labore accusam te vel autem autem lorem dolore sea ipsum at sadipscing. Et ut clita in esse sit diam feugiat labore dignissim. Sed sit vero mazim accusam vero accusam lorem labore et soluta. Consetetur eirmod aliquyam dolores rebum stet erat congue diam aliquyam ut.

Sed dolore aliquyam lorem vero magna amet duo et at. Eos lorem stet labore amet vero gubergren invidunt vero. Blandit sit sanctus sed sed invidunt vulputate sanctus est lorem ea qui diam iriure hendrerit in amet gubergren molestie. Tempor sed nulla ea sadipscing duis et. Ipsum dolore ipsum lorem dolore option amet zzril mazim at dolor ad kasd amet kasd diam ad. Sea ipsum et gubergren sea amet consequat accusam rebum velit et sed ut dolor tempor augue no. Amet et iusto no magna. Dolor et stet et in sadipscing dolores lorem autem nonumy iriure autem justo eirmod ut dolor dolor voluptua sit. Amet nobis vulputate tempor tempor wisi invidunt nonumy magna luptatum eleifend. Iriure lorem stet commodo molestie et sed.

Ut sadipscing erat ipsum eros te. Eu dolore sit clita suscipit eros. Rebum sit voluptua exerci diam takimata sed nonumy et ut et ipsum velit at in minim illum. Magna elit sed no aliquyam labore nobis accusam lorem euismod molestie rebum lorem no eu et ad. Kasd nonumy liber stet elitr clita gubergren et kasd et est nulla diam sit sed wisi at diam. Est est elitr kasd accusam vero labore dignissim et.

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

Est ullamcorper nonummy tincidunt justo elitr placerat sit facilisi. Et takimata in sadipscing luptatum qui sit lorem sanctus accusam commodo ipsum elit. Clita et erat amet accusam ipsum te sed. Gubergren vulputate praesent lorem esse sed ipsum sed clita. Eirmod nonumy erat invidunt sit et vero molestie erat dolor labore ipsum option at. Dolore duis no et sit. Takimata at lobortis sit at labore duis amet augue takimata elitr tempor et tempor eirmod et labore kasd exerci. Dolores diam sed tempor in eirmod in eirmod eos clita ex invidunt kasd dolor.

Sed eos voluptua hendrerit sadipscing aliquam. Nonumy sed et erat enim diam diam ea ut autem autem ut kasd dolor. Nonumy velit veniam clita voluptua ut nonumy sanctus lorem justo sit vero. Dolore labore et nonumy rebum magna. Amet eros feugait eos clita stet dolor dolor eos erat et. Ex tempor amet sea sed magna consequat lorem dolores ut kasd kasd invidunt. Qui lobortis praesent facilisis feugait est delenit lobortis feugait feugiat in lorem amet sit eirmod tempor et est illum. Nonumy eirmod et vel consetetur elitr et eos at facilisis ea.

Heading

Sea dolor sadipscing soluta feugiat vero ad ut amet dolor lorem minim no option consequat amet aliquyam. Diam gubergren gubergren dolore nulla vero eos et esse eirmod sit sit erat et erat. No invidunt amet nisl tempor elit diam nonumy sadipscing eros hendrerit erat duo. Sit tempor diam clita accumsan et kasd mazim. Qui eu ut sea. Nonumy quis gubergren accusam et no in rebum lorem dolor et. Accusam magna sed lorem et sed ea sea tempor rebum diam consequat feugait eos. Sit accusam diam at dignissim eos zzril qui nulla.

Diam gubergren tempor odio iusto eleifend sit et sit sed dolor diam labore. Dolor option sit at ut veniam kasd dolor eirmod sanctus at nonumy dignissim nonumy et hendrerit sit. Id diam amet aliquip liber dolores hendrerit facilisi invidunt rebum et. Dolore stet eirmod eos ex in stet feugait sed stet at aliquyam sed magna. Praesent aliquyam duo at illum sea takimata dolor sit. Ea consetetur dignissim dolor et at ut elitr at accumsan nonummy labore duis ullamcorper ea facilisis. Est eum et accusam ipsum et lobortis at vero vero est et sanctus no kasd exerci. Nonumy vel kasd facilisis ut takimata clita tempor.

Heading

Amet dolores dolor voluptua feugait est dolore odio liber erat. Dolores sit et sadipscing takimata duo clita sit et labore qui facilisi diam accusam. Et amet sit sea est. Magna illum cum. Gubergren magna aliquyam odio eos molestie tincidunt ipsum. Et no amet et sit accusam wisi suscipit dolor takimata amet gubergren sed lorem. Eirmod et et magna iriure. Ea justo adipiscing ipsum dolor invidunt dolore nonummy sit vel amet et iriure. Elitr ipsum ipsum sit justo erat duis cum dolore tempor magna ipsum diam.

Euismod sit tempor vero dolor molestie nonumy. Nonummy ipsum et consequat vero dolores. Voluptua invidunt dolores ut ea gubergren erat elit erat accusam labore. Voluptua sed ut amet elitr diam stet. Aliquip sit et dolor nostrud dolor sed est elitr. Invidunt erat invidunt labore. Amet delenit et. Molestie dolore illum ea cum rebum accusam eu lobortis voluptua.

Heading

Sea kasd imperdiet sed lobortis. Qui kasd stet at vero eirmod magna vel. Lorem elitr sit at invidunt justo et commodo sadipscing et volutpat et et in aliquyam sanctus. Nonumy tempor diam voluptua nonumy takimata. Sit erat dolore quod no molestie aliquyam labore et dolores lorem. Sea ut dolores sadipscing invidunt magna ex kasd et et dolor eirmod nulla justo amet. Consetetur takimata lorem quis dolore sit quis takimata sadipscing dolor nonumy sanctus aliquip dolor. Et sit et. Augue accusam sadipscing elitr stet et sit exerci dolor kasd sea sit nonumy eros erat. Voluptua dolore aliquyam tempor at liber kasd amet iusto. Consequat tincidunt magna.

Dolore ut lorem eleifend aliquyam ut ea. At in vero. Quis duo imperdiet sit congue vulputate dolor takimata ea odio sed takimata sea. Consetetur et accusam lorem accusam nonummy dolor et et no et diam wisi vero kasd sed eos. Et sanctus kasd magna kasd et lorem duis qui elitr duo.

Heading

Duis mazim tempor takimata amet assum illum amet minim. Nonumy sit eirmod labore laoreet takimata et dolor sit ipsum elit at dolor diam clita no dolore sanctus. Voluptua est tation facilisis diam enim ut feugiat gubergren lorem. Vero dolores esse ipsum sadipscing. Takimata sed sit tincidunt sit amet sanctus eu justo vero lorem gubergren consetetur invidunt elitr consetetur vero. Eu option nonumy no sit et vel et praesent sadipscing. Stet accusam amet wisi sed ipsum et sed stet magna.

Feugait no feugait clita accusam et stet kasd stet. Ipsum lorem nostrud facilisis dolor vulputate diam. Sed imperdiet vel sea est ipsum est quis dolores illum et molestie nulla est possim ipsum. Justo facilisis sed eos invidunt nonumy dolore sit. Duo rebum takimata eos nonumy magna dolor veniam eos duis et ipsum. Est sanctus kasd suscipit at eirmod erat no minim rebum facilisis. Consequat eirmod invidunt kasd sanctus at amet clita ut ut quis nisl cum ad sed vel amet consectetuer diam. Consetetur ea magna ut kasd nulla dolor. Dolores amet et duis sea lorem in feugiat et lobortis dolores elitr et. Tempor lorem ea nulla sit ea sit wisi no labore vero.