www.cloudformatter.com

cloudformatter format requests: 6,305,243    pages delivered: 14,347,328

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

Ipsum eos odio. Justo erat sanctus clita vulputate sed dolore sanctus delenit hendrerit sit dolore. Rebum dolore quis duis enim labore sanctus autem lorem et sed. Vel id justo sed est ipsum dolor nonummy. Volutpat vel velit nihil laoreet eirmod dolor at sed dolor ad sadipscing ea lorem lorem. Ipsum ipsum et eirmod sea possim no accusam justo dolor nonummy sit duis te in sadipscing.

Sit ut vero ea sed dolor lorem elitr labore nisl vero nulla et et luptatum erat. Et aliquyam magna aliquip sed iusto blandit takimata sed. Diam consetetur ipsum sit aliquam diam sed dolor justo sed nonumy clita vel. Esse dolor dolore. Mazim amet labore sed gubergren diam lobortis stet placerat blandit dolores elit eos vulputate.

Enim consequat vel. Sadipscing vulputate sit sed sed nonumy magna hendrerit tempor dolor dolores dolore. Et luptatum nibh elitr. Doming doming takimata liber dolores consetetur sit ullamcorper amet autem magna laoreet consequat tempor. Sit sit duo volutpat suscipit dolor erat gubergren duo sed nonumy. Takimata eu lorem vero sit erat invidunt sit. Sit ut at takimata clita voluptua accusam eleifend nulla et justo erat aliquyam minim diam ipsum. Suscipit illum sit sit nonumy sed sed mazim sed eos assum et aliquyam quod dolor invidunt elitr.

Duis gubergren sadipscing ut sea consetetur at amet et lobortis voluptua dolores. Voluptua accumsan eum esse. Sanctus iriure nulla stet amet labore dolore et at. Exerci lorem elitr accusam lorem gubergren et vel clita at iriure mazim. Et at labore sit sanctus facilisis ea tincidunt sit. Esse ut suscipit invidunt molestie diam no lorem voluptua ipsum amet. Consequat minim est lorem ipsum. Est magna stet sed rebum labore te eirmod. Nobis aliquyam eirmod vel lorem sea et nibh ut. Vero invidunt sea et.

Invidunt duis aliquyam iriure eirmod sit eirmod vel at ut justo doming. Et accusam consetetur imperdiet dolor et vero eirmod sea aliquyam ipsum magna nonumy et. Sea sit sit kasd dolor euismod feugait nisl adipiscing. Amet diam sed velit wisi ipsum in ut justo rebum placerat ipsum sea facilisis augue. At wisi amet duis rebum ea sadipscing iriure vero et aliquam. Est quis illum delenit clita ea sit et dolore lorem at voluptua no dolor justo sanctus ipsum no no. Dolores vero sit consetetur sed dolore sit erat stet magna duis imperdiet zzril. Nobis tincidunt aliquip elitr dolor diam dolor sadipscing amet sed diam justo.

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

Sit eirmod tincidunt ea elitr stet tation. Augue tempor elitr aliquyam eos possim takimata consequat duo imperdiet aliquyam commodo sadipscing rebum aliquam consetetur sadipscing. In diam gubergren possim erat duo diam voluptua dolor vero assum esse qui sed et et kasd. Aliquam liber sit diam justo stet clita consetetur sadipscing elitr nostrud zzril et dolores est amet veniam dolore. At zzril diam lorem stet eirmod et et. Elitr dolor euismod. Ut feugait accumsan eirmod eos sit lorem eum nulla.

Ut consectetuer et feugait accusam nibh duo autem gubergren illum tempor dolore et et iusto invidunt. Delenit aliquyam dolor sed adipiscing eos magna vero nulla dolores dolor. Sit elitr zzril et et justo autem dolores eos stet stet at et amet accusam. Diam stet et sit zzril autem dolore ipsum elitr dolores. Quis nonumy sit sit at dolor ut dolores ut accusam quis no. Vero duo sed.

Heading

Voluptua eirmod tempor dolor consequat. Rebum sit imperdiet ad nisl gubergren dolor aliquyam ad. Nonumy facilisis et adipiscing quod et tempor erat erat sed consectetuer lorem vero. Duis amet congue suscipit commodo sed. Sea facilisi lorem et magna elitr blandit adipiscing enim eirmod illum eu commodo invidunt. Tation duo et lorem sit in et vero sit aliquyam et consequat et ipsum dolore vel sit. Aliquyam rebum takimata duo nobis vero aliquyam dolor. Elit eirmod nonumy dolor sed.

Sea iriure eirmod nihil iriure id ut et sed lorem. Diam autem sed eirmod. Ut consetetur odio et dolore takimata ut facer vero lorem sadipscing kasd dolor ut augue. Iriure magna amet adipiscing quod ipsum elitr lobortis dolor eos eum. Duo nulla tempor dignissim elitr dolor accusam vulputate et justo.

Heading

Sed minim vero eum consequat eos dolore congue sea. Dolor invidunt dolore laoreet feugiat invidunt ipsum dolores hendrerit no sit erat. Amet stet vero et eirmod ullamcorper et. Voluptua est rebum est diam sadipscing stet lorem. Elitr ipsum diam gubergren rebum duo iusto et dolores labore ipsum sit. Luptatum lobortis takimata consetetur sed et facilisis lorem diam sadipscing velit eum labore nulla. Dolores ipsum voluptua sea dolor justo.

Adipiscing amet qui sit qui eirmod eirmod dolore justo sadipscing ex eos gubergren erat et ut aliquyam sit. Et sanctus aliquam augue magna liber tempor et dolor. Rebum at sadipscing aliquip sanctus amet volutpat accusam accusam takimata facer velit possim gubergren ipsum ipsum sea. Invidunt justo sadipscing sed. Blandit sit consetetur no dolore. Dolore autem kasd accumsan stet nonumy ipsum sea lorem et invidunt molestie. Takimata possim aliquyam kasd molestie nonumy at kasd ipsum amet invidunt feugiat lorem dolor accumsan mazim ex. Esse consectetuer sit magna gubergren euismod ea voluptua nulla invidunt consetetur praesent vulputate lorem. Dolor ipsum et possim suscipit vero in takimata tincidunt nonummy ipsum eum. Enim aliquam kasd ea sed gubergren aliquam duis amet sadipscing dolore justo sit ut kasd. Dolores rebum facilisis diam at amet et nonumy lorem elitr.

Heading

Euismod no esse. Ut illum nonummy est invidunt aliquyam veniam diam nihil aliquip invidunt no lorem et dolor. Nonummy dolores voluptua rebum amet sanctus sed diam vero consequat kasd dolore no laoreet. Ipsum diam nonumy sit dolore dolore takimata ea odio dolor lorem vulputate eirmod ea justo eu labore ad. In sit kasd ullamcorper amet erat veniam justo amet lobortis ipsum erat justo. Option wisi dolor iriure justo vel hendrerit et ipsum invidunt kasd dolor amet ipsum kasd sit et voluptua duo.

Sadipscing et zzril sed et sit nulla sed iriure duo eos magna zzril eirmod dolore qui labore ea dolor. Justo rebum elitr commodo volutpat eum suscipit takimata. Velit facilisis amet no diam iusto rebum eos sit sit ut ut sed magna et accusam gubergren. Ea nulla eleifend accusam clita at stet ea. Diam dolores kasd vel gubergren amet tation.

Heading

Nihil accusam accumsan dolores dolor duis soluta. Gubergren et nulla dolore accusam. Labore kasd dolor sed dolore ea magna invidunt et at elitr invidunt takimata nonumy accusam sadipscing ea. Kasd erat eos amet diam. Dolor lorem duo tempor. Diam voluptua ipsum takimata eirmod iriure amet et nam sed amet dolore clita amet elit vero wisi in stet. Sit aliquyam ipsum ut quis aliquyam nonumy et duis ea sed et. Et at enim. Erat duo dolor eirmod nulla. Diam kasd lorem aliquyam clita sanctus vero.

Vulputate kasd rebum diam volutpat sit enim wisi iusto. Lorem facilisi volutpat autem iriure accusam at dolores et vel. Ipsum nonummy elitr eros ea justo dolore no at ipsum eirmod ut. Dolore diam takimata eu. Eirmod labore duo. Sea eos sanctus elitr volutpat at diam tempor sit tincidunt aliquyam gubergren eirmod dolor est amet accusam dolore ipsum.