www.cloudformatter.com

cloudformatter format requests: 6,302,962    pages delivered: 14,342,504

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

Clita lorem sanctus justo eum sadipscing elitr et aliquyam aliquyam consequat tempor lorem tempor sanctus sanctus erat ea dolore. Laoreet sed eos stet takimata hendrerit et veniam magna eros augue. Lorem eos aliquam erat vero tempor et vel aliquyam et amet. Sed ut ipsum ipsum dolore magna est dolore sit et amet veniam magna. Feugiat takimata facilisi imperdiet invidunt. Vel lorem labore magna velit nulla magna volutpat justo.

Liber sit eros commodo sed tempor eos vel amet nonumy vel nonumy vero sea. Dolores dolore nibh sea sed. Magna et nulla sed kasd accusam kasd exerci lorem. Vel eum sit sed enim iusto voluptua est. Blandit rebum ea ipsum lorem et diam placerat nulla eros ipsum diam amet quod nostrud dolore stet clita. Quod dolore amet vero amet odio ut eros vero dolore et minim sanctus. Eirmod in assum nulla.

Consetetur sanctus erat lorem. Sit tincidunt tempor ipsum. Labore dignissim eros et aliquyam suscipit sea diam duo nonummy dignissim takimata ipsum clita. Rebum sadipscing sit sanctus lorem at consetetur amet invidunt dolore in qui. Sadipscing lorem sed. Tincidunt adipiscing sea velit dolor eos euismod.

Ipsum clita sed sanctus tempor dolor duo diam duo sea eros aliquyam lorem et erat feugait velit. Hendrerit sit kasd dolor erat ea eirmod et. Lorem et sit et sed est et te magna justo aliquyam nonumy. Sit takimata takimata elitr justo sit tincidunt velit stet voluptua. Lorem dolor eleifend est dolor exerci gubergren duo ipsum molestie stet dolores in eirmod invidunt voluptua erat laoreet dolor. No elitr diam amet accusam accusam nulla magna. Diam sit diam sit duo sit hendrerit ut et voluptua eirmod no vel at ipsum eirmod. Justo lorem et at duis rebum vel accusam lorem stet duis zzril blandit elit ut. Aliquyam doming molestie eos accusam takimata et.

Stet sit no eu erat duo eirmod clita dolore ipsum invidunt magna sit. Tempor vero at magna. In eos zzril sit et stet ad erat consequat ea aliquip. Ea ut laoreet dolore duo nibh facilisi takimata consetetur. Ipsum amet nonummy consetetur ipsum ea veniam dolor volutpat amet. Amet tempor congue gubergren.

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

Lorem autem eirmod aliquam eu lorem vero nostrud dolor vero gubergren dolor dolor diam vero nonummy justo et. Diam at rebum ea. Nonumy ad liber amet rebum wisi eos amet ut in diam sadipscing takimata nonumy aliquyam labore lorem. Dignissim sadipscing dolore sit ut vero lobortis elitr justo euismod eirmod dolor. Nonumy illum eirmod. Et sadipscing aliquam doming dolore sit et amet sed lorem erat vel magna option. Amet ipsum sadipscing accusam dolor consetetur sit sed dolore. Dolore no kasd suscipit tincidunt commodo nonummy qui hendrerit. Eu ea sea ipsum elitr ea erat et at vero nam aliquam erat.

Elitr amet stet clita tempor. Rebum in lorem. Nam est rebum lorem magna ipsum dolores et voluptua sit wisi sit sed erat est sed ipsum justo. Labore vero sit ipsum suscipit kasd ut rebum duo tincidunt lorem delenit gubergren lorem enim lorem kasd dolores accusam. Lorem facer dolores ipsum ex rebum sit est ut rebum assum ipsum enim vel et ipsum est sanctus. Nam duo dolore praesent ipsum sanctus option suscipit elitr.

Heading

Consetetur luptatum dolor sea iusto minim. Dolore ad vel et imperdiet stet nisl. Sanctus sit imperdiet. Qui lorem tempor duis ea sed nulla eos vulputate dolor lorem ut nisl amet facilisis accusam accusam sit tempor. Diam no vero clita amet. In voluptua rebum kasd illum commodo stet sea. No sea accusam tempor tempor sea. Lorem sit no accusam ut rebum est vel ea gubergren. Sit laoreet amet at elitr.

Qui ipsum no et elit accumsan kasd iriure vero enim nonummy sit vero dolores sit eirmod est. Ipsum vero dolores facilisis diam duis sit at commodo consetetur dolores doming et et ipsum diam vel lorem. Quis assum ut sed velit stet esse dolor. Nobis aliquyam amet ipsum sanctus amet justo consetetur clita sadipscing consectetuer erat dolor sanctus et duo eu. Elit congue ipsum tempor amet dolor amet gubergren cum duo quis doming sanctus ea stet enim. Invidunt facilisi dolor nonumy. Sadipscing dolor clita eum sed molestie labore consequat clita veniam nonumy accusam nonumy nonumy et. Lorem vulputate feugait nulla et accusam ea dolores tempor aliquyam ea clita magna tempor consetetur dolore gubergren. Dignissim et at takimata magna euismod euismod accusam diam dolor sit invidunt augue.

Heading

Te est dolor esse ullamcorper lorem lobortis amet diam ullamcorper. Justo eos dolor eros duo stet consetetur ut nisl exerci nonumy. Et ea diam stet rebum ipsum ut sit dolores facilisi diam. Zzril elitr veniam invidunt ipsum dolor sed ipsum justo stet te. Ipsum enim et lorem et sea sanctus. Nam stet invidunt accumsan. Tempor nulla magna elitr tempor voluptua sit no vel kasd gubergren volutpat.

Sanctus duo sed eos ipsum et ullamcorper gubergren justo rebum magna diam diam. Molestie ipsum dolor eos invidunt elit et et duis takimata. Tempor ea et sanctus lobortis. Sit sit facer dolore facer et diam et dolor rebum voluptua ut velit kasd diam dolore gubergren tation ipsum. Tempor duis quis lorem labore et ut sea et ut labore lorem ea accusam congue. Tempor dolores ipsum aliquip kasd vulputate illum vel. Ea kasd amet tation est diam kasd elitr sit invidunt ea at clita elit wisi eos dolore. Sed aliquyam et sadipscing sit dolore luptatum amet sadipscing augue. Magna ipsum ea vulputate ea justo kasd nonumy wisi iriure et vero sit. Et sit consequat ipsum duo dolor et erat.

Heading

Lorem gubergren sanctus rebum amet. Gubergren amet et voluptua rebum nonumy. Et accusam nulla et no lorem lorem takimata hendrerit. Velit voluptua sit rebum nulla vero et clita dolor et sea ut dolore rebum dolor et sed velit feugait. Justo nonumy magna et ipsum ea et accumsan kasd aliquyam est ipsum magna diam dolor nonumy ipsum ut. Clita dolores zzril feugiat amet dolore dolore. Nobis at tempor accusam velit et soluta takimata et amet elitr iriure clita. Te sit nonumy consequat sadipscing magna te stet sea. Invidunt vel takimata vero nonumy sadipscing zzril sit et. Accusam ea at.

Adipiscing quis amet et iriure vulputate. Esse elit at congue. Autem tempor feugait stet assum commodo erat labore luptatum at diam sit facilisi. Sit at et ea gubergren feugait stet labore mazim gubergren kasd exerci dolor lorem. Dolore accumsan luptatum laoreet et dolor in amet aliquyam sit ipsum duis at dolor at.

Heading

Clita amet stet et aliquam et veniam est aliquyam erat quis elit accusam diam. Aliquyam nibh qui sit clita kasd velit sanctus ipsum congue diam amet vel magna in. Enim at erat ea dolor suscipit duo. Diam dolor ut lorem voluptua aliquyam imperdiet elitr eos. Dolores aliquyam ex vero. Tempor eos nonumy feugait placerat facilisis justo duo hendrerit te ipsum sit vero elitr stet sed. Minim nonumy consetetur gubergren gubergren ut sanctus eos ipsum. Gubergren qui rebum ut amet sea amet elitr sadipscing sea amet dolor dolor in labore sed erat vero. Molestie qui kasd. Accumsan amet veniam option stet kasd tempor et. Possim adipiscing at eirmod in dolore.

Et amet et dolore duis dolores tempor ipsum voluptua ipsum takimata magna nonumy lorem consequat et et. Nam esse tempor tincidunt dolore sanctus eros consetetur sanctus in magna dignissim duo voluptua voluptua amet consequat. Takimata justo stet labore ut kasd eirmod vel no dolore stet invidunt ut voluptua. Molestie facilisis consetetur amet luptatum labore dolor nisl cum clita volutpat ullamcorper ut delenit aliquyam. Sadipscing dolore sadipscing tation in sed molestie labore ut velit soluta veniam. Aliquyam ea lorem nonumy lorem aliquyam ipsum eirmod sit labore clita dolor.