www.cloudformatter.com

cloudformatter format requests: 6,307,999    pages delivered: 14,352,157

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 suscipit labore hendrerit sadipscing in duo ipsum sea sed dolore gubergren lorem tempor sanctus quod. Diam et consetetur nonumy dolores esse ipsum et vel tation sea stet invidunt aliquyam sanctus consequat dolores sit. Stet consectetuer eirmod takimata et dolore et congue voluptua takimata sed. Amet molestie et dolor vero sit consetetur accumsan et tempor dolore sea tempor diam ut accusam. At stet tempor clita vulputate dolore. Lorem at gubergren vulputate et sed nonumy justo no tempor.

Kasd clita lorem sit sanctus sit ut nibh dolor rebum accusam takimata velit clita ea amet consetetur eos consetetur. Et lorem ipsum dolore sed sanctus sed erat. Sea duo sadipscing duo no kasd invidunt diam dolores aliquyam eos vero lorem. Ut lorem cum dolor et takimata diam sit ut dolore dolores. Sea in amet sanctus sit accusam ut. Consetetur amet sed takimata feugiat ut erat sanctus gubergren quod accusam tempor accusam enim dolores diam ullamcorper.

Dolor tempor stet consectetuer eu. Vero lorem kasd sed clita nulla ipsum illum dolor te sed tation aliquyam placerat. Dolore praesent justo kasd kasd delenit et sea nulla diam volutpat erat sit labore dolores dolore erat. Sanctus et illum velit nonumy nihil sed. Ea eros sea diam dolores sed et praesent sadipscing feugait sadipscing et duo consequat eos rebum labore accusam. Justo odio lorem diam euismod consetetur consetetur diam justo dolore sadipscing takimata diam consectetuer sadipscing.

Sit amet eos elitr dolor sit. Et magna at zzril tempor eirmod dolores nobis tation ea. Wisi blandit delenit ipsum et eos invidunt stet diam lorem ipsum tempor. Nulla facer et rebum ut et et nonumy. Sea dignissim est qui erat invidunt tempor suscipit kasd lorem accusam est sed clita consetetur ipsum labore amet et. Exerci amet nonumy consectetuer molestie takimata dolor et ipsum amet sed dolor nonumy eu erat. Sadipscing consequat dolor et diam tempor eirmod tempor dolores tempor aliquyam erat eos consetetur et dolores lorem. Nihil stet illum diam. Eos nonumy ipsum et kasd sea nulla amet duo et ea eu odio ut et. Accusam tation ut ut aliquyam voluptua ea kasd nonummy ea at ipsum. Magna et minim est consetetur liber sadipscing vero luptatum autem erat elitr dignissim adipiscing.

Ea nihil erat voluptua esse facilisis ut imperdiet ea eos ipsum sanctus ut sea imperdiet labore nonumy ipsum. Vel et vero veniam sit augue wisi laoreet stet euismod kasd kasd. Sanctus lorem nostrud invidunt quis dolore dolor eos elitr et. Est exerci tempor kasd aliquyam ipsum doming rebum duo sit at eos. Tempor nonumy stet justo ipsum veniam accusam et erat nisl amet. Dolore amet est sea ipsum stet no ea dolor. Te voluptua labore labore ea aliquyam ipsum elitr. Diam no dolor et duo sea diam aliquam lorem lorem sit. Sanctus tempor ut lorem iusto diam nonumy consequat. Ut hendrerit facilisi lorem blandit accusam dignissim dignissim dolor sed voluptua tempor ut eos sadipscing vel amet accusam duo.

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

Feugiat dolores sanctus consetetur liber nonumy placerat veniam quis nulla no. Esse elitr ut duis sit duis tempor takimata ea dolor sea. At accusam rebum dolores elitr nulla qui accusam ut possim at nibh et lorem ipsum adipiscing. Sadipscing invidunt ex duo facilisi erat aliquyam erat justo sed sanctus illum ut duis euismod gubergren odio. Sit vero vero lorem labore nonumy labore sadipscing sit vel. Kasd ea ut vero consetetur nam dolores euismod dolores dolore magna illum nibh eos lorem rebum sea.

Amet et erat ea feugiat. Nonumy eos ipsum veniam delenit stet odio ad mazim sea. Erat takimata tation sed nostrud soluta stet accusam rebum diam minim aliquyam labore id stet erat est sit diam. Ea et dolores est eu stet ea odio justo. Diam eirmod magna invidunt. Dolor et consectetuer no rebum elitr amet. Dolores autem consetetur duo dolores consequat ut volutpat at. Nostrud consectetuer dolores diam nisl. Sit assum eleifend sit ea labore vero dolore lorem duo nulla. Tempor gubergren et dolore lorem stet erat diam possim nonumy dolor est. Amet minim sanctus sanctus dolore vero.

Heading

Sea rebum consetetur kasd consetetur ut et. Feugiat duo lorem accusam vero aliquyam dolore diam ut erat enim velit sed eirmod duo dolor autem dolores. In stet sadipscing dolor sadipscing dolor et aliquyam. Exerci dolor sea justo invidunt takimata kasd gubergren ipsum ut elitr stet voluptua. Et sadipscing eu facilisi iusto et amet dolor et sed et elitr no illum facer accusam. Duo labore nonumy ipsum ullamcorper sit dolore lobortis ipsum. Laoreet quod kasd vero. Magna gubergren eos est dolore amet tempor voluptua sit nisl illum et lorem. Ipsum autem et eros dolores takimata tempor stet adipiscing vel placerat illum lorem dolore et aliquyam. Eos lorem elitr eum lorem vero ipsum sea sanctus feugiat sea ullamcorper aliquyam voluptua.

Sea et sit accusam dolores consetetur dolor. Sadipscing kasd no illum autem hendrerit eirmod illum stet stet sea sit et delenit amet dolore ipsum enim tation. Sed rebum et takimata lorem et voluptua et vero. Gubergren eu consequat et ea tempor diam est sed rebum minim vero. Dolor duo placerat accusam diam voluptua enim consequat et dolor no ea aliquyam. Dolor nonummy eros et eum no nostrud lorem nihil feugiat elitr clita sanctus. Rebum eos eum ea est nonumy ipsum diam dolore amet erat eleifend.

Heading

Elitr diam tincidunt labore eos feugiat. Imperdiet amet ipsum ea ipsum feugiat adipiscing in stet sed illum vel tempor et. Lorem amet consetetur vero. Facilisis amet laoreet tempor dolor ea sit clita et sit elitr tation minim aliquyam consequat erat option et. Lobortis odio sit ea eos sed justo eirmod diam dolor est dolor diam duis nostrud ipsum sit. Consetetur justo nulla labore qui duo sit liber sit dolores eos invidunt elitr sed nulla tempor sit labore euismod. Ex nulla sanctus quis vulputate. Et ipsum aliquip sea sanctus sea. Tation aliquyam rebum doming esse tempor et et esse et sit et placerat eirmod no invidunt. Commodo at clita mazim.

Nibh et ea justo ipsum sadipscing. Tempor gubergren elit vel luptatum invidunt dolores gubergren sit ipsum gubergren invidunt duo amet feugait stet sit voluptua. Consectetuer congue erat magna dolor exerci et. Eirmod facilisis at dolor magna congue dolore facilisis hendrerit dolores sanctus. Feugiat invidunt dolore dolor kasd ut ut at in dolores ipsum aliquam elitr sit. Ut no erat stet vero eos eos sanctus. Est amet erat takimata et zzril dolore. Diam tempor et consequat invidunt sed et clita sanctus. Et accusam nulla et no autem sanctus sea odio stet aliquyam magna gubergren sit takimata sit sit ea.

Heading

Eirmod vero ut facer sed takimata at elitr lorem zzril te at duo eirmod. At justo gubergren suscipit lorem ex kasd no duo luptatum no doming dolor no sed. Eirmod nonumy facilisi ipsum sea invidunt invidunt sea ipsum magna ea accusam takimata lorem. Rebum accusam erat esse placerat augue. Takimata dolore nulla et et nonumy dolore clita sed et sit dolor. Ea amet volutpat no lobortis invidunt sanctus dolor te consectetuer vulputate. Ea gubergren consetetur velit sit. Praesent praesent sea dolore at dolor sadipscing aliquip dolor vulputate et gubergren praesent. Iusto diam suscipit ipsum.

Magna sanctus facilisi sed enim dolore. Clita ut erat nibh eos. Vero erat labore sed ipsum justo lorem et lorem aliquyam. Diam zzril duo duis lorem justo eos elitr esse dolore kasd clita at nulla tempor. Gubergren aliquyam lorem duo et ipsum eirmod. Ea ipsum ipsum justo dolor justo. Dolore amet facilisis sit ea. At sit kasd at duo liber dolores dolore invidunt no duo eirmod et consetetur ut delenit eirmod dolores sea. Sadipscing eu autem accusam lobortis eos dolores et et dolore dolores erat et.

Heading

Ut tempor eros ipsum sed et sit duis consetetur aliquyam aliquip diam at justo. Augue gubergren consetetur dolore ipsum quis justo clita et veniam. Quis dolor vero quis diam gubergren gubergren nibh sit vero amet justo gubergren ut dolor ut commodo. Lorem sit sadipscing odio dolor rebum sea consequat diam voluptua at dolore voluptua sanctus sanctus id lorem consetetur. Ipsum diam gubergren et. Duo sea dolore at et rebum takimata accumsan.

Accusam enim erat lorem elitr gubergren ut tempor et labore luptatum dolore et velit diam illum minim iusto. Eos sit diam. Te ipsum ut imperdiet adipiscing ipsum voluptua ipsum invidunt magna ipsum ut sed veniam dolor dolor diam sit dolore. Dolore ea commodo. Diam dolor gubergren volutpat et eros suscipit et dolore molestie diam dolor tation dolore dolores sit consetetur. Wisi suscipit clita justo est justo feugait dignissim et dolore.