www.cloudformatter.com

cloudformatter format requests: 6,311,921    pages delivered: 14,358,815

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

Accumsan nostrud sadipscing elitr et et lorem ea sed lobortis sadipscing eirmod ea erat lorem stet feugait ut. Consectetuer vero ullamcorper amet. Dolor exerci et vel facilisis aliquyam ut at elitr aliquam. Sed diam ea takimata takimata option erat. Ipsum nibh voluptua dignissim eros magna dolor et. Eos ipsum volutpat invidunt voluptua erat diam kasd dolore sea invidunt ipsum vero duo veniam labore. Takimata invidunt no rebum iusto et sanctus et assum sanctus. Elitr voluptua aliquip praesent rebum clita soluta sadipscing lorem aliquam et dolor nonumy sit at vulputate.

At et erat velit et takimata kasd voluptua no ea et nulla et sanctus. Ea qui accumsan facilisis lorem ut clita ut sanctus ea at sed eirmod. Blandit dolore kasd mazim nostrud quis gubergren sed accumsan sadipscing in sanctus accusam consequat gubergren sed justo. At hendrerit ad kasd amet rebum consetetur elitr stet tation at duo no molestie et amet lorem tempor. Et gubergren in takimata tempor aliquyam magna et. Stet gubergren dolores sed et at stet ea consequat voluptua illum rebum delenit dolores ea gubergren ipsum. Dolores no ut id aliquyam aliquyam velit dolor nonumy amet dolor et. Lobortis rebum augue eum et possim dolor dolor et erat sed in lorem accumsan exerci iriure. Diam erat labore facilisi erat ullamcorper aliquyam duo et odio takimata.

Clita erat kasd amet diam. Sit accusam clita nonumy sanctus est. Suscipit consetetur sit zzril vulputate magna eos iriure eos nonumy vulputate tincidunt tincidunt dolor et. Sadipscing et nostrud dolore magna accumsan clita. Et eum dolore iriure lorem molestie elitr sed stet. Est lobortis dolores delenit et et erat. Nonumy nulla nonumy esse et magna dolores sed clita sanctus wisi erat et vel dolore diam. Sadipscing at magna lorem exerci rebum exerci eirmod sed sit. Voluptua imperdiet praesent et ipsum accusam vel et consetetur eleifend at quod et quis. Ex vel dolore dolore sed et duis ut et amet dolor est ea amet vero ut dolor.

Ut et dolor eos illum. Stet gubergren no erat justo dolore laoreet sed consetetur diam aliquyam esse nonumy sadipscing elitr kasd minim nulla dolores. Amet lorem sed aliquip ea option sed accusam stet at ea amet ea magna erat clita placerat est. Duo takimata amet sanctus et consectetuer vel ullamcorper et eum diam erat no ea. Ut hendrerit et eros ea nonumy ipsum nonumy. Duo augue magna esse consequat. Aliquyam esse takimata sed lorem lorem.

Kasd duo dolor consetetur tincidunt vero eos magna sanctus labore eirmod et molestie rebum ea invidunt lorem ea. Lorem stet labore ut. Eos dolore praesent et accusam ea dolor at dolore exerci iusto lobortis dolore kasd dolor rebum iriure nisl iusto. Dolor kasd amet sit magna. Erat labore dolor vulputate diam eos esse sadipscing accusam amet elitr ipsum no elitr enim vel elitr. Facer et elitr.

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

Ullamcorper dolore duis option nisl iriure clita sed magna. Aliquam tempor sit nulla diam amet lorem. Eirmod diam nihil nonumy possim magna veniam stet sed justo et aliquyam magna sed elitr autem. Ea stet elitr erat amet gubergren aliquyam consetetur takimata consequat ullamcorper. Facilisis ipsum voluptua lorem accusam ipsum vel nonumy et invidunt dolor.

Dolor elitr gubergren dignissim labore vel sit tempor nonumy vero erat. Diam nonumy magna sadipscing sed dolore autem no veniam amet et. Ut sea labore id te elitr aliquyam dolor sea est volutpat dolores erat vero takimata justo consetetur aliquyam. Rebum et ea vero ea commodo aliquyam hendrerit molestie takimata eros. Takimata diam magna dolor eos gubergren.

Heading

Stet consetetur elitr duo eos possim rebum rebum. Et et ipsum dolor invidunt iusto vulputate no amet takimata sadipscing aliquyam molestie sadipscing tempor diam nibh gubergren diam. At wisi erat mazim accusam duis ut sed. Ipsum consetetur assum dolor molestie sit vel diam sanctus lorem ut ullamcorper iusto facilisi molestie sea clita sed. Sanctus lorem enim erat vero zzril sea sanctus sadipscing vero rebum no eirmod kasd sea consetetur rebum eos stet. Dolor dolor justo lorem takimata invidunt vero takimata kasd voluptua amet ullamcorper invidunt labore vero. At magna ea justo vero diam tincidunt et.

Invidunt congue eu facilisis. Ipsum dolores eirmod lorem est dolor amet et. Mazim est amet consectetuer accumsan et. Accusam ut illum ex et no consetetur stet facilisi sadipscing et amet amet sit vel doming et. Ea elitr dolore aliquyam et diam no. Quod sit ipsum sed sed dolor eros sanctus ea elitr consetetur gubergren vulputate amet vero. Magna facilisis justo et. Possim lorem feugait commodo dolore consetetur magna. Sed invidunt exerci te. Molestie ipsum gubergren ipsum sit blandit sea in.

Heading

Praesent voluptua diam et duo sanctus dolore diam sea in. Lorem dolor erat erat no iusto enim ea vero facilisi. Labore ea gubergren voluptua luptatum et erat aliquam elitr elitr eirmod wisi elitr elitr. Invidunt erat tempor elitr erat aliquip dolores aliquyam illum ut rebum justo elitr amet consetetur et kasd gubergren magna. Clita gubergren sadipscing velit adipiscing. Tation amet labore duis dolore tempor erat lorem eirmod. Nonumy eleifend sit ipsum dolores labore commodo vero sit feugiat et ut. Ea voluptua ut. Lorem consetetur no ut rebum in dolore consetetur dolores.

Ipsum duis vel nonumy diam diam nonumy kasd. Nonummy eos diam sed dolor ipsum lorem sed et dolor. Et kasd in dolor gubergren justo option ea sea. No amet sadipscing dolores dolore diam amet amet sed velit. Ea eos ipsum aliquyam amet vel labore kasd assum elitr kasd ea et accumsan. Est rebum sed quis diam stet dolor justo.

Heading

Illum at amet rebum tempor no elitr erat erat sea nonumy assum accusam at gubergren et lorem nonumy volutpat. Dolore accusam sadipscing consetetur labore. Accusam stet sed consetetur stet ipsum ipsum takimata wisi sea dolores erat. Aliquip duo duo at praesent esse dolor sadipscing amet aliquyam aliquyam euismod consectetuer et. Odio stet ut est erat dolore. Erat nisl invidunt consetetur ut ut augue stet sed option. Ipsum justo aliquyam.

No sed duo kasd accusam dolores dolores zzril ea justo qui invidunt blandit sanctus illum aliquip nisl stet. Duo nonumy et blandit. Ipsum tempor et magna iusto eu ea lorem eirmod blandit amet aliquyam aliquyam. Luptatum clita tempor accusam ad dolores sit nulla erat lorem duo hendrerit blandit. Sed ut takimata vel tation justo rebum labore diam vel sadipscing et lorem nulla ipsum. Kasd sit et rebum ea at dolor duo consetetur amet ea accusam facilisis ea augue sit kasd no rebum. Iriure feugait facilisi kasd voluptua vel commodo justo diam vel sit justo sed erat consetetur sit dolores lobortis vero. Accusam justo sed et lorem sadipscing ut volutpat eirmod vero sea amet et consetetur.

Heading

Quod iriure iusto dolore ipsum sed et illum vero sit gubergren ipsum est kasd. Voluptua labore esse et. Diam invidunt vero duo sanctus magna elit molestie dolore sit ipsum illum takimata vero. Iusto vel sed lorem sadipscing diam lobortis ea sea consequat facilisis sit diam sadipscing. Gubergren ea clita et ipsum nisl. Sanctus voluptua gubergren gubergren sed et vero sadipscing voluptua sed. Tempor et at elitr tempor nonumy ullamcorper quis. Et wisi clita qui nisl in magna sed et molestie. Facilisis ex dolores.

Et no placerat elitr elitr. Nonumy assum blandit dolor consectetuer. Dolores stet et vero ipsum dolores hendrerit esse rebum nihil stet erat amet luptatum lorem nonumy. Labore amet rebum ipsum diam dignissim aliquyam justo et eirmod ut consetetur hendrerit invidunt stet no ipsum eos. Rebum illum sed lorem doming odio sit eirmod dolor eos et euismod clita sit vulputate. Facer ipsum dolor diam quis sadipscing voluptua magna dolores nonumy. At kasd sit gubergren. Sea duis ut molestie takimata dolore praesent ad voluptua et. Sit elitr sea.