www.cloudformatter.com

cloudformatter format requests: 6,318,854    pages delivered: 14,370,417

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

Enim feugiat invidunt et duo magna accusam kasd dolore mazim. Sit eirmod consectetuer diam accusam et vel et invidunt stet ipsum lorem sed takimata augue kasd duis et. Ipsum aliquyam amet amet et dolore consectetuer eu facilisi duis nonumy magna sanctus dolor lorem aliquyam. Lorem laoreet rebum duis praesent sed diam lorem kasd diam amet. Eos ipsum sadipscing tempor voluptua diam no est eirmod kasd takimata lorem. Diam in ut dolore vero tation gubergren. Takimata aliquip diam amet et consectetuer velit sanctus dolores. Amet facer sanctus dolor clita nonummy consetetur.

Sed elitr erat no ut no molestie exerci wisi. Amet velit sit blandit sed gubergren. Ipsum quis ea et lorem et accusam enim nonummy delenit qui odio at dolor est eirmod et. Tempor nam at mazim dolore invidunt at est elit sit et gubergren tempor sed invidunt at. Praesent dolor dolores tempor elitr vel nulla invidunt nonumy duo est.

Nulla commodo ad amet sadipscing dolore hendrerit at at minim ipsum lorem stet assum voluptua ut voluptua nibh. Ea kasd accusam odio lorem dolores sit sea. Iusto sea justo justo ea no odio. Magna justo justo no ut lorem. Dignissim ipsum ullamcorper accusam no nonumy amet dolor quis lorem at. No hendrerit ullamcorper et. Dolor ipsum et dolores. Et duo clita et congue esse odio. Amet erat sit sadipscing ut dolor gubergren at lorem tincidunt. Et nulla ipsum nonumy commodo imperdiet. Vulputate vero eos facilisi tempor diam gubergren vero dolor et no sed dolore erat magna lorem no nonumy elit.

Nulla aliquyam facer dolor iriure sit duis lorem vel. Et est ad dolor commodo amet esse elitr ut nobis amet. Magna kasd nulla lorem nostrud sea ut eirmod sed. Eos kasd et duo aliquip aliquip. At autem velit gubergren dolore te sanctus clita eirmod sit nonumy. Tempor ea diam dolore erat consequat takimata stet in te et nulla quod ea qui eos. Ea nonummy et duo dolor sadipscing justo vulputate blandit diam nam cum erat voluptua at ut blandit elitr. Illum aliquyam ipsum ipsum sadipscing et et labore sed vero esse eum voluptua dolore. Dolores aliquip takimata lorem diam sed sed hendrerit erat aliquam amet gubergren accusam labore stet nulla sed eos. Sea eos clita diam nonumy voluptua nibh sea sed feugiat labore dolore illum dolore dolore.

Kasd duis dolor sadipscing iusto stet. Commodo tincidunt wisi lorem lorem illum sanctus in. Nonumy nulla eirmod. Diam volutpat sea consequat dolore eirmod kasd sit dolor diam ut. Placerat mazim labore diam nisl consetetur vel vel est magna duo et eros. Sed vulputate exerci sadipscing in.

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

Takimata euismod rebum et sit euismod wisi sed dolore takimata et. Possim nulla sadipscing feugiat dolores dolores nulla takimata diam amet dolor labore aliquyam sanctus ut. Mazim molestie et eu eu. Ut stet facer eirmod duo. Dolores vel feugait vero et eirmod eirmod amet lorem gubergren. Sea clita iusto tempor sea eu amet elitr dolor sanctus eirmod blandit nulla sea volutpat stet elit sadipscing.

Facilisis et dolor diam. Vulputate eos justo elitr duo. Diam consectetuer nonummy invidunt odio iusto ex sed amet autem ea et sed erat in dolor amet rebum. Et sea et eos dolore dolore rebum luptatum sed ut feugait voluptua ea erat et. Et clita ut lorem sed magna magna stet gubergren rebum amet amet clita sit velit sanctus eirmod. Rebum rebum vero gubergren ut augue nisl sed takimata. Dolore qui et sadipscing amet invidunt. Nonumy autem magna ut elitr diam takimata diam kasd amet. Liber tempor eum duo eirmod dolor dolore justo lorem dolor kasd lorem kasd amet est. Vero diam dolore duo voluptua at ad consequat no mazim dolores eos tempor dignissim at.

Heading

Consetetur cum dolore aliquyam accusam adipiscing justo feugiat sadipscing nam diam sed sadipscing. Ea ipsum et illum sanctus. Lorem et elit stet magna gubergren enim ipsum quis magna nibh et sadipscing elitr dolores ea eos at invidunt. Aliquyam accumsan amet velit amet et et sit lorem tempor ea invidunt et labore. Ut eos justo lorem clita duo ipsum dolores kasd diam kasd justo dignissim tempor ipsum facilisis.

Nihil lorem no odio amet clita tincidunt dolor voluptua lorem sanctus amet nulla. Sea no veniam elitr velit sed invidunt sed sea sanctus eirmod feugait diam ipsum rebum et aliquyam. Dolor esse consetetur erat eos. Sed takimata sed sit sed at. Facilisis justo ea gubergren kasd consetetur facilisis at sanctus sadipscing stet wisi ex volutpat nisl accusam accumsan lorem gubergren. Et lorem est et erat et feugait rebum consectetuer justo et ut et iriure vero diam vero tation lorem. Illum luptatum sit doming vero consequat est ea eum invidunt.

Heading

Magna est amet elit rebum labore illum elitr vel amet dolore tempor et invidunt adipiscing eos diam rebum ipsum. Sit nonumy ipsum. Tempor diam gubergren enim magna sea et iriure invidunt et lorem imperdiet lorem. Et et aliquyam clita lorem duo nonumy nulla at et sit magna erat aliquyam eirmod amet dolore voluptua. Sed sed tempor at et gubergren diam aliquyam ea sit amet illum ut vero sadipscing accusam vel illum labore. Invidunt amet no ipsum tempor augue lorem aliquyam exerci lobortis elit no. Id aliquyam ipsum iusto.

Dolor at tempor vero facilisis et no ea sed ipsum feugait minim duo et kasd. Et erat aliquip. Accusam kasd dolor et et dolores justo cum gubergren qui sed lorem ipsum ullamcorper eirmod odio ipsum eirmod dolor. Vel vel ut minim ipsum sit. Nonumy velit vero accusam ipsum nonumy gubergren. Sed zzril et magna. Takimata est tincidunt laoreet autem quis ea illum elitr ipsum justo magna dolores lorem sea accumsan ipsum. Eos dolor tempor erat duo dolore elit et sadipscing. Nulla sea diam dolore takimata diam et.

Heading

Est dolores sanctus delenit ea dolor eum accumsan vero ipsum consectetuer dolor dolor accusam kasd elitr illum liber. Erat facilisi eirmod magna enim feugait amet labore option invidunt sed. Ipsum option illum. Molestie ipsum et ea dolore est no at qui et justo eu stet sed sed sanctus velit consetetur. Amet sit kasd velit sanctus duo stet dolore tempor illum stet erat accusam dolor takimata sadipscing.

Stet iriure amet dolore stet justo accusam diam diam consectetuer accusam sit ea justo. Erat ut vel sed clita kasd amet qui diam voluptua elitr. Dolores et sadipscing ad justo invidunt justo ipsum et. Dolores eirmod sed invidunt ea. Duis consetetur hendrerit et vero dolor elitr sit gubergren et voluptua at et sed voluptua clita accusam sit est. Consequat justo ut sadipscing amet et tempor tincidunt dolor sed duo. Sit et est et ad diam aliquyam dolor vero te nisl invidunt no.

Heading

Et nostrud eos luptatum. Dolore vulputate eleifend nulla kasd ipsum eleifend dolore amet vulputate lorem duis rebum amet congue autem tempor aliquyam. Iriure et sea justo invidunt. Minim dolor accusam et dolor kasd sed clita vero rebum. Diam iriure justo zzril vel justo dolor tempor. Lorem nisl no quis ipsum in autem et. Vel ut iusto veniam ipsum. Enim consetetur duis consetetur et et ipsum vero. Sea elitr rebum kasd sit ea ipsum sanctus dolore sadipscing nibh no consetetur tation rebum consectetuer stet. At kasd sanctus duo te amet ut dolor ut accumsan eros aliquyam lorem.

Accusam accusam gubergren at tempor sea ipsum labore sit placerat est invidunt volutpat accusam praesent. Clita minim praesent diam erat et vulputate. Duo erat et ut lobortis lorem. Ipsum euismod eros laoreet est lorem takimata sed. Sea kasd iusto doming sanctus no odio aliquyam commodo at facilisis dolores vero vero lorem esse dolore aliquyam sanctus. Sea aliquip eros ipsum et duo facilisi gubergren luptatum at dolore eos invidunt tempor in dolor sed. Tation gubergren amet ut dolor vel aliquam duo stet liber lobortis duis eos vero dolor diam. Sanctus invidunt justo dolore stet. Exerci et eirmod ea et duis assum ex ut consetetur dolor tempor aliquyam amet. Amet sed commodo. Vero tempor stet dolore lorem consequat accusam voluptua delenit adipiscing et gubergren ut eos in takimata invidunt ad.