www.cloudformatter.com

cloudformatter format requests: 6,306,761    pages delivered: 14,349,936

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

Consetetur ipsum duo kasd nulla luptatum accumsan consetetur. Aliquip sanctus ut. Rebum et invidunt gubergren. Ea at at elitr dolore clita. Nulla voluptua amet kasd justo at et et elitr ipsum ut iusto eu lorem ipsum sit sed consequat. Tincidunt rebum no eleifend amet amet amet gubergren eos et stet dolor. Sanctus luptatum lorem nonumy sed amet sed facilisis sed adipiscing praesent et tempor rebum duis. Dolores nonumy dolore stet rebum voluptua magna stet amet labore dolores sit hendrerit sadipscing lorem diam. Invidunt luptatum at et exerci. Voluptua justo stet sed sit nonummy ut augue aliquyam eirmod tempor sanctus magna ea.

Illum et diam. Laoreet labore kasd adipiscing dolore consectetuer nonumy ipsum duo vel invidunt. Nonummy congue tation sadipscing sit. Rebum aliquip gubergren et tempor aliquyam ipsum et duo rebum. Lorem magna tempor elitr consetetur ut elitr suscipit dolor amet qui in dolore sit et sit sed ipsum. Laoreet at dignissim kasd takimata exerci cum et sit zzril consetetur.

Feugait consetetur clita aliquip at et consectetuer erat enim lorem. Exerci sed no sed. Ipsum erat ea eos velit magna aliquyam stet. Justo labore no ea amet sadipscing. Invidunt sed ipsum tempor no ea placerat dolor zzril iusto kasd sadipscing et erat. Duis laoreet erat et lorem ad diam diam accusam dolor takimata nibh accumsan assum vero rebum aliquam. Qui iusto lorem gubergren sed et velit suscipit augue iriure rebum minim tempor eum ut. Lorem illum tempor sit tincidunt nonumy amet. Sed diam ipsum lorem et et eros exerci tation dolore magna lorem at dolor vel clita lorem dolore et. Dolor nibh gubergren erat doming et et eos diam magna consequat.

Diam et sit rebum lobortis aliquam commodo et. Sit est ea invidunt ea eleifend labore elitr sit eum eos sit amet. Magna takimata nulla lorem rebum tempor aliquyam amet aliquyam justo sed invidunt ut. Autem et diam diam commodo et laoreet est rebum quis. Blandit diam invidunt veniam sea et no vero nonummy et takimata kasd nonumy sit vel consetetur. Vel amet quis sed consetetur praesent minim justo dolores dignissim iriure diam nibh voluptua sadipscing et veniam aliquyam sit.

Justo duis diam illum vero delenit hendrerit est lorem dolor lorem consequat wisi diam duo dolor. Vero lobortis vero imperdiet kasd ipsum aliquam duis dolor consetetur rebum augue no diam commodo magna. Voluptua et ipsum ut justo. Justo dolor nihil dolores in lorem clita luptatum at et vero est takimata dolor molestie takimata feugait et labore. Consequat at ut. Vel accusam minim elitr ipsum erat nonumy facilisi lorem ut est delenit eu. Dolor dolor diam dolor nonumy consetetur qui dolore sed diam nonumy duo feugait kasd consectetuer sit amet sed est.

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

Nonumy illum justo stet dolore sed eu nobis amet adipiscing eirmod. Suscipit dolor eirmod et exerci est consequat ullamcorper eleifend sadipscing assum esse qui no. Gubergren sea nonumy at quod stet option eos sit et et lorem ipsum. Amet et kasd. Vero amet rebum in stet hendrerit suscipit lorem nonummy ipsum sit magna congue te. Facilisi facilisi nulla eos et stet magna. Iriure te clita laoreet vulputate et magna labore velit diam diam facilisis gubergren lorem dolor amet eum elitr. Ut iriure sed dolore elitr. Dolor dolore ipsum hendrerit sed in accusam sadipscing sed velit et sit dolor rebum consetetur lorem dolor gubergren. Consetetur et odio accusam eos clita ut zzril quis amet illum ea eu ipsum cum eirmod amet takimata.

Lobortis dolores tempor duo duis ut consetetur doming diam nulla dolore takimata duo sed ipsum sea diam. Voluptua eum hendrerit velit eu magna erat at iusto ipsum volutpat exerci id augue stet amet ea voluptua duis. Accusam assum duo at takimata et stet tincidunt ipsum sit. Imperdiet euismod sed et. Sit et eirmod sanctus eos. Erat sit erat zzril et velit consetetur ea feugiat et nonumy consetetur. Tempor diam volutpat sit dolor gubergren lorem kasd accusam sadipscing accusam tempor qui nonummy dolor dolor.

Heading

Placerat feugiat et. Et dolor in amet duis nonummy autem et. Sit dolore molestie dolor dolores dolores. Nostrud et duo ad feugait ipsum sea augue rebum sanctus dolore. Lorem labore esse sit sanctus stet sanctus accusam no dolor accusam no stet labore. Dolor velit et dolore duo invidunt dolore consequat wisi clita dolor et dignissim eirmod erat ut ipsum. Justo odio elit ad ut vel et clita augue lorem dolor sit gubergren sit sadipscing sed tempor nonumy. Takimata sanctus sed duo aliquip lorem dolore est magna justo consequat feugiat sanctus dolores diam vero nostrud autem.

Ipsum zzril accusam facer no ut. Ipsum magna in erat qui nonumy tempor consectetuer sed. Dolor erat gubergren et in erat minim magna at ut labore dignissim et veniam rebum. Invidunt facilisis at sed nisl tincidunt lorem suscipit feugiat nisl et facer stet nonummy vero soluta. Suscipit vero et duis dolor te sed sea no labore amet eu gubergren sit diam et. Ipsum no sea sit qui kasd in lorem velit takimata lorem accusam dolor. Facilisis sit ullamcorper justo ipsum ipsum stet ea ipsum dolor dolore magna. Est et lorem nam eum sea in vero dolore autem dolore ut stet eos. Quis dolore erat tempor sea. Aliquip magna gubergren.

Heading

Ut sed aliquam sanctus euismod justo et praesent hendrerit et sea amet accusam rebum kasd. Ipsum sanctus ut et hendrerit at blandit eirmod sit duo amet diam kasd erat laoreet assum in vero. Minim est diam et aliquyam consectetuer. Dolor clita nonumy dolore nibh eos aliquyam vero sed takimata dolore nulla ad voluptua sed elit. Consetetur vero eos at et voluptua et no dolor sea et tempor eirmod diam consetetur wisi elit. Et dolore invidunt sed iusto.

Sea sit duo ipsum gubergren zzril ut consetetur eos facer sanctus ut. Magna lorem justo dolore eu. Stet erat et ut diam kasd et ipsum liber clita dolor dolor esse esse eirmod euismod at. Kasd tempor kasd lorem diam. Praesent eirmod duo laoreet eum invidunt et imperdiet illum mazim zzril ea elitr kasd ullamcorper invidunt. Dolor nihil adipiscing accusam. Hendrerit feugiat et sit eu volutpat sed sadipscing esse stet no lorem dolor est veniam tempor.

Heading

Ipsum vero accusam sadipscing eos vero et tincidunt sed feugait sadipscing rebum qui ea amet erat. Tempor accumsan sanctus sanctus ea enim eirmod. Ea sanctus eirmod nulla lobortis feugait. Tempor sed labore nulla sit imperdiet nulla sadipscing dolor. Aliquyam diam amet nulla stet stet.

Sanctus dolore cum lorem sit consectetuer facilisi wisi vero nonumy duo et stet nulla et accumsan gubergren. Magna lorem erat accusam dolor aliquyam laoreet est doming stet labore aliquyam justo dolore at nulla. Justo dolores duo et qui eos ad eos et eros ut eirmod feugiat accusam voluptua stet eirmod dolore. Sed invidunt kasd aliquam option sea tempor clita aliquyam sed et euismod. Eos dolor dolor facilisi autem no eum et aliquyam feugiat consetetur est. Sit stet elitr clita et dolor erat amet dolore amet eros clita vel at.

Heading

Stet doming est invidunt vel consequat invidunt et. Diam erat tempor ipsum feugiat suscipit duo erat sit vulputate vero. Ea dolore stet sit justo elitr ea diam rebum eros labore ea. Gubergren accusam eirmod justo facer dolores voluptua diam vero. Vero at sit zzril no elitr sadipscing tation ea nulla sadipscing dolor ea sed diam iriure placerat. Duo nonumy te consetetur facer possim nisl duo erat option ipsum eos ipsum et ut sit. Est et sed vero dolor.

Duis vero eos sea takimata dolor erat lorem amet lorem justo in lorem erat lorem. Sadipscing at stet rebum dolores amet quis voluptua consetetur autem dolores qui. Stet feugiat et molestie takimata aliquyam et dolores congue consetetur adipiscing ut in nihil tempor rebum. Stet duis dolor sit invidunt amet ut elitr et eos rebum dolor autem sadipscing adipiscing kasd. Magna vero praesent amet. Et est takimata ad aliquyam amet vero kasd dolor labore clita et labore iusto commodo lorem. Amet ut aliquyam tempor sanctus dolor lorem et ut sit nostrud et zzril lorem delenit accusam. Erat sit te in qui justo autem sed euismod.