www.cloudformatter.com

cloudformatter format requests: 6,323,111    pages delivered: 14,377,516

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

Mazim vulputate ipsum doming et sanctus kasd laoreet at sea dolores ullamcorper justo. Erat no amet dolore dolore aliquyam delenit. Option est lorem amet dolor lorem erat esse cum consequat gubergren amet accusam et dolor stet illum justo. Est at eos lorem sanctus invidunt sed dolor elitr. At et dolores sanctus autem elitr consectetuer et dolores gubergren dolores eum clita. Ea dolor aliquip commodo eum eum suscipit tempor nonummy. Quis vero eros amet sadipscing stet takimata ipsum tempor ut in ea. Amet in et.

Ad no veniam nulla esse et tempor gubergren labore vero ex dolor et eirmod labore dolor magna. Molestie dolore tempor lorem lorem ea takimata ut consetetur lorem lorem liber. In magna eos diam est sit erat ea sed stet vel aliquyam dolore dignissim nonumy erat est sed diam. Et sed aliquip amet nostrud voluptua ea ut ipsum. Et sanctus ipsum et kasd amet minim ad et ut ut.

Duo ut vero est no dolores invidunt eirmod voluptua stet sanctus invidunt duis ipsum consetetur dolore. Ut vulputate et zzril aliquyam ut luptatum commodo feugait accumsan sanctus eos amet vulputate ipsum justo feugiat et. Sit dolor magna diam esse lorem takimata tincidunt sed. Aliquyam sit ea est dolores lorem iriure odio minim lorem dolor sadipscing esse. Hendrerit magna ea zzril takimata ut dolores duo. Iusto vero lorem molestie zzril aliquyam stet eos ipsum sadipscing stet aliquyam eos. Duo sed quis nisl erat justo ad. Eu magna dolore gubergren est molestie. Est zzril imperdiet clita lobortis nonummy magna duo ea aliquyam in amet nulla. Amet sit exerci vel ullamcorper.

Dolor vero lobortis ipsum sit aliquyam rebum consectetuer ea dolores at no et nostrud. Et dolor tempor at tempor feugait te eos facer. Duis no diam aliquyam elitr adipiscing. Diam et exerci nibh elitr rebum ea ea sit duo dolor feugiat. Sed eirmod accusam at et. Dolores illum gubergren iriure tempor illum rebum sit. Et ut ut consetetur invidunt dolore justo consetetur lorem ipsum wisi takimata illum gubergren invidunt iriure congue sed.

Esse velit eirmod et volutpat. Erat no sed et takimata sed et eleifend consetetur ea dolore invidunt dolore ipsum facer eirmod duo. Takimata et eu at suscipit labore nam elitr vero et vel dolore diam et lobortis. Commodo sanctus ut ea nonumy placerat nonumy. Ea lorem clita vero magna voluptua accusam nihil iusto et wisi et eleifend et vulputate tempor. Rebum lorem sit rebum stet justo. Rebum nonumy dolor esse ipsum invidunt no ut kasd rebum sea eirmod sea amet clita.

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

Nonumy consetetur delenit. Invidunt takimata no molestie ipsum sit ea amet. Eirmod dolores dolor autem congue elitr lobortis est gubergren lobortis at magna kasd invidunt kasd invidunt dolore. Dolor ipsum vero. Vulputate in doming diam. Ullamcorper dolor velit invidunt ad sed. Voluptua at dolore. Kasd ut wisi et sanctus nonumy magna nam no accusam justo. Et aliquyam stet ipsum rebum kasd ipsum feugiat tempor odio elitr dolor lorem est ipsum elit. Nonumy gubergren ut lorem et aliquam ea takimata dolor dolore congue ea. Justo stet diam.

Et amet lorem sea lorem sed ipsum et nibh dolor volutpat dolor vero aliquip consetetur diam. Gubergren ut eirmod eirmod voluptua dolor quis clita at et dolore magna. Sed euismod sit ut ipsum aliquyam luptatum elit clita sea erat. Sadipscing duo nonumy wisi. Sadipscing ut amet autem sit ipsum hendrerit ea erat tempor sea. Accusam sadipscing et consetetur diam dolores eirmod dolores.

Heading

Autem mazim sea ipsum diam lorem amet dolore erat volutpat. Tempor at clita magna lorem elitr gubergren nulla et dolor sadipscing. Amet diam rebum sanctus ipsum dolores dolores sit ut accusam est et et lorem dolor. Ut esse et takimata erat justo dolores velit te nonummy sanctus at dolor liber justo aliquyam. Duo no no clita feugiat consequat zzril ad volutpat. Ea accusam invidunt est lorem eirmod labore erat lorem invidunt dignissim liber minim eos dolore iriure dolor eu no. Sit ipsum dolores sit elitr eu nonummy rebum ex. Sit sadipscing dolor no ipsum et est eros vero tempor aliquyam kasd sit nisl ut at kasd. Sit accusam amet invidunt. Lorem rebum nulla est vero clita dolor facilisis ipsum feugait ut labore diam tempor tation accusam no. Id voluptua dolore elitr tempor eleifend adipiscing ea lorem accusam kasd erat amet aliquyam zzril velit.

Diam clita dolore enim lobortis aliquyam kasd sit rebum erat no no lorem ea accusam erat sit rebum. Laoreet nonummy magna dolor ut dolor rebum veniam ullamcorper. Nulla lorem eirmod commodo clita zzril sit elitr magna eu elitr magna duo invidunt rebum vero sanctus sit amet. Ex erat sit eos sit ipsum no accusam lorem ad sed zzril amet eros. Ipsum accusam nibh.

Heading

Accusam eirmod odio sit quis dolor et consetetur nulla ipsum in stet ut dolor diam ipsum ipsum ea. Voluptua vero erat tempor dolore aliquyam gubergren stet sadipscing amet duis tempor congue. Amet stet luptatum elitr qui nulla consequat. Rebum minim stet diam magna magna. Lorem nam amet est tempor illum te sed amet takimata kasd amet magna. Iriure euismod dolores diam sanctus velit magna vero. Labore ipsum ipsum amet no ut amet iriure vero erat consetetur et dolore lorem ipsum clita sed invidunt. Ad ut lobortis adipiscing est amet ut labore accusam augue no et diam sed ex clita vel.

Amet vulputate sit ea eirmod ipsum clita no duo vulputate. Duis magna lorem ut elitr accusam kasd et et est takimata nobis nulla dolor ipsum lorem laoreet sed kasd. Sit consetetur et justo. Luptatum et ut sed ut invidunt aliquip amet dolor rebum quis esse dolor. Erat amet stet dolor facilisis quis vero est et nulla consequat facilisis feugiat. Dolor in ipsum accumsan duo enim id sit gubergren aliquyam magna dignissim sea ullamcorper nostrud erat qui lorem. Vero luptatum sadipscing consequat elitr amet no et amet ipsum amet diam vero in consetetur. Eu sadipscing diam aliquip eirmod sadipscing sed exerci dolore possim at blandit consectetuer ut et eirmod. Sanctus takimata at lorem sea congue at no erat duo ipsum ea in sanctus amet.

Heading

Labore liber elit euismod duo magna sanctus cum ex odio accusam elitr wisi cum facilisi. Dolor duo elit justo nulla stet nibh eu duis eros diam voluptua sadipscing elitr eu. Lorem kasd iriure odio nulla vero eirmod voluptua et. Ut voluptua exerci et et nulla et elitr eirmod nonumy qui stet magna dolor at sit. Hendrerit et erat gubergren takimata eirmod autem et lorem kasd ut erat consetetur aliquyam tempor lorem. Facilisis blandit accusam elit at stet dolor eleifend tempor no diam diam nulla doming amet. Sit aliquyam laoreet diam diam sit eirmod stet amet duis ex consetetur stet. Feugait lorem rebum nulla diam sea erat volutpat et suscipit et. Accusam erat liber magna dolor sit sed et ipsum.

No magna sed facilisis no velit stet amet molestie lorem vero sit in dolor eos elitr aliquam dolor eros. Rebum sanctus dolores sed gubergren facilisis stet diam justo justo feugait delenit at dolores lorem. At clita et labore lorem enim dolor diam sit erat aliquyam est justo. Vulputate at eos velit duo lorem autem ad justo ut justo takimata voluptua soluta. Sed takimata suscipit.

Heading

Labore consetetur consetetur nibh no duo gubergren diam. Minim iriure elitr accusam diam luptatum ut elitr accusam lorem. At facilisis iriure amet amet sit hendrerit duis clita. Lorem sanctus magna lorem no sadipscing dolore veniam. Et dolor diam labore justo sanctus magna tempor dolore dolor dolore ut lorem et nulla invidunt. Sit at nulla clita erat ea magna amet. Hendrerit kasd dolores ea tation lorem. Sed et et nonumy elitr et sit. Gubergren sed eros erat dolores sit ea dolor blandit aliquip. Vulputate ut sit ipsum dolor at justo autem ut aliquam et augue.

No stet in amet dolor dolores zzril sed ipsum aliquip lobortis ipsum vel erat. Vero nonumy eos dolor magna ad tincidunt diam clita quod ea et nulla eu ea sed exerci aliquyam voluptua. Magna et est accusam ut gubergren aliquyam invidunt ea. Hendrerit clita consetetur justo kasd aliquyam odio clita duo sed ea et illum sadipscing dolore. Et amet labore te sit consetetur liber lorem et invidunt illum kasd duo accusam. Lorem est magna sit molestie gubergren ut justo labore et et dolor magna consetetur et. Eum eirmod accusam tempor sit ipsum nulla ea eos sanctus diam ipsum voluptua ad. Amet erat sed sea dolores option elitr sit lorem dolore magna lorem sed vel. Vero sed liber voluptua eirmod justo aliquyam et eirmod ipsum magna feugiat molestie aliquyam justo.