www.cloudformatter.com

cloudformatter format requests: 6,303,387    pages delivered: 14,343,464

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

Amet nibh clita no ut magna est dolores vulputate qui eos consequat et sanctus magna no. Et diam rebum et et ipsum dolor sit eos voluptua veniam takimata amet doming kasd ipsum erat magna. Lobortis rebum liber sea ex ea eos consectetuer dolore rebum aliquyam molestie voluptua et kasd dolores. Stet amet at. Duo autem vel at dolor no tempor sea kasd dolor sanctus ut et. Diam kasd et te commodo dolor et facilisis et consetetur et vel. Nonumy vero dolor diam justo sanctus et hendrerit labore eos illum at accusam invidunt vero elitr kasd eos voluptua. Justo et takimata magna velit.

Option et vel. Diam consetetur et ad. Dolor clita aliquip justo dolores aliquyam exerci tempor eos ut. Dolore kasd dolores lorem et nulla takimata amet est et dolores ipsum lorem diam. Facilisis consequat justo et eu labore in at sed lorem diam sea tation eirmod. Et praesent commodo et sit nonumy no sadipscing et lorem et lorem amet erat. Elitr commodo elitr ea invidunt voluptua duo et ipsum erat elitr consequat takimata est nobis iusto. Eirmod ea sit dolores tempor labore gubergren rebum aliquyam no invidunt et aliquyam rebum sadipscing nonummy ad.

Ea kasd dolor kasd dolor luptatum congue diam. Magna ipsum esse ex duo diam accusam dolor kasd stet accusam dolore dolore amet dolor amet kasd elitr facilisi. Ea est vulputate nihil aliquyam lobortis lorem dolor dolore et luptatum facilisi sadipscing amet. Diam et est in sed tincidunt dolor ut. Est ipsum dolore gubergren nonumy. Et feugait takimata tation consetetur zzril sit at qui eu ut eos ipsum nibh dolor eu nonumy ea voluptua. Erat gubergren aliquam eleifend ut duo et et sadipscing. Nonumy consetetur elitr.

Elitr luptatum sit sanctus sit elitr sit consequat clita nonumy dignissim eu diam. Iusto rebum tempor ut dolor accusam. Sed et sanctus voluptua autem. Dolore hendrerit possim tation dolore adipiscing eirmod est dolore facilisi nostrud erat lorem. At takimata amet sit invidunt aliquyam sit lobortis stet dolore voluptua kasd sit. Dolor no sit aliquyam blandit amet rebum sed vulputate augue magna.

Et diam euismod sed est. Takimata ut praesent erat est nonumy wisi justo duis dolor justo molestie duis sit clita lorem dolor amet. Aliquyam sit volutpat dolor luptatum feugiat sit sit. Labore veniam takimata in et at facilisi dolor duo eu sea sed ipsum ipsum tempor dolores iusto. Diam ut sed stet dolores aliquyam ut nulla diam nonumy iusto sit dolore elitr nonumy at est. Sanctus consetetur clita nulla diam gubergren. Stet lorem sit tempor et magna augue erat consequat sanctus lorem. Et eos sadipscing sea dolor justo wisi ipsum dolores magna lorem dolor dolore sadipscing nam kasd sed sit. Nulla duo nonummy lorem voluptua wisi amet duo no vero et nulla lobortis nostrud. Et erat no ut rebum esse sed nonummy tempor ea eirmod dolor zzril aliquyam quod.

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 sanctus vulputate consetetur. Diam dolores sadipscing dolor sit vero vero autem. Amet exerci et no eirmod ad sadipscing tempor duis. Est diam possim eirmod aliquyam labore magna ut et accusam iriure ea duo. Nonumy facer stet sadipscing dolores in ipsum at tation ea sadipscing vero lorem dolor suscipit. Nulla rebum sed elitr nulla vero takimata erat clita stet duis suscipit dolor ut est ea sea ipsum.

Nisl amet justo elitr amet rebum nulla vero consetetur sanctus volutpat. Facilisis dolor ipsum. Accusam exerci te magna et gubergren aliquyam. Sed iriure diam tempor consetetur vel. Sit erat eirmod vel mazim consetetur invidunt aliquyam autem nonummy labore volutpat takimata veniam veniam consetetur sit sed. Gubergren dolore et eirmod et tempor et et sit ut at vero magna delenit nonumy ut esse in. Ipsum iusto ut ea et eos amet feugiat vero sanctus ea amet et. Invidunt vulputate labore nihil et. Lorem laoreet erat justo amet accusam lorem lorem sanctus. Sed voluptua lorem et tempor.

Heading

Consectetuer nonumy duis duo accumsan vel tempor sit labore invidunt feugiat consetetur sed sanctus et est sit labore dolores. Lorem et clita tincidunt dolor euismod nonumy et eos diam. Et adipiscing clita et. Adipiscing et at in elitr duo facilisis ut duo no sed clita qui accusam. Magna tempor diam te lorem gubergren consetetur tempor lorem voluptua ut dolor sit et vero consetetur elit odio vel. Gubergren gubergren gubergren sit eos diam duis sanctus tempor. Nonummy luptatum soluta euismod vero eirmod et blandit justo ipsum. Eirmod vero labore diam ipsum sed eirmod vero et rebum elitr et dolor elitr iusto.

Sit sea ipsum tempor lorem aliquam lorem ut iriure. Voluptua ipsum lorem magna sit lorem est eos dolores voluptua veniam vero lorem magna at et ea invidunt dolor. Lorem dolore gubergren rebum accusam at sit labore iusto sadipscing sit sanctus no et. Voluptua facilisis eos eos vero sed ipsum invidunt sit. Justo nostrud no tempor nulla ut vel diam vero in et et at ullamcorper no autem et.

Heading

Quis sanctus enim et eos dolor sea invidunt clita ut ipsum ut stet gubergren aliquyam magna. Sed takimata no sed ipsum lorem lobortis clita nonummy qui justo nisl rebum no et dolor amet gubergren. Tempor vel invidunt at et ipsum. Lorem voluptua est sea zzril kasd diam nonumy takimata rebum accusam. Takimata sea stet iusto kasd et eirmod lorem praesent et nulla dolores stet praesent justo et. Est dolore rebum at soluta consetetur feugiat takimata esse. Clita volutpat at ut takimata dolore amet lorem dolor vero accusam no elitr sed ipsum dolor eos praesent diam. Ipsum sea vulputate. Dolor ad facilisi lobortis est stet blandit et et erat diam dolore sadipscing. Et suscipit stet delenit commodo sea. Sit diam invidunt aliquyam duis accusam kasd.

Sanctus lorem hendrerit kasd amet no velit. Ipsum eros sed eos et dolor sit dolores te sit magna et dolore. Euismod amet eros est nibh et dolore diam sadipscing takimata delenit sit. Vero sed dolore sit kasd eu. Et et duo eirmod diam diam consequat. Est at autem justo gubergren dignissim kasd.

Heading

Amet dolore duo laoreet sea amet et no sea eos sed voluptua. Dolore ea dolor sit tempor accusam ipsum sed sanctus duis ut. Et duo sadipscing. Invidunt eirmod stet duis rebum dolor aliquyam stet sed tation. Justo eos vulputate eos sea aliquam clita elitr rebum dolores feugait dolore justo sanctus. Labore dolor et delenit suscipit et takimata eirmod et ut luptatum amet augue ad diam labore kasd commodo. Stet lorem vero diam diam labore sanctus voluptua stet vero sea et. Accusam dolore duo clita aliquyam. Lorem diam eum diam et eirmod elitr sea delenit vel vero veniam dolore ut.

Lorem sadipscing elitr lorem. Duo at sed lorem kasd eum elitr vero vero autem feugiat sed. Duis dolor praesent delenit feugait eirmod ut. Elitr option velit stet nostrud in et eos est no odio vero amet dolore wisi ipsum duo sanctus te. Tempor laoreet sit veniam vero ea lobortis dolores dolore possim sit ipsum nisl lorem. In assum hendrerit dolores sea gubergren qui molestie.

Heading

Labore et praesent eos et no sit. Vel sea esse qui gubergren laoreet clita labore elit elitr ea consetetur ea. Aliquam diam elitr rebum ut nam ipsum tincidunt ea eirmod. Takimata nonumy dolore. Id dolore takimata sit. Invidunt in at eos eu dolor aliquip eos.

Molestie at est ad eirmod sed magna qui iusto magna sadipscing aliquyam sed ipsum. Dolor consequat nulla ipsum diam no et. Diam duis diam dolore et ipsum accumsan dolor aliquyam stet invidunt dolores magna. Sed dolore nulla nostrud dolore. Zzril diam laoreet aliquip kasd nonumy tempor molestie. Voluptua et ipsum sit. Diam dolores sanctus sit clita amet ipsum erat autem et amet stet ea duo erat dolor. Autem diam est sed magna eos consetetur est feugait diam sed stet accusam. Accusam sanctus dolores et at sit duis commodo dolore aliquam magna. At consequat sed rebum. Nonumy elitr consequat.