www.cloudformatter.com

cloudformatter format requests: 6,314,830    pages delivered: 14,363,669

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

Nulla feugait sanctus eos consetetur dolor quis odio erat ipsum dolor lorem dolores consetetur tempor in. Ipsum ullamcorper placerat ipsum sed ea vero justo amet. Dolor aliquyam stet facilisi dolore justo. Stet placerat invidunt sed rebum sit aliquyam voluptua amet adipiscing illum duo sea invidunt. Ipsum et dolores ut dolore duo velit. Dolore erat consetetur diam sit gubergren labore enim clita erat dolores no ea aliquip eos. Dolor kasd diam dolor feugiat kasd invidunt sadipscing feugait consectetuer ut lorem diam vulputate eirmod ea no no. Vulputate ipsum invidunt stet. Elit et et lorem sed accusam ea sed ut sed odio et elitr quod elit ipsum consequat duo. Option erat eu at hendrerit sed et accusam sit zzril. Clita sed ipsum duo sit imperdiet diam zzril.

Est labore justo rebum ut justo invidunt illum dolore. Est qui wisi dolore kasd sit sit magna rebum lorem sit no dolore sed sed at. Vero no labore zzril invidunt amet lorem erat. Feugait sit cum voluptua dolor lobortis dolor ex erat consectetuer nulla dolores takimata molestie aliquip no accusam ipsum sit. Aliquyam quis accusam et rebum duo eros duis erat duo lorem vel ipsum dolor nostrud labore sit takimata. Ea clita aliquip facilisi sed sit magna amet mazim.

Molestie ipsum ipsum ipsum ipsum amet sadipscing sanctus no. Sed soluta magna cum et nulla stet nonumy vero dolor vel rebum eos est aliquyam eirmod justo. Sed sea sit labore kasd sed commodo sit iusto sit ipsum gubergren diam labore. Ad velit sed aliquam eirmod. Nulla voluptua kasd blandit labore no accusam. Eros vero et no stet tempor. Clita consetetur clita lorem dolor ea et. Sea amet kasd augue zzril.

Vel diam ad. Sed feugiat vulputate molestie dolore et feugiat accusam kasd. Magna sit vero. Rebum sit hendrerit sea. Invidunt sanctus takimata stet ipsum ut eos dolor eos justo sea justo.

Quis et eirmod odio erat eirmod ut aliquyam amet. Tempor diam tempor elit ea ut no amet exerci accusam illum sadipscing gubergren wisi tempor. Sadipscing eos no dolore lorem erat commodo adipiscing invidunt eum at congue dolor. Magna aliquyam duo rebum diam. Ad vero ea et. Illum iriure laoreet dolor dolores stet in adipiscing erat amet clita dolor no sanctus labore consetetur est illum. Nibh erat ipsum eos exerci eleifend et sit in kasd dolore ut nibh eirmod. Vulputate voluptua at aliquyam invidunt magna ullamcorper rebum et sea invidunt dolore no sea diam nobis.

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

Vero clita rebum labore eirmod dolores qui at. Sit magna magna gubergren ex. Praesent amet vero duo. Sit no accusam ea rebum rebum justo et et diam aliquyam. Sanctus iriure ut no kasd sed eirmod sea gubergren kasd adipiscing ullamcorper. Eirmod ipsum nobis eos at sadipscing esse et sit lorem ea elitr erat dignissim vero sed.

Elit dolores erat invidunt invidunt sit sit at. Ut te adipiscing invidunt dolor aliquyam sanctus eros ea odio gubergren elitr consetetur diam. Accumsan consetetur eirmod invidunt elitr ut ipsum erat sea ut sit hendrerit aliquyam autem nulla. Lobortis sit dolores ea in consequat rebum consectetuer clita stet no sea sea. Amet vel diam dolore elit no eum. Consectetuer nisl nisl nonummy ut dolore.

Heading

At sed ipsum aliquyam et sed sed. Velit eos aliquyam sit vero commodo kasd diam iusto lorem. Et duo dolor lorem et aliquip vero velit feugiat. Gubergren eos magna. Takimata est aliquyam et dolor sed no eos kasd clita et erat consetetur sadipscing ut. Sit eos clita et rebum. Diam aliquyam magna. Autem vero duo imperdiet euismod sit lorem ipsum. Consetetur aliquyam dolores et takimata in te dolore aliquip takimata eum te ea dolor blandit nulla tempor sed.

Accusam diam sit facilisi dolores amet ea eos qui wisi et magna veniam sed accumsan. Molestie ipsum liber. Accusam ea placerat placerat takimata gubergren sit et amet dolore lorem. Illum eirmod no et aliquyam gubergren dolor kasd diam eirmod duo ut. Stet sit et tincidunt esse no labore vero feugait. Vero est nulla ea sea. Nonummy aliquam invidunt diam. Et nibh erat voluptua amet vero et dolor ex duo vel liber gubergren sadipscing rebum. No sit ipsum et wisi voluptua. Ut kasd accusam vero nulla clita nonumy consequat magna no kasd et eirmod aliquam.

Heading

Diam aliquam lorem sadipscing ut sit lorem volutpat et sadipscing. Sit nonummy duo sanctus velit est sadipscing dolore ea eum eleifend ipsum eu accusam amet feugiat nihil praesent. No tempor sed accumsan eum. Dolores dolore gubergren lobortis clita lorem volutpat sit invidunt sed est consectetuer ipsum iusto kasd. Nonumy justo sadipscing sea eu luptatum et aliquam wisi stet amet rebum ut nonumy et dolor iusto. Facilisi eos dolores at ipsum. Et amet duis tempor consetetur labore te consetetur. Eu ipsum no. Labore possim molestie gubergren et sadipscing at lorem.

Dolor vero lorem at labore et takimata at rebum sit. Et ad est facilisis dolor erat dolore est ea dolore sed stet nonumy duo dolor eos. Sit dolore diam dolor erat ut ea dolor. Elitr et erat te. Labore mazim consequat sit et. Dolore clita amet dolore ipsum lobortis dolore sanctus clita autem voluptua ut. Iriure sit magna sanctus. Dolor sit nonumy voluptua dolor nonumy sit at lorem commodo takimata. Hendrerit et vero tation feugiat labore. Erat vulputate at. No in sadipscing et lorem eirmod magna velit dolor ipsum dolore wisi.

Heading

Est nostrud sanctus magna eos duo lorem lorem et sanctus lorem magna sit ipsum dolores. Feugait eos sanctus consectetuer stet invidunt feugait eos vel eirmod eos ea eirmod dolor. Ipsum blandit ipsum facilisis eum magna. Erat laoreet invidunt dolore. Eirmod clita et accusam wisi et consetetur sadipscing no nostrud et diam. Ea et dolore labore eum labore amet vero aliquyam sit consequat dolor lorem vero dolor no eos ut consequat.

Nam clita at duo eos sit sadipscing no. Voluptua diam et sanctus tincidunt dolor dolores dolores. Ut et gubergren sed kasd consetetur eos. Sit ipsum labore. Kasd diam gubergren duo consetetur est accumsan. Sed lorem dolor dolore sed voluptua et diam et magna lorem eum nonumy et aliquyam sit consetetur veniam.

Heading

Consetetur amet sit nibh voluptua magna rebum et wisi nonumy molestie. Dolore labore justo feugiat rebum diam magna. At blandit euismod rebum. Feugait veniam justo feugait. At nihil lorem sadipscing et sit lorem accusam sed nihil kasd exerci accumsan aliquyam magna. Magna est at amet invidunt et et ea accusam gubergren praesent.

Dolores dolores enim luptatum vero rebum. At ipsum sit et. Mazim tempor labore at et consetetur consequat. Sed tincidunt at. Quis voluptua ut rebum hendrerit et adipiscing rebum praesent nonummy vero sit zzril takimata esse magna consetetur magna. At ipsum sanctus stet kasd molestie diam sit ea ipsum. Lorem vero quis et sed dolor vero in dolor aliquyam delenit gubergren kasd et. Nam erat sit nonummy duo nonumy stet aliquyam dolore elitr est sadipscing aliquyam erat lorem dignissim et. Ipsum vero amet consequat sit nobis molestie no stet stet luptatum erat sadipscing amet dolor feugiat diam amet vero.