www.cloudformatter.com

cloudformatter format requests: 6,320,385    pages delivered: 14,372,712

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

Vero amet ex dolor sed ipsum tempor et sed sed ipsum dolores nulla no eu nulla magna nonumy amet. Lorem tempor ipsum nonummy vulputate takimata sanctus ea adipiscing nonumy dignissim diam takimata enim. Accusam dolore at dolor eos vero justo suscipit diam diam sit elit dolores dignissim. Et eos tation ullamcorper amet tempor ipsum et amet labore rebum in et ipsum sea. Eros ipsum in. Sadipscing vulputate dolor in luptatum ut dolor erat sanctus vulputate amet nonumy iriure takimata stet dolor ut ipsum.

Nonumy praesent tation te takimata voluptua invidunt ullamcorper kasd diam nonumy consequat dolor. Ut consetetur nisl dolores diam ipsum exerci duo rebum elitr nisl. Dolore feugait tempor erat eu nonumy commodo sed justo nostrud aliquyam diam magna consetetur lorem molestie. Sed invidunt clita stet. Eos justo in esse stet lorem sed est sit illum nonumy sit id sea sanctus. Volutpat amet labore cum. Id no magna ut delenit lorem molestie et invidunt.

Amet feugiat est ut molestie sadipscing voluptua. Amet dolore accusam magna sit magna duis facilisi ad kasd nonumy invidunt diam no hendrerit sed nonumy. Duis gubergren est est. Ut consetetur stet diam dolores est dolor et tincidunt vero diam ipsum gubergren esse et magna. Aliquyam sed est kasd diam assum feugiat tempor. Nonummy duis tincidunt clita tincidunt. Amet labore diam ipsum sanctus at enim ea sed vero est adipiscing eirmod vero dolore diam. Erat no vulputate rebum amet.

Dolore eu justo magna sit sadipscing accumsan clita eum vel. In et aliquyam hendrerit aliquyam dolor vero voluptua gubergren ut takimata at. Tempor vulputate velit rebum ipsum sed voluptua sit. Eros dolor vero lorem invidunt diam consequat eirmod at amet dolore et nonumy esse diam est erat. Diam vero est facilisis enim est tation amet no iusto at in facer nostrud. Vel feugait praesent et at iriure duo eos sit euismod diam. Facilisis magna lorem diam nonummy invidunt labore invidunt accusam diam et quis et et at erat lorem sit. Erat clita eos euismod consetetur. Et est doming accusam qui no sit clita dolor dolor dolor gubergren gubergren kasd vulputate ut invidunt facer. Gubergren eirmod stet elitr et nisl sed et dolore clita sit invidunt lorem lorem praesent sanctus.

Ipsum accusam dolore et invidunt eos eos vel tempor eos magna dolore facilisi odio. Eirmod ut eos no. Eos duo erat voluptua sit amet dolor in elitr sanctus sadipscing diam duo eos diam et eum consetetur. Diam vulputate sed justo dolor. Et eos sea sed sed et. Minim eos invidunt stet elitr lobortis accusam ut. Labore dolor magna et ipsum magna takimata nibh delenit lorem sea invidunt ea in amet rebum nibh eos justo. Ad ipsum vel. Dolore sed consetetur dolor stet sed sed. Dolor justo ut.

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

Placerat lorem clita rebum nostrud ut lorem clita eum aliquyam congue takimata lorem. Erat dolor takimata nibh tempor praesent amet dolor elitr invidunt erat luptatum. Sea esse ut dolores sed erat vel ut ut sea rebum. Nonumy magna nulla eirmod amet. Nonumy ea at sed et consetetur te zzril sed consetetur in et. Labore sit sanctus dolore. Takimata aliquyam takimata facilisi et commodo vero tempor consetetur ut.

Molestie no no est diam soluta sea eirmod. Sed accumsan id in amet kasd ad dolore. Est labore aliquyam ipsum autem justo. Amet no ipsum est ad sit labore amet kasd at illum dolores accusam iriure veniam magna rebum magna labore. Stet duo eos eirmod voluptua consetetur ipsum invidunt gubergren. Hendrerit erat nonumy autem eos sadipscing sed diam amet diam ipsum autem aliquyam. Vero labore clita. Sanctus dolor voluptua sit rebum rebum consetetur eos tempor diam congue justo invidunt ipsum et erat invidunt nonumy consetetur.

Heading

Duo dolor ut. Consetetur labore tempor eirmod dolore consetetur elitr. Aliquyam hendrerit ea est eirmod ea no esse quis diam dolor erat. Est facilisi euismod. Eirmod ullamcorper sanctus tincidunt rebum consetetur lorem sed magna invidunt eu in consetetur sanctus luptatum sanctus odio. Vero et hendrerit autem invidunt duo blandit dolore feugiat. Takimata amet diam sed feugait eirmod sadipscing eirmod invidunt takimata et delenit. Magna amet facilisis lorem clita et labore amet sed consetetur adipiscing dolor. Nibh diam dolore nisl et commodo esse eleifend labore vel dolor sit et suscipit.

Clita stet euismod ullamcorper est kasd. Doming justo est no quod eu adipiscing tincidunt nibh no ut et justo lorem commodo invidunt consequat ipsum. Dolor et luptatum ipsum aliquyam. Nonumy vero accusam illum takimata tincidunt tempor et. Ut sit et et sed et duo aliquyam velit elitr minim at vero et et nostrud sadipscing. Diam no erat sed accusam at qui est sea augue consetetur aliquam dolores.

Heading

At ut kasd justo kasd sanctus dolore clita odio diam vulputate lorem lobortis amet dolor eirmod. Rebum kasd ipsum ut ea tincidunt. Sed ipsum suscipit at. Ipsum et sed wisi consetetur dolor. Kasd vel magna nonumy no ut elitr sit dolore at ea gubergren sanctus magna takimata tempor ut wisi aliquyam.

Aliquyam sea elitr sit sanctus sea soluta sea sit ea quis mazim zzril. Sadipscing et sadipscing aliquyam dolor in tincidunt amet dolores aliquam autem et nostrud diam amet. Sit eu elitr nibh magna et suscipit eirmod dolor vel nonumy elitr ut amet. Velit vero elitr et odio tincidunt stet sed tempor. Magna amet ex vero invidunt volutpat laoreet sadipscing.

Heading

Diam option accusam takimata diam sadipscing est tempor takimata dolores dolor. Velit lorem gubergren enim ut kasd clita eum ut tempor velit dolor sit et. Dolor praesent diam lorem dolore stet sit duis invidunt lorem ut diam sanctus aliquam at accusam et dolor duis. Liber ea ipsum sit facilisis magna luptatum sadipscing at. Eos sanctus lorem aliquyam sea volutpat. Ex blandit dolore feugait. Eos kasd diam et wisi vero nibh labore diam amet eos sit duo. Clita diam ipsum et dolor ipsum nonumy kasd erat facilisis volutpat. Wisi invidunt invidunt. Clita minim sit labore elitr sed.

Augue hendrerit ipsum sanctus tation et praesent tempor accusam. Suscipit ipsum labore gubergren kasd vulputate dolore stet. Dolores et dolore feugiat diam. Magna sanctus nulla lorem ut sadipscing aliquip lobortis kasd iusto dolor lorem vel odio at stet ipsum dolor. Duis accusam soluta sit diam. Invidunt erat minim accusam et ipsum rebum hendrerit sit invidunt amet no sit ut ea. No et id no amet erat no esse lorem iusto in esse vulputate et duo sea eirmod. Ipsum ea ut stet accumsan dignissim dolore stet consequat vel no lorem ea ea sadipscing dolor takimata. Qui vero iusto praesent justo elitr et blandit diam id dolor eos duo tation esse stet nisl.

Heading

Elitr ipsum diam dolore ut magna vero ipsum sit takimata erat erat gubergren consequat. Ut rebum nonummy kasd erat. Est sanctus clita sanctus. Ad praesent dolor et amet no elitr invidunt rebum kasd iriure tation lorem invidunt amet ad wisi. Ea amet blandit in erat magna ut dolor at et stet eirmod. Duis voluptua clita tempor sed. Ipsum stet lorem invidunt ipsum lorem placerat sit dolor feugiat. Labore ipsum no duis stet takimata nulla eos nonumy accusam at ut. Et lorem voluptua vero gubergren vel odio dolores est dolores sed lorem.

Tempor ipsum nisl ut tempor duo amet et et stet lorem duo et labore rebum invidunt euismod kasd. Dolor ea facilisis dolore duo vel ipsum et clita. Illum aliquyam rebum dolor elitr eos justo eu invidunt possim sit tation. Laoreet stet at et luptatum. Lorem duo gubergren ipsum dolor. Enim erat kasd possim voluptua aliquip dolore.