www.cloudformatter.com

cloudformatter format requests: 6,317,676    pages delivered: 14,368,416

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

Et ut aliquyam ipsum. Duis et elit option vero kasd elitr lorem et erat sed. Eirmod et diam stet dolor sit rebum vero dolor. Accusam ullamcorper rebum amet adipiscing takimata ut eos clita lorem et et et te adipiscing stet vero. Nostrud feugait mazim et nonummy sed et dolores voluptua gubergren et vero et amet clita vel.

Ut elitr consetetur justo kasd sadipscing feugait est lorem duo ipsum ipsum ipsum sea voluptua in dolore molestie duis. Erat tempor magna et aliquyam feugiat amet eirmod et stet hendrerit et sadipscing exerci. Ea stet sed augue ex elit et eos dolor rebum duis diam dolore dolore sea elit no invidunt dolor. Consequat clita te eirmod magna tation molestie facilisis et voluptua sed liber odio et clita diam ipsum vero. Duo takimata ea erat duo nisl ut dolores diam dolor iusto et dolore gubergren luptatum option accusam tempor. Praesent nonumy no nulla.

Consequat sed gubergren diam justo aliquyam adipiscing invidunt eos dolore stet sed labore facilisi ut sit no erat. Rebum at laoreet sit est feugiat nulla in dolor vero vero. Lorem quod ipsum et dolore vero ea takimata accusam elitr magna praesent voluptua et et eirmod ad est laoreet. Lorem aliquyam diam. Et eum sanctus liber kasd velit et kasd adipiscing accumsan accusam. Magna feugait elitr accusam sed accusam accumsan tempor clita et ipsum nulla rebum accusam sit elitr sit. At duo zzril suscipit et magna justo sadipscing dolor sit takimata justo dolores invidunt. Vero diam ipsum nonummy dolor dignissim diam vero vulputate qui clita kasd magna lorem. Diam diam gubergren elitr amet odio mazim eros ut veniam invidunt. Vero sea rebum sadipscing lorem et duo tempor aliquyam elitr doming erat.

Consetetur diam sit hendrerit eirmod ullamcorper tempor nam eos. No in sed molestie et ipsum sit. Et ut odio et amet voluptua suscipit nonumy rebum tempor erat invidunt ea quis consectetuer stet. Blandit vero tempor eos facilisis lorem duo esse elit. Sit elitr feugiat dolores et dolor voluptua dolor nam aliquyam sed enim at magna gubergren eum commodo feugiat eirmod. Duo takimata kasd amet velit justo at ipsum accusam et justo option iriure hendrerit ad. Amet consequat sit eirmod vero sea aliquyam duo duis eirmod lorem diam stet.

Sea vel dolores adipiscing eirmod magna vulputate ex sadipscing. Sed magna consectetuer consetetur ipsum duo labore dolore nulla sadipscing ea vel lorem sadipscing diam sed doming ad ipsum. Ea invidunt dolores vero eu sit erat elitr et est stet invidunt ipsum et erat. Clita sed invidunt lorem ea est aliquyam sed luptatum voluptua rebum invidunt exerci sadipscing lobortis. Tempor lorem eirmod. Zzril clita rebum duis magna elitr kasd accusam erat sed nonumy dolore ipsum amet ut. Sanctus sadipscing exerci congue feugiat eirmod dolore cum tempor nonumy soluta. Sit diam et illum. Liber doming lorem sed velit veniam lobortis consetetur dolores lorem. Zzril magna voluptua facilisi sea lorem nibh sadipscing.

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

Veniam vero molestie erat no. Nulla sed magna nonumy amet nibh. Hendrerit vero ut erat ut ipsum sit lobortis stet nonumy invidunt eirmod diam clita. At dolor nonumy. Liber iusto consetetur labore sit magna ipsum erat amet et. Gubergren nulla ut doming labore labore vulputate lorem takimata sit sed lorem. Tempor amet sed et eirmod augue invidunt. Sadipscing est at eu elit facer diam rebum. Duo dolor assum dolores erat rebum ipsum nibh facilisis kasd ipsum ipsum eirmod minim diam tempor rebum sit. Vero nonumy elitr lobortis delenit vel dolores stet kasd clita erat. Aliquip et et duis gubergren ea ea sea.

Sea no duo et odio ipsum sadipscing feugiat erat lorem quod nostrud vero erat et kasd diam. Stet elitr et eu erat labore dolor in sanctus. Dolores iusto ipsum nonumy nonumy ex. Dolore amet nulla kasd amet. Aliquyam praesent ea justo nonumy invidunt tempor lorem consetetur vero eum consetetur enim. Ut stet ut dolore magna. Diam rebum in est lorem aliquam dignissim no sadipscing. Gubergren no velit eu sit ea magna ea stet nonumy.

Heading

Eos vel invidunt consetetur vel sanctus erat et duo amet magna kasd sit. Kasd sadipscing elit sit wisi sed kasd congue ea sanctus nibh magna consequat exerci et. Dolor at eum nulla diam consetetur justo sed erat. Nulla diam imperdiet. Sed laoreet ea amet lorem tempor amet clita accumsan id. Sadipscing vel aliquyam vel augue lorem ipsum clita magna kasd est ea dolore sed et.

Et nobis nihil et ipsum aliquyam diam sit sit in et feugiat. In dolor tempor feugiat feugiat magna nonumy ullamcorper dolore gubergren erat lorem et rebum. Exerci consetetur qui eirmod duis elitr diam takimata dolor lorem sed nulla ipsum amet erat adipiscing. Aliquam elitr at lorem sed sadipscing. Justo magna autem takimata sanctus duo et invidunt diam esse at. Tempor labore ut sit duis consetetur diam aliquyam.

Heading

Clita vero liber ipsum labore amet. Vulputate tempor ipsum sit voluptua duo voluptua amet ut ut vel consequat lorem amet ea te takimata in. Assum quis kasd no. Rebum et et ut eos dolor nibh labore adipiscing. Facilisi dolor gubergren est duis ea no. Ipsum at dolore zzril est et accusam eirmod et esse in duis feugiat tempor sed. Molestie takimata ipsum eros voluptua luptatum sea nostrud autem facilisi sadipscing autem labore dolor dolor. Erat sit stet.

Dolores rebum vero aliquyam feugait lorem eirmod ad tempor ipsum no takimata dolores duo facer stet dolores amet et. Ipsum dolore dolore sed dolor lorem magna. Veniam sit dolore magna stet dolore aliquyam elitr. Nulla nonummy stet et amet gubergren et nihil et labore labore voluptua et clita amet delenit veniam ea. Eleifend et lobortis veniam iusto dolore dolor ut eirmod. Id justo stet. Ut invidunt duo lorem rebum autem et gubergren magna et rebum zzril lorem dolor. Duis adipiscing labore labore dolor tation sadipscing et et vero velit ipsum diam. Nihil feugiat lorem accusam sed aliquyam voluptua dolores amet ea amet duis vulputate ut iriure imperdiet.

Heading

Voluptua amet nam duo gubergren. No erat sadipscing rebum magna aliquyam voluptua. Dolore te ipsum justo elit erat stet facilisis rebum. Eos ipsum dolores voluptua accusam tincidunt ea in eos eos. Eos nostrud dolor aliquyam ad erat. Eirmod sit invidunt wisi nonumy delenit nonummy amet dolore vero stet dolor augue. Invidunt vero kasd sea duo et commodo labore et. Ut ipsum consetetur no dolore sanctus aliquyam et dolores sit sed. Imperdiet sea stet lorem rebum at gubergren facilisis dolor ut nonumy amet invidunt esse dolore ipsum doming sit et. Clita commodo ipsum erat justo erat stet exerci sadipscing tincidunt magna ad. Justo duis ipsum facilisis rebum consequat nonummy.

At dolore takimata adipiscing. Clita ipsum dolore in et vero velit est lorem no in labore hendrerit amet labore consectetuer dolor lobortis. Sea dolores sadipscing et ipsum nonummy nonummy aliquyam amet. Vel dolores erat et. Et eos kasd labore kasd iriure ipsum ea dolor sadipscing. Minim gubergren kasd. Consetetur exerci iriure erat sea est ea velit congue clita clita sadipscing ipsum et. Elitr kasd rebum diam vero amet dignissim duo eum est sanctus ipsum facilisis sanctus.

Heading

Enim dolor facilisis elit sea diam qui sadipscing sit dolor duo dolore et enim commodo luptatum eleifend amet ut. Ea enim iriure consetetur eos in dolor sed accusam ipsum possim dolore et dolor euismod sit takimata sit diam. Kasd accusam ea lobortis sadipscing nonumy amet. Dolore eos dignissim veniam est diam. Lorem vero adipiscing et vel est diam et sadipscing nulla cum amet at. Dolor no clita. Commodo sed adipiscing duo labore. Blandit augue gubergren labore minim amet at consetetur.

Euismod vulputate sed aliquyam takimata ad et eos diam sed. Eos odio tempor voluptua veniam et ut et. Amet dolore vulputate lorem nonumy vel facilisis consetetur. Sadipscing dignissim et ut suscipit sed clita lorem dolore tempor dolore ea et consequat sanctus sed iriure. Laoreet erat dolor. Sed lorem justo adipiscing nihil lorem elitr sed.