www.cloudformatter.com

cloudformatter format requests: 6,321,134    pages delivered: 14,373,903

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

Lorem amet lorem sed laoreet et justo ea autem dolores elitr sed et aliquam voluptua autem. Consetetur tempor magna erat kasd praesent dolores sanctus blandit dolor sed est et aliquyam gubergren sed et. Rebum dolor amet. Magna nonumy et nulla clita eu eleifend et sanctus voluptua. Rebum vero takimata eos labore in duo invidunt ipsum. Minim duis quod et. No amet consetetur elit clita sadipscing et wisi facilisi in takimata magna et lorem sanctus.

Ea sit et sanctus gubergren est takimata stet vel dolore. In consequat te consequat ea veniam eirmod ex id. Rebum ut adipiscing nulla amet magna eros duis magna et lorem nonumy diam. Dolore rebum stet duo quis invidunt lorem lorem kasd sed accusam sadipscing dolores nonumy adipiscing sed et vero est. Ex gubergren ullamcorper ipsum sed invidunt magna sit ut et sanctus est takimata sed lorem dolor ipsum. Tempor lobortis tempor adipiscing diam lorem liber sed stet eos sed ipsum.

Labore diam eleifend stet takimata et sea eos sanctus cum stet. Est esse ut nisl aliquyam elit aliquyam diam lorem wisi clita ea dignissim ipsum elitr justo gubergren erat. Eos zzril eos accusam erat. Diam consetetur et. Vel soluta ut tempor amet lorem accusam sanctus et dolor aliquyam takimata placerat. Lorem ea amet nobis. Eos et stet nam nonummy eleifend commodo vero. Tincidunt tincidunt ipsum possim stet zzril est clita at sed te eirmod iusto rebum ut sit tincidunt vero.

Et enim erat amet eos gubergren lobortis justo sit accusam est veniam at. Ex dolore ea ullamcorper euismod at dolor accumsan est et diam velit molestie sed sed accusam lorem voluptua vero. Magna kasd commodo laoreet et diam sea. Et eos facilisi amet clita luptatum stet justo dolor. Iriure lorem ut sadipscing sadipscing diam lorem tempor consetetur no dolor laoreet duo sit sed consetetur et hendrerit ut. Quod voluptua duo et suscipit vel et sit vero illum enim. Eirmod labore rebum at consetetur eirmod dolor no est sed elitr. Stet sed est imperdiet ipsum justo diam sadipscing. Duis eum eirmod dolore at cum gubergren et no stet ullamcorper amet stet accusam. Ea amet lorem aliquam sit diam. Ea consequat eos et et feugiat lorem vero magna in accusam consetetur tation quis voluptua sadipscing.

Sed dolores amet ea sit sed labore eirmod accusam eum lorem. Diam ipsum vero no sed lorem tincidunt stet accusam amet molestie. Ut dolore quis. Gubergren elitr nonumy nibh clita et duis. At sit dolore vel justo id ut takimata magna est at amet et dolore vel.

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

Illum eos tation aliquyam gubergren diam justo et enim. Clita sanctus dolor facilisi labore sadipscing rebum duo gubergren et et ut dolor sadipscing aliquyam consequat et facilisis ipsum. Eum no duo voluptua sit accusam. Aliquyam magna kasd dolor amet justo ut amet amet eos zzril at takimata sanctus et aliquam eos et et. Praesent amet autem et sadipscing ut feugiat cum. Nonumy accusam amet dolor takimata labore ut duo voluptua accusam erat erat minim aliquyam sea laoreet ut sed sadipscing. Et lobortis feugiat aliquyam et vulputate aliquyam ut facer ipsum sed mazim clita elitr duis consequat. Amet ea eos vel eirmod sanctus autem ipsum id dolor et ut kasd sea. Eirmod erat magna ea sadipscing dolore aliquyam hendrerit dolor vel diam et nonummy ut et ut sit. Justo diam gubergren dignissim imperdiet duo ipsum et sed lobortis sit. Adipiscing takimata sit magna aliquip soluta dolore amet in labore et gubergren dolor diam kasd molestie rebum.

Nostrud assum euismod rebum blandit justo duo dolore stet tempor gubergren sanctus diam. Sed invidunt molestie voluptua. Dolor feugiat nonummy takimata autem aliquyam at amet dolore wisi. Eu justo elitr rebum accusam velit takimata kasd kasd. Velit vel delenit exerci dolore ut in sanctus eos elitr accumsan lobortis dolore kasd. Dolore magna sit labore euismod vulputate. Lorem voluptua et diam stet. Et nonumy erat facilisis labore nonumy amet kasd dolore ipsum ea et lorem amet stet elitr dolores. Et dolore wisi. No kasd diam dolore.

Heading

Odio facilisis dolor elitr blandit ut eos et stet. Ut sadipscing eu ut lorem et magna ut rebum sadipscing accusam at nonumy ipsum justo. Nulla consetetur ea duo commodo commodo aliquyam clita takimata euismod eos eos veniam et eirmod eu erat qui. Diam sed facilisis diam sadipscing erat sadipscing in. Amet magna eirmod lorem eos duis ut erat nisl.

Vulputate eu et iriure eum ut. Est aliquyam est sed sanctus justo. Elitr vero dolor tempor takimata vulputate sanctus rebum facilisis clita sadipscing vulputate dolor amet. Ipsum sadipscing voluptua labore dolores amet stet sea labore ea sea lorem tempor no eum no ipsum dolor diam. Euismod labore tation dolor est dolore nulla justo no commodo sanctus invidunt te diam magna nonummy ea. Ipsum tempor congue et dolores et lorem lorem justo est duo molestie diam ut ut justo tation ea.

Heading

Erat sanctus vel vel. Sit no blandit te dolor dolore et consetetur no amet ipsum eleifend feugait dolores lorem minim vel. Et dolor nonumy tation et sit in commodo gubergren rebum ut ea minim vel est et elit magna. Dolor dolore sed sit vel dolore justo magna. Dolor magna sed et sed amet ipsum nulla iriure dolore esse et duo. Clita dolor gubergren sadipscing blandit ut duis no duo dolor labore at nulla consetetur vel consetetur. Sit lorem eos qui invidunt invidunt ut nam lorem.

Accusam no in nulla laoreet at ea dolore esse nonumy justo ut diam. Aliquyam est lorem lorem erat ipsum takimata amet dolor ipsum amet delenit duis diam praesent vero sanctus. Rebum dolores esse no delenit eirmod dolores sit erat tempor feugiat facer ex aliquyam consequat delenit takimata. Aliquip dolore dolore justo invidunt. Clita nonumy sed kasd amet facilisi wisi clita consequat accusam et eos ut accusam in clita. Lorem sed dolor sed tincidunt. Facilisi dolore magna accusam ipsum vulputate et ea consetetur voluptua soluta aliquyam accumsan voluptua sanctus. In accusam dolores nonumy nonumy sea ullamcorper aliquyam ut sed in ex. Sed qui stet takimata amet hendrerit sed stet tempor nostrud vero adipiscing vulputate sed.

Heading

Ullamcorper et ut ea dolor vel. Et illum elitr option dolor consectetuer. Nulla sadipscing esse duo dolores elitr lorem et et odio diam eum lorem consetetur elitr diam. Aliquyam nostrud dolore vel takimata vero sit amet consetetur ipsum. Et te diam ullamcorper sit labore dolore dolore elitr lobortis kasd.

Dolor clita ea et ut ex et lorem sed et illum erat diam in ut et molestie sit et. Kasd sit amet aliquyam accusam magna ea clita kasd esse magna ex. Lorem in vel te erat. Nostrud ea sea option vero sanctus. Takimata sadipscing sea stet justo et justo sit. Dolor ipsum et ut et dolore kasd.

Heading

Facer ea takimata labore ut stet. Accumsan eos erat takimata sea justo nonumy ullamcorper aliquyam invidunt elitr tempor ipsum clita. Ea possim nulla lorem sea gubergren quis magna illum molestie aliquam no luptatum elitr vel eos no amet sit. Lorem consetetur sadipscing tempor dolor consequat in accusam dolor diam. Vulputate facilisis elit dolore invidunt consetetur rebum lorem et sit accusam autem dolore takimata ullamcorper sanctus blandit eu amet.

Eu feugiat kasd labore consequat erat accusam eu dolores hendrerit aliquam at augue. Ea et elitr dolores nihil at sed. Nisl consequat nonumy possim congue hendrerit. At te ut sea consequat et dolor et dolore nonumy et sadipscing sadipscing et et dolor facilisis. Duis autem dolor sed clita dolor.