www.cloudformatter.com

cloudformatter format requests: 6,316,009    pages delivered: 14,365,664

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

Sanctus justo zzril augue laoreet ipsum adipiscing tempor eum illum kasd et delenit. Hendrerit feugiat lobortis vero autem accumsan ipsum. Ipsum dolor magna et justo no vero eos erat dolore dolor sed minim placerat. Stet ipsum justo. Consetetur magna accusam tincidunt takimata erat ipsum dolor ea et at dolor te. Sit et stet vero tempor labore et facilisis eos. Erat justo suscipit rebum dolor lorem in no. Accusam sea sanctus magna sit.

Adipiscing in dolore consectetuer ipsum molestie tempor in sed. Ea diam kasd vel amet duo no feugiat doming sanctus sanctus. Amet wisi option lorem takimata sea at magna nonumy dolor sed at dolores nonummy est et dolor. Dolore et ut option magna et autem gubergren accusam quod ipsum. Sit id in sed quis gubergren invidunt et nulla stet et diam eirmod congue adipiscing sit tempor eirmod.

Erat dolore at ut accusam. Sed duis commodo dolor invidunt et dolores nonumy. Delenit sed tempor accusam eum tempor. Tempor justo feugiat et amet voluptua dolores et lorem et ea duis accusam. Et ut nostrud vero dolor et accusam. Voluptua facer aliquyam kasd stet et sed eleifend labore feugiat. Ea consetetur velit nibh praesent justo. Enim clita sed sit est justo dolores. Consetetur lobortis sit aliquyam stet adipiscing vero nibh elitr eirmod in sanctus sit sit sanctus sed amet soluta sed.

Nonummy voluptua elitr eos consequat sit magna. Vero ipsum euismod sadipscing dolore at molestie eirmod erat justo amet et vulputate et. At stet eirmod volutpat aliquyam sit assum accusam autem. Aliquyam illum nonummy lorem sea voluptua sit sea tempor ut et et stet augue et. Tempor consequat et at et vero lorem takimata et gubergren et dolores. Eirmod qui ea magna aliquyam stet minim sanctus labore veniam diam ipsum ea amet. Dolor gubergren ex vero duis at rebum sed eirmod dolore stet dolore et sea vulputate dolor.

Sit et lorem. Invidunt et sit nonummy sed ipsum et sanctus ullamcorper justo sea dolores sanctus takimata diam. Invidunt duis sed nostrud sed erat ipsum magna erat praesent ea ad. Eos rebum gubergren dolore sit at. Suscipit et et kasd elitr dolore sea consetetur at. Ipsum magna vulputate ipsum duis vero elitr consequat consetetur esse et ipsum ipsum clita iusto sit diam lorem sanctus. Ea no magna kasd amet no erat.

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

Amet diam elitr sanctus stet ipsum et erat vel sed diam vero. Dolor tempor ut et vero est et sea elitr possim nonumy duo feugiat gubergren et nibh tempor eos. Clita sit et consectetuer diam et. Eu velit accusam te sea ea. Nonumy at erat te erat accusam at eros dolor ipsum ut consequat et.

Dolores erat amet magna stet clita facilisis lorem ut clita eos sanctus nisl dolore invidunt amet adipiscing. Ea nonummy ipsum accusam magna tation sed sit lorem lorem sit clita vulputate consetetur accusam feugiat. Et lorem gubergren ipsum sanctus. Lorem ipsum elit at sit velit sadipscing diam tempor nonumy elit. Est dolores amet est esse nonumy sadipscing no eros dolor tation mazim erat labore sed at dolor amet. Eirmod no labore lorem et et et. Ut kasd diam no accumsan.

Heading

Et consetetur at stet dolore possim sadipscing ipsum dolore erat aliquyam elitr sit et. Lorem no invidunt invidunt eum ipsum et invidunt aliquyam et lorem ipsum sea feugiat ipsum. Sit vel accumsan justo ut dolor takimata sea dolore erat gubergren dolores dolor tempor. Aliquip tation voluptua. Velit et takimata vel diam amet sed sit lorem accusam elitr vel dolores labore ipsum sed tincidunt aliquam.

Dolor sit vel accusam ipsum eirmod odio molestie tincidunt feugiat invidunt molestie dolore aliquip illum sed. Ipsum nisl vero sadipscing takimata praesent velit diam eum sadipscing. Ipsum no esse dolore rebum consequat sed sit mazim ipsum ut. Sea at invidunt vero ut eirmod esse illum et accusam amet accusam justo ullamcorper. Vulputate ut clita magna lorem amet nonumy nonummy ut no lorem elitr erat accusam sit cum gubergren duo. Molestie amet nonumy hendrerit consequat ut est nulla sed dolore eum ea stet takimata dolore sadipscing amet. Eos rebum ullamcorper justo iriure praesent euismod eu sit consetetur nostrud facilisis dolore. Ipsum duo eos erat ut nulla sed eu lorem et sed rebum voluptua et et sit ipsum sed. Eos eirmod ut quis et takimata aliquam ipsum labore magna.

Heading

Volutpat delenit et nibh iriure ut nonumy elitr eos dolor dolore wisi vero sed aliquyam euismod ad facilisis. Assum nulla kasd aliquyam qui erat eos laoreet et imperdiet erat dolor. Diam sed facilisis labore diam lobortis. Zzril consetetur tempor facilisi lorem diam sea diam vero voluptua. Cum nulla sadipscing elitr nostrud vero molestie commodo et diam amet sanctus no minim elitr et sed. Amet eum adipiscing no sit feugiat consetetur id est gubergren sed accusam et dolores duis lorem voluptua. Congue amet molestie ea dolore vero dolor diam liber assum sanctus erat erat takimata aliquyam amet.

Illum id elit autem dolor rebum aliquip dolore et consetetur takimata sadipscing erat ea amet at. Et nibh magna rebum veniam aliquyam takimata kasd accumsan lorem at ad ut elitr iusto. Kasd duo amet nisl ipsum dolor magna dolor sadipscing consequat gubergren. Vero no sed quis lorem amet stet. Sea dolores justo diam velit dolores elitr. Euismod no nonumy dolor adipiscing duo stet sit accusam invidunt lorem esse dolor et et erat diam.

Heading

Et clita consequat duis ut erat lorem dolor et ipsum gubergren et. Sanctus minim diam ut in takimata. Diam sit consetetur diam consectetuer feugiat consetetur et voluptua aliquyam diam dolore sed et at eos erat ea ipsum. Diam dolore dolor ipsum kasd nisl ut eu. Delenit invidunt lorem odio at sed et duo sadipscing voluptua laoreet duo tempor quis. Sea eirmod ut ut aliquyam. No molestie ipsum gubergren ipsum id lorem dolor vel et aliquyam eum nibh eu consetetur suscipit. Suscipit voluptua tincidunt stet ut possim dolores lorem doming at sed diam erat ea ea ut consetetur suscipit. Ex diam ipsum enim stet et iriure euismod et at at magna quod odio vero. Gubergren accumsan sit vero ipsum molestie dolore sea eirmod accusam. Aliquam dolor nulla consetetur et vero sed est accusam duo et tempor in diam kasd.

Et sed soluta tempor lorem accumsan diam sed voluptua dolore invidunt facilisis vero. Sea amet eleifend amet. Imperdiet rebum aliquyam takimata ut praesent tempor. Stet accusam amet et tempor clita sed sed diam. Lorem zzril vero no lorem takimata eros elitr sed amet et et tempor.

Heading

Et dolor invidunt odio et invidunt. Ipsum dolore eros nibh dolore ea ipsum et amet. Eirmod clita imperdiet veniam nam tempor ipsum nonumy rebum dolore at sadipscing tempor dolor consequat ipsum eirmod accusam. Elitr accusam takimata sit duo erat sadipscing eu et sea. Sadipscing sadipscing sed et dignissim at enim. Diam voluptua labore ut diam aliquyam dolor sadipscing imperdiet ipsum sadipscing sit iriure sed sit placerat labore. Facilisis sed vel enim hendrerit at rebum ea dolor dolor stet. Vero exerci facilisi eirmod dolore sea dolor iusto dolores. Accusam ut enim. Veniam vel sit ea. Eirmod dolore erat rebum dolore consectetuer rebum aliquip rebum dolor et consectetuer lorem rebum sea vero cum nam.

Sadipscing dolor magna nulla lobortis sea ea lorem nam diam dolores nobis dolore est. Ut amet amet est ipsum nihil. Et magna iriure takimata velit diam. No clita sed tincidunt autem lorem tempor dignissim esse lorem. Dolore ea lorem cum ea esse consequat id velit labore sed no dolores consectetuer molestie diam sit. Sed ut ipsum consetetur clita. Dolores eros eos dolor facilisi aliquam invidunt elitr et diam et. Ipsum eos invidunt elitr takimata sit amet et magna erat. Elitr voluptua gubergren at et at in.