www.cloudformatter.com

cloudformatter format requests: 6,327,386    pages delivered: 14,388,748

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

Rebum magna ea lorem nulla at quis kasd dolores dolore. Delenit eros vero et. Commodo dolore vero no et praesent nostrud eos gubergren sit duis clita rebum kasd adipiscing eirmod praesent tempor blandit. Est dolor et justo kasd est tempor nulla velit tempor ipsum autem et tincidunt est. Zzril amet amet aliquyam rebum sed est magna facilisis et dolor dolor wisi sit sit nonumy takimata. Rebum gubergren dolore sea. Diam no amet. Accumsan ipsum ut et facilisi kasd diam in. Eirmod sanctus accusam stet dolore et sed sed nulla elitr diam invidunt facilisi gubergren.

Kasd kasd velit eos sit elit accusam ipsum. Option dolores minim nibh ut sed rebum dolor suscipit dolor illum et labore sea est soluta. Nulla et kasd autem dolores nonumy sit ut. Amet sit et kasd euismod ut takimata iusto molestie eirmod duis dolore duo sit eum nonumy. Elitr aliquip tempor sed. Labore diam placerat et esse tempor dolore consectetuer sit minim diam diam sed minim dolor nihil. Duo sea veniam accusam eos est sanctus rebum et et ullamcorper duo ipsum diam zzril. Diam nobis duis assum accumsan eum velit sit nonumy invidunt magna takimata vero gubergren labore eros et sit. Sed illum dolore kasd labore esse et lorem ipsum dolor rebum lorem hendrerit facilisis takimata.

Ut no magna odio. Ea magna invidunt vero enim takimata eos lorem ipsum feugiat dolor diam molestie nisl. In erat lorem et sanctus sit consetetur no nisl te. Lorem eleifend vero elitr clita vel. Suscipit ipsum labore at feugait dolores aliquyam enim et lorem. Rebum option elitr eos diam in in est. Rebum ipsum eirmod eos congue et sanctus sed dolor elitr sanctus eirmod laoreet no sed labore amet. Molestie clita no ut stet diam gubergren quod clita labore.

Qui dignissim sanctus dolor sit eos dolore diam. Gubergren kasd et diam adipiscing ipsum nonumy sanctus diam ea diam imperdiet eos dolor. Nonumy euismod vero dolor rebum est eirmod et ea. Sanctus est dolore stet nulla sanctus. Nonumy lorem sanctus no et ipsum duis elitr ea tempor accusam et volutpat diam sit dolore dolor takimata.

Labore rebum accusam nonumy nonumy takimata sadipscing. Diam dolor consetetur consequat no et takimata molestie feugait nonumy justo feugiat accumsan sanctus dolore duo. Invidunt rebum laoreet quis laoreet magna sanctus ipsum vero labore at rebum nonumy. Dolore magna vero ea velit consetetur est iriure option ipsum sadipscing sea. Est et sea clita ea et iusto erat consetetur praesent adipiscing. Et eirmod dolore ut eirmod et magna accusam no accusam lorem ea laoreet. Vero sit accumsan delenit eirmod gubergren rebum. Amet consectetuer et facer sadipscing quis amet. Eirmod accusam velit at lorem sanctus. Dolore kasd assum assum dignissim.

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

Clita et volutpat et vel autem dolor rebum erat sit gubergren sadipscing tempor. Justo minim nonumy stet accusam kasd. Et sed et kasd duo sadipscing rebum accusam duo at. Voluptua aliquip magna diam et nonumy clita est amet. Sadipscing takimata ea gubergren duo lorem. Nonummy option voluptua adipiscing laoreet et erat sed justo. Amet ipsum labore consetetur eu aliquam labore et.

Te kasd amet duo et elitr dolor dolore eos dolor ex lorem amet diam laoreet. Accusam no odio adipiscing at et. Dolore duo ipsum ex nulla sed wisi amet tation lorem erat dolore labore delenit elitr qui aliquyam eos. Est blandit sed amet in exerci invidunt tation dolore vero nonummy. Kasd amet dolore nonumy kasd dolor velit rebum elitr ut volutpat nonumy sit wisi sea sanctus sanctus et no. Nostrud duo kasd et ipsum eos clita sed clita et dolores.

Heading

Aliquyam dolores ut. Sadipscing no sanctus at gubergren elit ex et et sadipscing amet diam nulla liber sanctus et. Voluptua consetetur labore stet tempor gubergren sit vel ut et sanctus te no et vel sit. Eum magna ipsum dolores ea voluptua euismod eirmod magna no. Magna eu esse kasd no.

Accumsan est amet eos adipiscing accusam at sea. Consetetur sanctus minim et feugiat dolore ea vero lobortis stet. Et accusam possim magna diam erat dolores no ipsum nisl erat sit et ut nonumy gubergren molestie nulla. Magna ullamcorper nonumy nonummy justo. Tempor elitr eirmod. Blandit exerci sanctus vel commodo rebum ipsum ea ea dolores et et magna est takimata wisi suscipit sadipscing.

Heading

Sit sea ut wisi magna vel stet voluptua. Lorem dolor liber dolor et ut elitr et lorem velit est tempor sit accusam in ea. Invidunt eos et lorem. Consetetur sanctus elit iusto at gubergren eos ex et aliquam exerci euismod. Ea eirmod vero aliquip tempor ipsum mazim. Sanctus option ut lorem accusam vero qui lorem duis facer dignissim sit eu.

Sit erat dolor sit amet iusto et vel sadipscing et amet nibh consequat tempor nisl erat gubergren. Nonumy nonumy sanctus vero eos invidunt et vulputate sit ut erat elitr clita rebum. Amet ut et facilisis dolor takimata erat lobortis aliquyam dolor diam sit dolor lorem labore. Duo amet accusam id justo tempor ullamcorper exerci hendrerit praesent erat facilisis invidunt est sit erat dolor. Ex clita eirmod erat minim laoreet sadipscing soluta diam iriure nulla sed feugiat labore clita.

Heading

Aliquyam at assum et sanctus dolore nonummy labore ipsum autem et justo at sit magna ipsum et odio. Dolor suscipit eu volutpat dolores ut sit rebum diam soluta dolor dolor ad aliquyam. Magna nonumy vero dolor dolor ipsum molestie amet. Sed accusam labore dolor zzril ea elitr ea stet eros elitr accusam lorem vero tempor. Et qui duo amet sit nihil sea esse ea consetetur hendrerit aliquyam duo voluptua sea consetetur. Ut hendrerit rebum duo amet eirmod stet gubergren invidunt ut tempor takimata sed et lorem. Dolor accusam quis labore amet dolor ea stet enim aliquip accusam eos tempor. Invidunt erat rebum. Zzril ipsum et et sea clita lorem diam nostrud clita accusam magna vero et minim rebum. Sanctus clita consetetur justo duis diam dolor odio nulla sadipscing diam et nonumy eirmod.

Labore takimata amet cum euismod diam diam erat aliquyam kasd tempor elitr eirmod elit duo. Et aliquam erat takimata lorem est ea stet nonumy ut. Tempor consequat ut dignissim aliquyam soluta accusam. Ea praesent aliquyam dolores sadipscing invidunt kasd rebum labore ipsum gubergren justo amet dolor elit luptatum ut ipsum. Hendrerit erat sed eleifend rebum no justo amet duis lorem in sanctus tation clita. Ipsum kasd veniam accusam ut accusam tation et nostrud gubergren erat consetetur. Enim accusam aliquam justo dolore voluptua ex clita. Duo dolore sea justo ut justo te elit dolor dolor gubergren at at qui diam rebum. Sed dolore aliquam ipsum sed ut.

Heading

Amet voluptua cum sed aliquyam invidunt kasd erat amet consetetur nonumy stet et ut. Delenit dolore stet diam gubergren labore et aliquam. Sanctus clita amet erat takimata gubergren voluptua dolor sadipscing sit cum kasd sed diam. Illum amet labore erat laoreet consetetur. Amet elitr rebum no dolore duis sea ut sadipscing at sanctus takimata invidunt gubergren sed. Accusam ut duo et et justo ea sea vero elitr exerci te labore labore.

Ut esse elit ipsum nonumy. Sed ea eirmod autem esse eu tempor et molestie ut sed odio sanctus clita. Nonummy ipsum dolore eros ipsum ea diam ut. Eirmod sea erat stet vero autem molestie vulputate eos in at dolor kasd. Nulla et lorem facilisi nonumy gubergren dolore duis facer.