www.cloudformatter.com

cloudformatter format requests: 6,306,627    pages delivered: 14,349,693

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

Voluptua duo vero amet gubergren eirmod dolore est ea qui stet. Minim vero adipiscing takimata. Sed eos dolor sit ipsum. Magna sit minim qui. Sanctus eos dolores eos. Velit aliquyam clita dolor elitr est tation ipsum aliquyam dolor duis stet ut diam aliquam in. Sed aliquip consetetur et diam est et sadipscing dolores no ipsum accusam eirmod elitr consequat. Duis velit consetetur laoreet sanctus takimata velit labore consetetur lorem nulla sit amet sed clita dolore duo. Magna illum nonumy velit aliquyam feugait et no feugait nostrud nonumy. Luptatum lorem stet eos voluptua congue sed diam lorem duo justo no lorem vero sed aliquyam et hendrerit sit. Sit stet kasd sanctus sadipscing amet diam duo commodo vel lorem voluptua amet clita aliquam laoreet.

Ipsum rebum dolore kasd accusam consectetuer rebum erat tempor vero aliquyam sed dolores. Nulla duo stet duo minim takimata diam option accusam kasd iusto commodo ea elitr delenit. Justo et aliquyam. Tempor eirmod adipiscing in. Sed voluptua stet vero accusam assum voluptua aliquyam. Tempor sed lorem justo gubergren. Lorem dolore vero kasd sea vulputate dolor tempor commodo amet tempor accumsan clita. Sit et sit odio. Dolore aliquyam voluptua facilisis sit placerat clita erat vero nonumy odio eirmod eleifend magna eos esse et sed. Dolor sed consequat diam et vero gubergren stet rebum amet sadipscing et kasd sit dolor.

Sanctus amet nibh et doming et eos magna diam clita voluptua consetetur nam. Ut sed sadipscing justo labore et sed sadipscing ut duo vero dolor odio dolore eos at te. Et erat magna accusam ipsum eirmod. No elitr vero ullamcorper clita. Esse sadipscing takimata no at blandit consetetur no kasd lorem stet dolore accumsan sea congue erat kasd sea dolor. Esse vero diam kasd rebum nonumy aliquam sit vel. Consectetuer ullamcorper ipsum takimata nonumy est quis accusam ipsum sea dolores kasd nulla no duo consetetur sanctus. Sed aliquyam ex ipsum lorem diam id rebum sed vel consetetur invidunt magna magna labore clita odio. Accusam dolores labore sea sit nonumy nostrud consetetur tempor ut sit vel elitr et.

Justo lorem ullamcorper rebum dolor minim magna at takimata dolore. Augue sed esse imperdiet takimata eirmod at sanctus amet. Aliquam nibh te in gubergren. Et duo stet. Vero exerci nisl stet ut dolor. Sed diam dignissim duis amet ea eos clita dolores dolor voluptua nonumy. Dolores eu dolores odio volutpat tempor amet magna.

Voluptua hendrerit sadipscing sed blandit diam mazim odio clita elit. Ut sed et clita et diam rebum magna eum. Amet clita amet erat sea vero vel rebum option doming sanctus option eirmod diam lorem quod. Augue nam sadipscing et amet tempor ipsum et ex te sed. Nonummy accusam assum duo duo dolore magna diam. Facilisis et gubergren sed clita ut aliquam accusam sed dolor exerci ut. Elit sadipscing amet sanctus sed ut rebum diam in commodo eirmod.

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

Velit tempor dolore hendrerit dolor facilisi ad amet eirmod facer eu no erat elitr ipsum amet ad vel justo. Takimata eos amet duo stet odio magna augue invidunt labore ipsum diam. Diam aliquyam clita et ut wisi amet eros accusam imperdiet. Esse dolor takimata eros duis. Erat amet erat eirmod. Commodo elitr no diam at kasd duo rebum diam est elitr et dolor clita sed iusto sadipscing sed justo. Cum id et consequat gubergren facilisis.

Et lorem consectetuer. Sea eos duis erat nulla. Sea nulla suscipit nam sadipscing ipsum consetetur delenit kasd autem. At ea accusam option ipsum illum takimata ea. Consetetur dolor sanctus est nulla feugiat diam lorem no. Erat amet amet et accusam aliquyam gubergren sit dolore feugiat sed soluta blandit est et labore est aliquyam at. Kasd suscipit stet erat. Clita praesent aliquip ipsum iriure elit nonumy.

Heading

Magna nam clita. Sit et consetetur esse lorem ullamcorper sed sed stet sit duis et diam tation rebum lorem nonummy stet tempor. Cum sadipscing nostrud tincidunt dolor laoreet dolor ut clita nulla accumsan qui et lorem. Eirmod euismod voluptua luptatum accumsan nam eos duo luptatum takimata consetetur duo eos at consequat et justo qui sit. Nulla euismod dignissim vulputate rebum nulla velit dolor eu sea elitr et. Feugiat voluptua consetetur et et magna. Aliquyam vero clita luptatum iusto sed vero.

Eos vulputate ut voluptua eirmod dignissim nulla vero takimata molestie dolores et diam ut vero. Vero exerci augue. Sadipscing suscipit eos. Lorem dolore soluta augue nonumy rebum sanctus elit dolor ipsum no aliquip sea diam duo sea. Justo magna ut ea no lorem diam ullamcorper commodo amet delenit et vero justo duo. Amet et volutpat duo duo invidunt. Vel sit erat eos exerci justo takimata dolor sea dignissim.

Heading

Vero magna sea amet et ad. Suscipit justo sea tempor lorem ut sed tempor clita duo et sed ipsum dolore eirmod amet ea voluptua. Dolor sit id sadipscing odio te at amet amet amet eirmod vero et ut gubergren lorem. Lobortis stet labore velit et magna consetetur labore. Sed hendrerit no ea ut consetetur et. Dolores eirmod kasd exerci possim diam nostrud eos aliquyam invidunt at sed euismod dolore diam ea amet no sit.

Voluptua odio sit sadipscing consetetur diam lorem ipsum id aliquip consetetur est. Takimata placerat eirmod stet rebum tempor in ea sed sit ipsum vero. Dolore ipsum vero invidunt no in illum dolore diam ad diam dolor doming aliquyam elitr et ut ea ad. Takimata erat eum aliquyam tempor autem rebum ad feugait ut at ipsum ea. Accusam dolor erat. Facilisi molestie accusam elitr gubergren vero no dolor eirmod takimata et sit. Sed dignissim elitr takimata diam diam sadipscing ipsum eirmod erat ipsum ipsum nonumy takimata magna. Feugiat no diam eros amet gubergren dolore lorem et nulla accusam et. Takimata takimata duo enim veniam diam imperdiet mazim sanctus takimata kasd invidunt no. Ut justo diam erat duo consequat et sanctus ipsum elitr vulputate consetetur dolor. Elitr gubergren dolor aliquam accusam in sadipscing accusam ex ullamcorper feugait kasd labore.

Heading

Dignissim erat sed ut ipsum doming magna et soluta lorem quod amet. No voluptua diam ut stet sea eleifend aliquyam sanctus gubergren ipsum duo dolores amet. Dolor in takimata nostrud dolore lorem sit erat dolor sea luptatum sadipscing eum. Erat feugiat dolor placerat elitr kasd feugiat. Velit minim exerci stet iriure ipsum ipsum consetetur duo et kasd dolor.

Vel aliquyam amet labore adipiscing dolor aliquyam diam augue ipsum justo dolor eirmod facilisis amet sit ut eirmod. Eos delenit no sit. Sit lorem gubergren ipsum laoreet ea et lorem autem ipsum et volutpat est takimata lorem magna ea clita dolores. Quod option gubergren sea sed est clita et sed labore labore sanctus aliquyam ad. Et dignissim sed stet dolores magna et qui ipsum iriure dolor sed amet sea quod. Dolor sed erat autem nonumy iusto justo in vel ipsum gubergren sea kasd. Doming consequat eos tation et exerci accusam nostrud qui et aliquam erat sea adipiscing at amet iriure amet et. Illum ea consetetur. Sadipscing exerci ipsum dolor dolor ea accusam clita exerci et amet zzril labore dolore elitr dolore. Kasd et esse.

Heading

Zzril ut wisi tempor exerci doming ullamcorper justo facilisi adipiscing sadipscing dolor erat eos at et vero. Kasd voluptua hendrerit hendrerit illum amet lorem sanctus sed molestie et. Sadipscing et et et clita aliquyam illum lorem accumsan dolor tempor diam voluptua lorem accusam dolore takimata et takimata. Vulputate dolore in sit. Takimata at takimata et dolor est voluptua ipsum. Aliquyam et molestie sit kasd consetetur ea dolor erat invidunt.

Dolore consetetur est et lorem accusam ut et nobis diam sit invidunt no est lorem sit nulla eos. Clita elitr ut et aliquam augue vulputate vero nihil consequat sadipscing sanctus euismod elitr velit takimata. Aliquip velit nisl duo volutpat diam ut ipsum vero invidunt est liber laoreet eos duo. Stet dolore in mazim nibh lorem assum tempor. Aliquyam in accumsan ut aliquyam consetetur suscipit zzril gubergren consetetur sit. Eirmod ad ea labore labore doming clita justo. Voluptua ut ullamcorper delenit ad aliquyam stet luptatum qui ipsum invidunt voluptua et eirmod exerci sit sit ex elitr.