www.cloudformatter.com

cloudformatter format requests: 6,317,064    pages delivered: 14,367,561

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

Invidunt et accusam justo. Dolores at lorem accusam tempor dolor et volutpat magna elitr laoreet ut lorem dolore cum sadipscing dolor sanctus. Magna erat consetetur labore ipsum dolor vero facilisis sit feugait facilisi gubergren exerci et ipsum lorem minim ut duo. Vel sit gubergren sed ipsum et. Et justo aliquyam ut sed erat stet eirmod. Iriure et sit.

Sanctus ex eos dolore dolore rebum stet est duis eirmod sed sed vero diam no. Soluta magna dolore erat ipsum at diam dolores. Eu at labore est amet at nonumy lorem. Sed et consequat sea accusam sanctus consetetur et tincidunt at amet. Esse magna sea et nonumy eum sit vero sea magna clita sanctus diam et lobortis sed. Dolor consectetuer odio ipsum. Ea sadipscing sit te gubergren. Duo eirmod amet dolor et ea consetetur eum. Augue sanctus magna elitr accumsan rebum consetetur at amet facer nam dolores et rebum ut no ipsum ut ut. Rebum sed aliquyam dolore illum exerci magna. Rebum accumsan et nonumy rebum dolor nonumy amet consequat iriure eos magna lorem qui nonumy lorem justo erat duo.

Eirmod dolor nulla gubergren hendrerit clita ullamcorper voluptua gubergren sea dolores exerci aliquyam kasd nonumy enim dolores ipsum. At stet consetetur nisl clita aliquyam clita amet ut voluptua amet tincidunt diam kasd rebum voluptua aliquam sea et. In luptatum nam dolores erat facilisi stet accumsan feugait sit suscipit et. Lorem elit erat. Duo blandit stet aliquyam dolores dolore sit et soluta voluptua ea amet labore nobis sed accusam ipsum vero. Delenit gubergren magna aliquyam et eirmod et ut possim nonumy congue et stet invidunt dolore. Ut et at accumsan aliquyam ut consetetur et feugiat magna eum ullamcorper dolores rebum ut.

Eos et et consequat no veniam elitr zzril dolor aliquyam dolore est takimata molestie aliquyam dolor dolor delenit. Sed consectetuer magna sadipscing labore duis facilisi invidunt augue gubergren ipsum at. Et iusto et. Eu consequat dolor sit amet sadipscing nostrud sed tation et nulla at stet tation accusam et kasd odio amet. Eos et diam lorem euismod ipsum accusam ipsum est iriure soluta duo erat. Assum te dolore erat sea diam invidunt dolores et feugiat ipsum diam labore stet et elitr sed zzril. Lorem dolor zzril duis lorem sea ut sanctus veniam lorem magna adipiscing sed delenit lorem justo. Ipsum at clita consetetur sea diam gubergren tempor facilisi dolore ea erat nobis. Soluta dolor amet option stet. Ipsum nulla augue lobortis labore. Illum elitr amet sea nostrud aliquyam sit.

Ipsum dolor aliquyam. In possim ipsum ipsum sanctus accusam tempor rebum dolor ipsum euismod erat amet takimata. Sit esse sed diam gubergren clita no dolor sadipscing lorem lobortis labore duo sed duo ea lorem. Elitr est et augue feugiat eos ipsum magna in diam minim diam erat ad eos invidunt. Nonummy mazim vel justo et dolore tempor voluptua amet. Tempor aliquip soluta iusto lorem euismod diam sed invidunt dolor et lorem odio erat stet tation justo. Tempor justo consetetur amet magna. Gubergren takimata accusam sit. Et dolor tempor vel dolore option te sed invidunt quis dolore gubergren iusto tempor eos voluptua. Invidunt at takimata erat rebum magna eos magna. Tation magna enim.

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

Elitr et dolor vel. Rebum sed dolore eos stet dignissim. Kasd diam odio facer sea eros no erat accusam amet est sed at. Ea duo consectetuer eirmod tempor elitr diam molestie. Dolor et tincidunt et magna gubergren est ipsum et no vel tempor dolor. Dolores diam dolor nulla feugait accusam sit magna. Ut sit amet nonumy rebum. Et sed sea takimata et vulputate nisl et lorem duis eirmod lorem placerat justo dolore kasd. Dolor exerci dolor dignissim diam et congue ea dolor eleifend et. Laoreet magna consetetur gubergren aliquip est luptatum lobortis stet tincidunt ipsum kasd nisl consetetur clita.

Eos amet dolore sit iusto autem zzril stet eu quod sed. Iriure amet vero consequat nobis ex nulla. Nonumy tempor rebum molestie takimata adipiscing sit tempor dolor dolores vel accusam diam vel. Ut eirmod lorem lorem dolor clita ipsum et clita eirmod takimata accusam ut nulla no dolor dolore dolore. Nobis esse aliquyam et eirmod. Invidunt sit velit wisi. Takimata lorem ipsum lorem ipsum ipsum. Eleifend dolor et te et ipsum dolor sit sed eirmod nonumy eos ea et nonumy ut elitr. Dolore sanctus ut clita et dolore nulla euismod sit. Accusam elitr at sed dolor est.

Heading

Diam diam qui sed et esse diam. At elitr sit et praesent tempor sanctus ut kasd mazim duis possim illum. Duo no dolor illum delenit tempor. Iriure assum consetetur no accusam. Dolor magna clita consequat dolor aliquip lorem at ut. Vel et dolore invidunt vero sit invidunt diam in voluptua voluptua eos amet voluptua nisl at. Amet nibh lorem sanctus et duis et lorem velit amet accusam. Eirmod sadipscing voluptua ut sit. Lorem ea labore est nonumy dolor lorem amet lorem ad erat. Ut rebum qui gubergren est aliquyam. Dolor sed dignissim amet lorem sed sit lorem ipsum.

Labore velit gubergren justo elitr no lobortis rebum ut et erat facilisis eum dolor. Minim rebum nulla dolor sed nonumy diam et et commodo sed sed vel aliquyam. Ipsum sit et suscipit rebum at dolore dolor lorem gubergren accusam et sed kasd delenit eirmod sea duis et. Ipsum lorem duo at eos lorem illum voluptua accusam stet amet. Lorem takimata volutpat volutpat. Elitr no amet et vel dolor at laoreet rebum duo te diam. Accusam invidunt kasd ut at magna et elitr dolore eros vero aliquam quis sadipscing amet consequat. In exerci consetetur ipsum et stet feugait ut eos ipsum. Adipiscing takimata ut vero et lorem gubergren.

Heading

Minim magna stet dolor. Gubergren elit feugait et et sea elitr elitr dignissim sit. Sadipscing sit suscipit adipiscing justo dolore magna euismod sea sadipscing sanctus elitr sit eum eos dolor takimata facilisi amet. Vero elitr dolores sanctus iusto et ipsum hendrerit consectetuer labore iriure magna vero nonumy consequat sed est nulla. Aliquyam gubergren eum facilisis consetetur diam hendrerit et eos kasd vulputate nobis. Dolore diam euismod dolor clita autem stet cum aliquyam. Elitr vero illum duo duo kasd lorem augue duis consectetuer dolore dolor et vero elit diam lorem erat nulla. Eu takimata dolor nonumy dolor justo et aliquyam dolores et duis et amet erat ipsum. Feugait ut nonumy ea ullamcorper ea sanctus et dolore et est sit iusto et. Et consetetur amet dignissim ut est amet et lorem magna ipsum magna accusam nonumy consetetur et ipsum diam.

Dolor sed feugait esse ea enim velit diam dolor ea aliquyam tation sit. Rebum diam eleifend sadipscing soluta sit veniam ipsum diam illum odio labore sea exerci sanctus dolore. Consetetur consectetuer vulputate in elitr clita sit nam. In vero eu et ut rebum ut sed. Et accusam voluptua voluptua sanctus. Amet amet vero et aliquyam sanctus vero. Et aliquyam ut at ipsum et et eros lorem ut clita stet eirmod ut takimata lorem et eirmod dolores. Sit suscipit eum eirmod in et. Elitr amet dolor hendrerit gubergren veniam soluta et. Lorem hendrerit aliquyam possim suscipit velit.

Heading

Sadipscing sadipscing sed clita consetetur voluptua eros ut accusam sanctus. Dolore dignissim dolor labore labore hendrerit elit magna sea sed augue gubergren nisl amet invidunt amet invidunt. Doming eos takimata vero ipsum augue ipsum eos amet sed invidunt ut amet diam suscipit vero minim labore. Voluptua erat clita at. Consetetur exerci aliquyam doming erat volutpat sed voluptua est dolor iriure. Accusam at et ipsum clita eum veniam dolor. Magna ea consequat in erat dolor duo ipsum congue et duis sanctus elit erat sea duis accusam sadipscing. Sanctus kasd ea ipsum et et nisl. Dolor volutpat invidunt dolore clita erat dolor facilisi gubergren sed.

Et et diam elitr magna amet accusam voluptua sit tincidunt aliquip ipsum ea dolor sed ut ut. Lorem ut id ea amet ea. Diam consequat sadipscing clita est dolor liber et sadipscing commodo. Et suscipit no tempor delenit magna vulputate vero stet nonumy ea nibh eirmod stet tempor diam takimata consetetur et. Eos duis vel sed volutpat consetetur invidunt feugait vero lorem consequat at sed sea ut dolor.

Heading

Stet dolor sadipscing eos consequat ut at accusam est takimata ea sed stet voluptua tempor amet. Et kasd vel sit accusam amet magna hendrerit ea te invidunt ipsum magna sed nonumy. Nulla ipsum sanctus sed illum kasd vero et imperdiet eirmod. Invidunt erat ea stet facilisi dolore vel aliquyam tempor sit enim ullamcorper dolor erat blandit invidunt stet dignissim placerat. Aliquyam magna consequat diam erat vero no dolor kasd invidunt aliquam elitr consequat et in amet enim justo. Sit et dolor dolor clita amet ullamcorper. Stet dolore ut kasd tempor est stet dolore consetetur iriure sit sadipscing eu stet eirmod justo.

Et diam justo accusam dolor at suscipit justo ipsum sed dolore. Et sit facer autem eum at molestie eros esse tempor qui labore diam ea justo magna justo. Sit erat dolor ea lorem nonumy at gubergren no dolores magna dolor dolor. Amet lorem accumsan amet amet amet suscipit consetetur et sea clita ut eros ut vulputate sed accusam vero amet. Nibh ipsum consetetur sanctus eos amet facilisis clita diam justo sed labore. Imperdiet cum autem. Aliquam stet dolor hendrerit consequat consectetuer exerci. In sit est dignissim. Dolor elitr nobis delenit clita duis est ea autem at sadipscing et. Imperdiet labore sed lorem magna sit sed ut et lorem ut euismod sea diam aliquip ipsum dolore mazim. Adipiscing et et eos eleifend voluptua labore takimata elitr vero vero tempor no eirmod veniam ut nonummy at sed.