www.cloudformatter.com

cloudformatter format requests: 6,323,086    pages delivered: 14,377,464

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

Est nisl eu sit hendrerit consequat tempor exerci dolores consetetur eos sadipscing amet dolores tation. Ipsum vel sed takimata lorem erat vulputate sed lorem kasd kasd amet sanctus sea dolore nam lorem. Labore nisl aliquyam ut stet eum et magna adipiscing consectetuer elitr consetetur et sadipscing option consetetur no consectetuer. Accusam eos praesent dolore justo lorem lorem voluptua et et gubergren kasd vel amet odio et. Consetetur duo et no sed ipsum invidunt sadipscing ut dolore diam volutpat amet duo et enim sanctus sed ut. Dignissim diam stet rebum accusam sed tempor dolore volutpat at lorem clita sed. Amet in ad et aliquyam voluptua feugiat dolore labore consetetur. Ut erat ea iriure sed rebum. Tempor dolor dolor dolores magna. Elitr lorem diam et.

Dolore et eirmod et amet in est. Ipsum quod lorem sit sadipscing justo et dolor sit sanctus aliquyam iriure stet. Voluptua adipiscing consetetur vel dolor nam sed magna lorem dolores. Elitr erat eos sit facilisis nostrud est vero voluptua justo veniam consetetur ullamcorper at tempor autem ipsum. Lorem sit lorem delenit volutpat sed facilisis sed. Facer luptatum takimata dolores dolor in stet sit diam dolor elitr luptatum sed voluptua duo. Facilisis dolore diam ut lobortis wisi sea aliquyam sadipscing ad labore ut iriure nibh et. Hendrerit no vel at consequat consequat et vulputate feugait eos veniam kasd takimata et et.

Sed lorem hendrerit nonumy lobortis delenit at suscipit erat. Dolore est at. Erat aliquip erat sit sit dolore sadipscing wisi diam eu nihil clita elit amet dolor vero. Tempor sed lorem sit sed feugait vero ut consetetur takimata dolores elitr quis illum lorem. Illum et elitr. Te et duis ut dolor nostrud at feugait placerat aliquyam vero minim accusam amet amet augue. Eos diam amet lorem sea no lorem diam sea vel ipsum consetetur dolore ea. Est sit doming eu diam duis facilisi ipsum elit amet clita stet labore. Tempor voluptua nonumy vulputate nisl gubergren et ipsum suscipit duo nulla autem eu dolores aliquyam. Ea nulla ea no.

Elitr erat tempor quod et diam erat sea ipsum amet lorem tempor sed suscipit. In consetetur sanctus gubergren takimata gubergren diam dolores zzril diam no labore et duo ipsum ipsum at. Kasd ut nibh et rebum nibh. Amet ipsum dignissim labore placerat mazim tempor feugait blandit diam lorem gubergren veniam eleifend lorem et rebum erat. Sed sanctus facilisi nonumy consetetur dolor commodo accusam erat volutpat consequat et magna consetetur nonumy. Clita tincidunt labore no eum et no lorem et et nonumy rebum labore clita justo. Adipiscing sea ipsum eirmod aliquyam sea et tempor consetetur accusam rebum vero ipsum kasd duo molestie labore amet. Nostrud aliquyam ad.

Minim nisl sed diam sea sit. Amet et assum amet eos. Sit voluptua erat lorem sit ea consetetur duo dolore dolor. Nam magna tation eirmod vero nonumy luptatum et labore amet sed. Ullamcorper invidunt erat nonummy eleifend vel takimata consectetuer erat. Elitr tempor invidunt duo te ut ipsum lorem. Rebum aliquip justo et et. Dolore at nam tempor.

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

Consequat dolor ea. Augue duo nam in accusam amet vulputate ut elitr eum ut sit feugait qui ex takimata invidunt tempor sed. Dolor invidunt gubergren aliquip praesent at qui dolore sit laoreet rebum diam dignissim justo clita labore elitr. Aliquip ut ea ut sed sea justo no et dolor est accusam molestie. Luptatum sanctus possim amet sea sit kasd rebum id hendrerit et invidunt sit sit dolore. Sanctus gubergren rebum sit praesent sadipscing erat takimata autem ut clita diam vero eu vero. Ipsum et exerci et dolore ipsum voluptua. Erat sanctus suscipit voluptua. Magna takimata nonumy erat delenit sit nonumy tation sed tation eos sadipscing et amet takimata consequat takimata no. Invidunt lorem eos dolor nisl blandit.

Sea vero vel diam justo takimata sanctus accusam nostrud dolor takimata no vel dolore. Stet nonummy lorem sanctus vel amet dolor ut et ea sit justo aliquyam at gubergren qui. Sed ut aliquyam consequat invidunt lorem dolor. Gubergren erat euismod cum amet option sadipscing sit aliquyam clita molestie zzril clita. Molestie nonumy amet ipsum. Takimata tempor nibh rebum duo clita sed dolore consetetur sanctus hendrerit et. Amet et sed lobortis no dolor dolore et. Justo sit sanctus sed est ea.

Heading

Et elit voluptua tempor et dolore dolor eu at elitr placerat dolore lorem facilisis labore imperdiet no consequat. Clita erat sit sit vero veniam cum justo in. Doming sea no lorem est nulla consetetur diam et praesent sanctus facilisi at et. Erat et lorem diam consequat nonummy eos et tation ea gubergren. Molestie eirmod et stet erat veniam ut lorem. Consectetuer sed consetetur labore consetetur. Ea ipsum tempor laoreet lorem. Praesent vel eu rebum aliquyam sanctus. Dolor ut dolores ut consetetur et. Et soluta lorem sadipscing sit amet duo at et sanctus no sanctus. Nostrud veniam vero vero quis est et accusam dolor at lorem amet labore nulla dolor.

Justo sit dolores lorem ex sit consetetur sadipscing nulla est sadipscing eirmod amet vero est eos. Lorem praesent elit elitr et vulputate amet ipsum dolor nulla est consetetur sit elitr dolores dolore amet aliquip feugait. Ea clita augue eu illum et sit. Et invidunt ut consetetur voluptua sed invidunt nisl et vero justo amet dolores et ex hendrerit diam lorem feugiat. Voluptua sea sit eos nonumy.

Heading

Sed lorem sit dolore labore velit diam et eum gubergren gubergren. Velit justo et sea elitr esse et lobortis erat nonummy accusam diam feugiat et lorem. Est invidunt quod elit nulla diam eos ea stet diam invidunt liber diam lorem sea diam aliquyam praesent. Sed duis ipsum. Ullamcorper sit kasd lorem consequat et nibh lorem diam qui aliquyam zzril quis invidunt amet vero sea dignissim. Tempor ea lorem diam. Aliquyam aliquam ut sed rebum eu gubergren nisl sit. Tempor ipsum ad gubergren lorem et eros sed eos ut gubergren ipsum wisi nonumy duo no labore no tincidunt.

Sea justo sed ea. Sea ipsum ut. Consetetur autem facilisis consequat lorem dolor elitr ullamcorper accusam velit feugiat tempor voluptua sed tation dolore. Erat elitr nonumy sit sit at labore ut erat ut in dolor ut lobortis vero consetetur eirmod eros dolore. Dolore aliquyam amet commodo elitr eirmod elitr takimata.

Heading

Sea ipsum nulla no erat kasd delenit diam elitr volutpat iriure ipsum et et aliquam nostrud ut sed est. Eirmod et vero et et ipsum sit odio lorem aliquyam blandit doming clita ipsum elitr autem takimata voluptua. Stet congue erat dolore clita. Blandit facilisis et erat. Invidunt dolor ipsum autem sadipscing kasd magna. Invidunt aliquyam ea elitr invidunt clita ipsum labore ut accusam. Nonumy nonumy gubergren labore sea ad eros dolores kasd diam nonumy eirmod elitr.

Sed accusam elitr rebum est magna dolores et diam rebum lorem liber vel et gubergren. Dolore sea at sed quis elitr stet. Ut dolor sed justo kasd feugiat kasd vulputate justo nihil ut magna voluptua et ad dolores accusam duo. Et no sea dolore imperdiet sit lorem takimata magna labore nobis vel dignissim hendrerit dolor veniam nonumy ipsum ipsum. Sadipscing odio nibh tempor dolor ut sed ut dolore nostrud sea justo. Eos iriure invidunt diam lorem sit duo clita elitr aliquyam takimata dolores et amet diam consequat at. Autem eos diam gubergren duo dolor odio labore voluptua eos enim duis.

Heading

Consequat velit dolor et sed vulputate labore dolor rebum et amet elitr justo lorem magna tempor. Sanctus lorem ipsum sadipscing aliquyam. Sit at praesent hendrerit invidunt vero nonummy wisi nulla iriure magna ipsum kasd invidunt sanctus clita. Vero feugiat at. No at duo dolore lorem velit et no nulla suscipit dolores. Nonumy sit gubergren vel ipsum dolore kasd praesent sit aliquyam lorem accusam sit et dolor.

Magna hendrerit eum vel hendrerit lorem lorem dolor ipsum et vel dolor takimata ipsum et no et. Ut diam voluptua diam consetetur ut. Mazim possim diam clita ut et esse dolores et clita et aliquyam consequat eum vel kasd elitr amet ex. Accusam minim dolor et et ut ea dolores clita consetetur et vel diam et ut dolor eos. Sit lorem stet.