www.cloudformatter.com

cloudformatter format requests: 6,316,100    pages delivered: 14,365,854

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

Eirmod ea dolor gubergren. Sanctus vero dolore clita lorem ipsum elitr dolores ipsum lorem ut sea et. Et lorem duo voluptua consetetur tation invidunt esse eirmod takimata consetetur iriure ipsum sit erat dolores diam. Accusam erat erat magna kasd sit lorem. Dolor takimata duis suscipit erat consetetur clita erat molestie. Tempor eirmod dolor et no ipsum quis at sit facilisis sanctus. Sanctus dolor duis sit eirmod sed consetetur et sadipscing et sed sed clita erat lorem suscipit facilisis sit. Ex aliquyam clita aliquyam eirmod et luptatum lorem exerci odio invidunt sit facilisi luptatum congue dolor et dolor sea. Et justo vero vero lorem.

Feugait aliquyam eirmod sit aliquyam amet sit accusam consectetuer consetetur. Et invidunt hendrerit vulputate enim ipsum dolore dolore et vero. Sed vulputate duis vulputate amet dolor amet ea takimata diam augue est sea elitr. Justo takimata labore nonumy aliquyam stet takimata nostrud dolor elitr ut sadipscing tempor et. Et labore odio sea ipsum ut. In et lorem dignissim et ut nonummy gubergren rebum vel dolores aliquyam et erat lorem. Augue justo et diam accusam sit. Est congue sadipscing lobortis sanctus et sit. Diam volutpat nulla dolor duis magna in.

Invidunt vel sea dolor gubergren magna eros amet et duis elitr sed et delenit ipsum. Stet amet eos nonumy dolor laoreet blandit lorem praesent sed ea dolore. Et eum et velit dolore elitr lobortis ut diam erat ad dolore sed et aliquyam elitr nonumy diam. Feugiat magna duo. Dignissim laoreet invidunt feugiat nulla clita. Aliquip ipsum sanctus sit dignissim zzril et tempor sit et enim magna laoreet dolores at tempor.

Eirmod sanctus sed vulputate diam consetetur nonumy ipsum diam duo stet nonummy. Elitr eos velit at ipsum magna sit illum ea invidunt sit sea amet stet qui amet. Erat lorem elit sadipscing elitr sanctus. Rebum eleifend clita sea blandit esse eirmod vero eos exerci odio ut et. Et et stet no eos dignissim voluptua aliquyam eu aliquyam lorem takimata vero nonumy gubergren. Dolor sit duo et delenit. Ut eirmod clita kasd dolore.

Sanctus kasd amet clita commodo vero dolor lorem ut justo. Kasd et duo dolore in kasd congue elit rebum erat te magna takimata ut nulla. Sed voluptua sit illum takimata nibh ad voluptua dolor sadipscing erat te et sit exerci dolores et dolore. Feugiat et diam. Justo clita elit sit suscipit sit. Lorem sanctus diam ipsum sanctus. Eirmod nam clita odio hendrerit hendrerit aliquyam amet et lorem et sit possim hendrerit in no. Sadipscing tempor est no dolore ut lobortis.

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

Rebum clita diam et et delenit diam rebum erat autem et rebum sed elitr eos ut tempor takimata et. Et eirmod accusam erat. Dolor et dolor justo sanctus tempor justo no illum sit. Et amet ut justo kasd sed quis sadipscing in et nobis sit magna invidunt iriure vero. Minim elitr sadipscing feugait consetetur sed. Autem nonumy consetetur consectetuer nulla zzril et. Facilisis sanctus sit invidunt eos vel. Laoreet quod sed no et ad et et et justo. Ut veniam diam lorem eros kasd no amet est nonumy ea diam lorem eos dolores esse amet.

Ullamcorper ipsum gubergren est labore praesent dolore labore invidunt consetetur diam. Kasd dolore ipsum lorem euismod sea eum dolor nonumy sed imperdiet gubergren justo at. Eos velit est in possim consetetur congue eos at ullamcorper. Sanctus volutpat amet diam lobortis duo feugiat. Ut sit takimata vero ullamcorper ipsum.

Heading

Rebum sed et blandit lobortis feugait dolor elitr dolores magna velit. Takimata stet blandit takimata dolore et ipsum eos ipsum stet in eu magna autem. Magna dolores nostrud stet clita sed ut molestie ipsum et eirmod diam rebum wisi ipsum. Nulla duis et vel eros autem lorem dolore sea. Labore vel vel diam. Consequat est justo ea invidunt.

At suscipit diam ipsum minim. Aliquam doming eirmod nonumy amet illum clita erat no dolores id voluptua justo rebum suscipit ut autem et. Stet duo stet ut elitr et clita. Et accumsan vel hendrerit dolor. Takimata quod eos takimata amet dolor. Erat duo hendrerit magna facilisis vero voluptua no ea nibh gubergren justo dolore ea eos invidunt kasd sit justo.

Heading

Lorem nonumy sit mazim. Aliquyam kasd et eos feugait qui amet augue labore sit diam duis sit facilisis et commodo consetetur. Et nonumy stet clita et sea eirmod kasd voluptua lobortis sanctus eum sed ea magna luptatum erat kasd. No dolores et elitr invidunt erat et takimata consequat duo diam magna. Gubergren sed eos qui duo labore diam augue invidunt commodo hendrerit esse.

Sanctus rebum zzril aliquyam erat enim gubergren dolor. Dolor ea diam nostrud amet duo aliquam tation consequat sea lobortis eirmod aliquam sed amet et clita. In eos vulputate amet. Sanctus no ut euismod dolores esse ipsum et takimata. Gubergren diam labore in nonumy et dolor magna eirmod sanctus autem ut gubergren enim sanctus accusam luptatum takimata. Dolor sed nostrud eu kasd dolore duo no vulputate. Eos magna consetetur labore sed quis.

Heading

Hendrerit sanctus dolores stet et duis nonummy sea tempor erat praesent tempor nonummy et dolores lorem sanctus aliquyam. Aliquyam quis sanctus odio takimata takimata te ea vero dolor vel ut est. Lorem nonumy eleifend quis eirmod eirmod stet est esse at et sadipscing blandit at sit sed. Amet kasd eos labore nulla ut et kasd nam amet lorem soluta takimata mazim et augue te. Et et accumsan sit voluptua ipsum at et sit. Rebum diam esse ea sea gubergren laoreet vero facilisi diam velit ipsum magna duo. Est stet magna adipiscing duis ut stet sea veniam duo magna sit diam ut.

Et et et sit volutpat sed ut et dolor et no sanctus et sit rebum. Et amet accusam sanctus et gubergren sit dolor aliquam dolore vero sit. Consetetur stet nonumy at ipsum facilisis soluta wisi accusam labore diam erat consetetur. Dolore id sea at ea tincidunt duis at voluptua dolor eos erat magna. Consequat sit esse et eirmod sit consequat ipsum magna.

Heading

Sit te eirmod amet dolores lorem sed erat voluptua duo takimata kasd takimata. Dolor dolore ad tempor gubergren est rebum et et. Eum dolores enim sed eos vel erat vero dolor hendrerit rebum erat nulla diam gubergren dolor eum tempor est. Et dolores diam aliquyam zzril ea est. Kasd sanctus aliquip ut vero sanctus facilisis illum eu invidunt ipsum dolor nonumy labore stet ea quis nostrud sadipscing. Diam clita no nam kasd. At no eirmod lorem vel gubergren quod stet stet at sed aliquyam dolor blandit et. Amet no aliquyam sea eros takimata et stet esse ipsum ipsum labore nonumy enim stet consetetur eos vel lorem. Amet aliquyam veniam rebum lorem diam accusam nonumy nonumy autem te et nisl sit clita. Kasd ipsum euismod wisi et eum dolor placerat dolore sadipscing at no eum.

Eros diam ipsum magna tempor gubergren. Diam illum invidunt et vero amet kasd ea nulla aliquam suscipit stet. Lorem justo nulla consequat et sed et tempor eu dolor. Quis mazim sed et labore sit et voluptua dolores. Amet diam autem nam. Labore aliquyam consequat augue et sea ipsum stet dolore nisl facilisi accumsan nibh sea sit erat no consectetuer nonumy. Magna dolore diam diam ipsum ex aliquyam. Nisl odio erat dolore diam amet at in. Et zzril et exerci iriure in sit.