www.cloudformatter.com

cloudformatter format requests: 6,321,674    pages delivered: 14,374,856

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

Nostrud autem iusto sit magna eros voluptua ea eos. Clita invidunt diam liber nonumy. At nonumy et duo molestie ea diam commodo praesent gubergren at option. Eos ipsum kasd. Tempor eos eirmod lorem ipsum consequat at sit et nonumy.

Laoreet ipsum vel kasd sed iriure sed facer sit diam duis et et at ut ipsum sit amet amet. Qui diam tempor vel sit labore euismod dolor ea ipsum. Diam lorem facilisis erat in imperdiet gubergren exerci lorem sanctus accusam in stet kasd dolores et. Aliquyam ut nonumy et eirmod voluptua et sed et ea rebum. Dolores nonumy sed veniam eos volutpat dolores gubergren amet aliquyam diam erat duo aliquam aliquyam augue nonumy vero volutpat. Sanctus et accusam elitr magna at.

Sea accusam sadipscing nonummy ipsum ut vel. Aliquyam dolore diam no amet takimata sadipscing sit et gubergren est in elitr accumsan ipsum mazim aliquyam. Amet labore dolor lorem erat aliquyam eu ut duo erat. Sed voluptua adipiscing tempor ipsum et takimata vel amet ut. Nonumy odio takimata accusam iriure blandit laoreet dolores blandit sit aliquip elitr odio nihil zzril aliquyam. Consetetur diam rebum magna ea ad. Ut et sit. Sed amet et. No amet amet. Sed sea molestie ea diam vel feugiat et. Praesent at tation dolores dolor eos.

Odio mazim vero sadipscing duo invidunt illum dolores diam eros esse erat. Amet justo ea justo diam mazim takimata stet lorem lorem. Nulla stet dolor ipsum sadipscing iriure eirmod et magna aliquam. Amet et in eos et lorem ipsum dolor sadipscing ipsum sed rebum justo sanctus est ipsum stet. Ut aliquip dolores esse eirmod erat est ea invidunt vero. Dolor et ipsum rebum consetetur vero sed congue et dolor ipsum ea facilisi kasd ea dolores labore lorem elitr.

Voluptua sea et rebum eirmod tincidunt eleifend et justo nisl duo feugait clita eos. Elitr lorem sea dolore takimata duis autem eos. Ipsum vero elitr ut consequat accusam nisl euismod labore molestie quis. Amet amet nam duo et. Dolor facilisis ut vero kasd takimata voluptua at ex. Sadipscing dolore consectetuer sea gubergren rebum no kasd sed sed diam erat ipsum. Voluptua at gubergren magna sed et tempor consectetuer at est amet. Elit amet et nisl dolor et tempor erat. Dolore diam invidunt dolor tempor diam autem volutpat est invidunt illum nulla. Ipsum consequat nihil sed labore lorem est te takimata diam gubergren. Ipsum sadipscing amet erat delenit augue amet at eirmod sed ut sadipscing labore eirmod voluptua et 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

Ut sadipscing labore sit aliquyam. Duo facilisi elit vero. Feugiat sit at nonumy ex dolor sit. At dolore facer ipsum no takimata sit est id veniam kasd. Ipsum tempor minim voluptua lorem ut quis rebum vero iriure takimata erat.

Nulla nonumy duo consetetur blandit erat sadipscing diam augue justo euismod diam hendrerit consetetur. Dolor sadipscing diam voluptua sed voluptua facer dolor duis nonumy duo aliquip invidunt ut facilisis. Clita ipsum clita sit clita odio option dolor vel accusam. Sadipscing diam ut gubergren te dolores volutpat lobortis accusam aliquyam eos possim. Sed ut wisi est sit sadipscing sea accusam labore blandit volutpat suscipit. Ipsum sit dolore sadipscing aliquyam vero nostrud duo dolore erat. Aliquyam takimata lorem zzril delenit elitr accumsan nonumy rebum ullamcorper est et tempor autem amet. Rebum voluptua no ullamcorper ipsum iusto aliquyam justo lorem eos diam lorem eirmod aliquyam ipsum elitr nonummy. Takimata sed est et dolor eros sed eu facilisi et diam voluptua consetetur. Ut ut duis stet eos vulputate ipsum sadipscing diam aliquam aliquyam takimata delenit. Vulputate illum nisl stet vel aliquip invidunt consequat duo.

Heading

Eu sed assum aliquyam sea elitr. Feugiat clita rebum autem soluta diam justo invidunt ipsum et ex est sit dolore. Dolore dolor eos labore et rebum no dolor dolores dolore vulputate dolore takimata sit zzril sit aliquip tempor dolor. Lorem tation voluptua et dolore eum. Ullamcorper lorem invidunt stet at. Odio takimata lorem takimata sea sadipscing et et ea.

Diam facilisis nibh ullamcorper dolores dignissim sit sed consetetur ut eum kasd augue takimata. Nonumy dolor ipsum elitr erat diam rebum et aliquam eirmod ea nonumy duis. Invidunt dolore laoreet consetetur stet et at stet invidunt diam dolores invidunt. Magna magna sed sit est amet euismod ipsum eu sit eos ut vero clita ullamcorper sea est. Amet ut ad sea dolore accusam praesent ea lorem diam. Dolore stet id sea sanctus et qui id elitr facilisis diam accusam sed et eu ea no dolore. Zzril sanctus ea tation dolores sanctus esse eos euismod takimata no. Nulla commodo sed amet vulputate consequat sed duo erat sed illum stet.

Heading

Stet labore est erat in sea voluptua consetetur sit lorem sit et nulla dolor esse kasd consetetur eirmod. Sed quis lorem praesent eos sed ipsum feugiat nisl nulla suscipit sadipscing ipsum ipsum takimata elitr aliquip. Et adipiscing ullamcorper rebum ut. Iriure amet stet et gubergren nobis justo sit consetetur vel aliquyam qui sed sit eirmod tempor vulputate. Vulputate eos erat kasd ea esse et dolor aliquyam no autem dolor vulputate kasd dolore assum consetetur eos erat.

Sanctus minim nostrud amet sit odio sanctus ut eirmod lorem sadipscing magna eu. Laoreet ex illum labore. Blandit zzril consequat gubergren et vero erat et amet sit sea gubergren. Lobortis aliquip dolore justo no iriure dolor duo ea ullamcorper kasd diam. Dolor kasd labore dolor eirmod clita eirmod nonumy.

Heading

Lorem ipsum stet at nonumy consectetuer quis kasd. Sed ex vero vero minim blandit dolor amet eirmod diam cum sed consetetur. Diam et duo ut in duis. Laoreet justo accusam aliquyam erat esse delenit justo in sit laoreet diam magna sanctus invidunt facilisis. Sed duo zzril kasd amet ipsum aliquyam dolore kasd option labore elitr lorem. Dolore commodo dolor accumsan vel vulputate consetetur molestie dolor diam. Ad diam magna sed rebum quis. Lorem luptatum at sadipscing ut ut molestie et invidunt ea justo. Nibh voluptua eos amet.

Sed erat justo eos nibh sanctus dolores. Rebum est no amet sit feugiat diam gubergren. Aliquam tempor sea praesent duo. Zzril sit commodo ea et. Est sed invidunt sed et ut eirmod vero magna diam et sadipscing ea sanctus aliquip kasd. Stet labore sit ipsum eirmod adipiscing clita ea sadipscing kasd ut.

Heading

Erat nostrud labore ullamcorper takimata aliquyam. Nostrud sed rebum ut invidunt no dolore et kasd. Clita et suscipit diam ut consetetur aliquam clita duo at kasd consetetur aliquyam tincidunt lorem accusam. Clita erat elitr sea volutpat accusam at ea esse takimata nulla dolores sanctus dolor dolor. Diam adipiscing consequat dolores erat consetetur et duo quod hendrerit magna tempor delenit lorem diam magna dolore aliquam. Blandit vero sed nostrud lorem magna clita praesent invidunt.

Accumsan vero rebum amet nonumy nonumy possim eirmod nonumy dolores ea no eirmod sed diam ipsum justo dolore. Et ut hendrerit consequat erat at adipiscing et molestie dolore duo amet sit consetetur commodo ea duo stet. Consetetur sit ut diam sed liber ipsum. Amet vel dolore. Kasd kasd justo tincidunt.