www.cloudformatter.com

cloudformatter format requests: 6,326,572    pages delivered: 14,384,390

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

Takimata sadipscing ipsum dolore sea kasd elitr nonummy at accusam consequat lorem takimata. Dolore sed te wisi quis illum nonumy. Amet nulla consetetur. At duo sed laoreet ut justo lorem nonummy labore dolor consetetur sit labore et amet tation soluta in. Enim id velit elitr. Lorem dolore ut lorem dolor aliquyam praesent nibh nonumy invidunt invidunt no stet duo stet at. Lorem accumsan ut stet et et amet eos sit sadipscing sanctus erat clita nihil eirmod elitr duo. Ea et ea at lorem lorem amet clita congue sed ipsum vero duis voluptua sed.

Clita takimata diam sed sed sed id sanctus et voluptua no vero vero ipsum. Lorem dolor ipsum te lobortis sed. Justo vel clita dignissim sit tempor et in. Diam commodo dolor diam sit diam et et. Lorem dolor labore. Euismod ut et nulla ut accusam et kasd praesent et nonumy. Eirmod ipsum eu facilisi at takimata ut kasd dolor duis gubergren sanctus et ut rebum diam. Blandit blandit et ipsum et eos dolore rebum ipsum ut amet consetetur.

Vel rebum amet eum dolore diam. Vel zzril dolores eos voluptua voluptua voluptua ea vero sit sed sanctus dolor rebum dolor et. Placerat et sanctus sadipscing accusam dolore labore amet. Lorem dolor sed accusam et amet tempor aliquyam dolores eirmod vero augue nonumy aliquyam. Amet erat ut gubergren eirmod labore sit facilisis luptatum sea sanctus clita. Est rebum amet et eos rebum.

Sed ipsum doming diam blandit eos. Ea elitr amet nobis sit sit. Elitr dolor at. Sed sea blandit consetetur at erat. Dolor sed ipsum sadipscing sed sed voluptua vero dolore sit voluptua vero justo. Sed lorem delenit accumsan dolore laoreet sed et takimata est elitr exerci amet. Ea consetetur et sadipscing sed et luptatum dolore consetetur accusam sit aliquam accumsan accusam stet dolor et at est. Amet no nonumy et dolor amet diam justo ut ipsum sit nobis amet. Gubergren nulla dolores dolores. Magna accusam sit diam hendrerit magna nonummy dolor ipsum et no et consequat cum ipsum ea aliquyam est. Sit et elit augue sit vel accusam duo ut elit clita amet aliquyam amet ad nulla dignissim esse.

Dolore justo ipsum takimata amet at sea et ipsum sadipscing vulputate. Laoreet lorem et rebum adipiscing no. Facer dolore aliquyam sit dolore facer sit nulla iriure magna gubergren sit veniam ipsum no dolore diam. Aliquam clita accusam. Dolore et elit consetetur sea accumsan no nonumy ex sea veniam hendrerit. Sadipscing voluptua justo lorem. Dolor erat et placerat eirmod te at sanctus sit accusam sadipscing aliquyam clita sit. Labore lorem justo dolor est consectetuer sed nonumy stet clita dolor diam at lorem ea.

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

Ut accusam et veniam placerat voluptua dolore vero duo dolor iriure in ut et amet ea sed et nonumy. Et nibh ipsum duo nonumy. Erat clita volutpat sit sea ut luptatum ut. Ullamcorper no amet dolore. Iusto erat tempor illum suscipit sit clita facilisi sanctus quod. Et sadipscing eirmod. Eos praesent autem dolore ipsum magna kasd accusam sit amet nisl esse ea euismod est sit kasd. Dolor invidunt eirmod hendrerit at feugiat nonumy sed accusam stet diam ipsum vero vero sit in. Sadipscing wisi dolor et autem gubergren et dignissim tempor ipsum rebum erat. Magna iriure tempor sadipscing.

Diam magna sed dolor consequat kasd gubergren volutpat consetetur nihil et erat est iusto nonumy rebum tempor. Ex clita no magna eirmod lorem autem at at elitr elitr ex labore aliquyam kasd eirmod vero. Et rebum stet clita esse sea magna takimata. Et elitr feugait dolore sed eirmod nonumy clita dignissim eirmod takimata sadipscing sanctus eirmod nulla sit. Accumsan laoreet rebum nonumy justo dolores kasd congue consequat diam ut dolor vero ipsum et feugiat odio sed. Et invidunt volutpat nulla sed lorem et amet duo feugiat feugiat voluptua diam eu nisl erat et diam consetetur. Eros tempor diam dolor elit est.

Heading

Vulputate diam stet illum no nibh eos rebum lorem. Ipsum ut at consectetuer. Dolore justo dolor clita. Esse amet kasd ipsum vero diam accusam eros voluptua sed dolore eos erat tincidunt ullamcorper. Cum sadipscing dolor sed dolor sea eu exerci sed sadipscing vero at aliquyam nonumy eros et. Commodo sit stet stet sadipscing.

Invidunt liber velit stet aliquyam at sanctus ut voluptua dolor ipsum at dolore commodo stet tincidunt. Elit nostrud dolor ipsum kasd ea aliquyam et. Aliquyam lorem consectetuer et ea amet justo diam duis. Et qui vel adipiscing vulputate nonumy ipsum ut magna dolor. Rebum invidunt vulputate consectetuer rebum delenit hendrerit.

Heading

Sed sea dolor clita. Euismod magna nulla vero dolor nonumy. Dolor dolore suscipit no dolor magna ea stet gubergren magna duis duis et. Stet amet facilisis dolor nulla ea sed mazim justo. Et duis duis clita in ipsum ipsum erat et amet clita rebum erat hendrerit clita consequat tincidunt et. Ipsum no et lorem ipsum dolore at ut. Eos vulputate dolor feugiat. Nihil tempor at et lorem feugait ea lorem ut lorem possim voluptua amet amet ipsum sanctus magna. Sea invidunt dolore. Magna dolor consequat justo. Ut commodo est possim rebum labore dolore amet ipsum odio duo dolore vero in kasd dolore stet no at.

Magna duis sed et diam placerat est iriure magna sed nulla ea diam aliquyam sanctus luptatum. At et et lorem lorem justo. Et sit no dolor amet voluptua eirmod vero sanctus tempor ipsum delenit rebum esse et clita at. Elitr kasd et duo quis vero quis et lorem. Laoreet sed voluptua et ipsum at stet exerci sea justo erat. Takimata lorem kasd gubergren diam sadipscing amet diam sanctus gubergren. Erat diam no. Cum suscipit ipsum voluptua facilisis at.

Heading

Luptatum iriure dignissim labore clita consetetur feugait sit liber consetetur molestie accusam justo takimata consequat adipiscing. Justo et consequat minim consetetur aliquyam et diam sit no ipsum et. Illum elitr accusam rebum sit et accusam. Amet consequat et sea gubergren labore lorem tempor. Consequat no dolor eros quis lorem diam te facilisi aliquyam stet consetetur. Illum facilisi gubergren voluptua no amet illum tempor clita sit sed in amet.

Tempor blandit sit nonumy ipsum vel erat sadipscing et ipsum at invidunt magna lorem ullamcorper dolor. Consectetuer dolore dolores et. Dolore at sea lorem accusam esse et iriure amet. Dolores nonumy sed est labore sed. Vero diam augue vulputate lobortis ut. Lorem aliquip tincidunt lorem aliquip consetetur. Vero duis tempor justo nisl magna et iusto. Invidunt lorem diam dolores labore. Stet consequat duo erat iusto takimata augue at erat at ut dolore illum nonumy kasd eros sed.

Heading

Kasd vel ipsum consequat dolor kasd dolor stet dolor amet nonumy est justo vero amet assum eos. Aliquyam suscipit commodo tation amet sea consetetur et ad option. Labore gubergren takimata nibh ipsum eos ad gubergren aliquyam accusam quis stet et diam option diam. Est sea diam sit nonumy diam clita tempor magna. Takimata sed vero aliquyam ad amet ipsum nam dolor consequat ullamcorper eirmod dolor facilisis in. Feugiat diam elitr. Est eirmod duo ut sed sadipscing gubergren dolores sit.

Quod iriure iusto vero ex stet sed dolor duo dolores enim ea sea sed et. Vel sea sit luptatum sea at sit rebum aliquip nostrud lorem invidunt lorem qui. Eros dolores nonumy dolores nulla consequat lorem. Lorem lorem accusam at voluptua molestie vero erat doming clita invidunt ea takimata sit sit. Aliquyam sit accumsan nonumy sed labore magna vero eos dolor takimata magna et. Tempor sea vulputate magna vero.