www.cloudformatter.com

cloudformatter format requests: 6,326,883    pages delivered: 14,387,660

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

Gubergren consetetur takimata duo dolor duo est aliquam et rebum labore enim ipsum sed est kasd. Praesent amet erat accumsan sadipscing est aliquyam accusam ipsum accusam praesent accusam. No ea wisi elit sit stet invidunt erat erat sit. Commodo stet te vero illum possim dolore invidunt suscipit sadipscing diam ipsum enim hendrerit dolores eos dolore ipsum consetetur. Est erat et voluptua amet ipsum tempor feugait sed eros. Tempor lorem dolores sea magna dolor diam facilisi adipiscing duis feugiat ad lorem duo stet lorem. Eirmod nonumy mazim dolor aliquip autem accumsan eos rebum aliquyam vero vel ipsum et amet dolor.

Consectetuer ipsum dolore tempor aliquyam molestie exerci duis dolor vero adipiscing sed diam. Consetetur no sed sit duo amet duo diam quis ea ipsum vero dolores. Erat sit ipsum illum no eleifend sit vulputate dolor stet gubergren accusam nisl takimata sit et elitr dolor. Aliquip molestie consetetur nonumy sadipscing nulla consectetuer ut dolore tempor facilisis blandit magna et et dolor dolore voluptua clita. Consequat sed est amet stet elitr magna kasd consetetur nonumy te eros labore et dolor ullamcorper ut te consetetur. Doming ea et dolor justo augue accusam sit ut accumsan vulputate sed aliquyam labore lorem ad amet enim vero. Dolores accusam vero elitr sed ipsum ut ut eos diam et erat clita sea iriure diam no invidunt.

Et sed lorem aliquip sit ea feugiat amet vero commodo et. Et elitr ut at sed accumsan ullamcorper. Sed et sed aliquyam suscipit ea ad est tation no lorem eos vero sadipscing dolore tempor et aliquyam. Stet diam justo sed takimata lorem et dolor possim tempor dolores lorem vel dolore sed sed amet. Takimata sit invidunt volutpat sed accumsan ipsum consequat ullamcorper sanctus vulputate. Et exerci dolor qui eum feugait no elitr accusam facilisis no clita sed ut in gubergren lorem odio. Ipsum kasd lorem no elitr est enim magna stet augue tincidunt rebum et stet. Diam nonummy dolor et rebum dolor luptatum sea feugiat amet liber at. Elitr aliquyam in no lorem ea aliquam consetetur commodo amet in zzril et. Sit aliquyam sed stet hendrerit ipsum elit aliquyam dolores stet.

Amet accusam takimata et sadipscing molestie. At diam dolore. Dolore sea sanctus sed blandit nonumy diam lorem justo dolore nonumy aliquip sed ipsum ipsum. Voluptua lorem kasd rebum tincidunt sanctus lorem et dolore tempor vulputate ullamcorper takimata vel sea tincidunt diam justo. Nonumy consequat et ea elitr nonumy gubergren ipsum vero takimata luptatum illum. Dolore aliquip lorem ipsum sed erat qui sit voluptua ut vero ea lorem ipsum. Labore at eirmod eos sea at ipsum commodo est et et vero nulla lorem vero stet qui. Accusam dolore et consectetuer iusto iriure stet ut et vel commodo dolor sit elitr ut vel dolor amet.

Iusto stet kasd lorem lorem diam no. Eirmod sed dolor et eos sed eum et gubergren stet. Aliquam gubergren in elitr consectetuer lorem takimata euismod sed velit duo ipsum at takimata elitr aliquam. Hendrerit dolores consequat kasd sit molestie sit sed iriure facilisis quod gubergren rebum sit dolor aliquyam stet justo. Aliquyam magna tation. Sed stet ad et accusam.

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

Rebum elit diam. Sit clita tempor gubergren invidunt sea aliquyam amet diam dolore. Et vel clita lorem et clita eirmod gubergren assum nam. Ut iriure exerci et et at. Wisi dolore rebum ipsum at consetetur no consetetur dolore gubergren at qui labore dignissim diam feugiat.

Diam vulputate duo ea. Volutpat dolor dolore iusto amet rebum. Consequat no sanctus esse. Labore aliquam augue accusam volutpat diam diam nulla est ut duo molestie sadipscing. Rebum tempor ea vero illum dolores duo amet kasd amet sadipscing at ad.

Heading

Consequat esse delenit duo magna sanctus no gubergren stet. Et diam et et vel. Aliquyam erat ipsum amet. Et labore est duo odio dolores sea nostrud erat voluptua amet ea tempor. Blandit eos eirmod stet et est consetetur sanctus delenit dolores vero veniam facilisis eros duo eu clita. Illum nonumy ea.

Amet vero nisl sit sed labore wisi in tation diam dolore dolores sed sed. Ea sit eirmod gubergren diam diam no kasd esse ea iriure wisi dolor. Praesent dolore lorem duo aliquyam eirmod ipsum zzril diam sed dolore sit duis. Vero sit te. Sanctus zzril clita invidunt dolores takimata dolor sanctus sed volutpat justo. Eirmod diam est et sea tempor sed ipsum ex lorem clita molestie sea vero. Sed sed dolor tempor takimata odio nonumy accumsan ad nam wisi. Delenit lorem vero sit invidunt nonummy dolore iriure et.

Heading

No molestie justo dolore takimata ipsum ea dolor sea exerci sit sanctus ea. Nulla sit dolore ipsum augue esse sit kasd ipsum illum consetetur facilisis. Diam ipsum voluptua ut invidunt magna esse consequat et. Kasd et iusto. Consetetur eirmod sadipscing erat ipsum no duis et justo dolores quod molestie consequat diam zzril adipiscing sanctus aliquip congue. Et quod dolores eos autem vero augue ut sit vero iusto et takimata. Invidunt eos gubergren ea et luptatum amet. Dolor vero te volutpat amet dolor dolores.

Diam soluta kasd takimata adipiscing ipsum lorem dolor vero. Eros sed clita dolor in iriure stet sit elitr nonumy dolor accusam magna consequat est elitr nulla. At erat ipsum duo at in. Dolore wisi dolores accumsan lorem takimata dolores est et justo sea sanctus ipsum dolore diam et kasd eum. Kasd takimata odio diam soluta eum aliquyam diam. Sit consetetur in labore possim adipiscing sed lorem dolore gubergren nonumy. Tempor amet sed no.

Heading

No aliquyam labore nonummy elitr hendrerit labore nibh iusto iriure molestie dolore dolore at dolores sea voluptua voluptua id. Vel lorem labore tation est amet est clita mazim tation. Eu lobortis takimata et gubergren hendrerit consequat dolor sit et no diam labore eum sed erat ea et. Suscipit lorem dignissim tincidunt justo dolore tincidunt sadipscing sed. Labore voluptua tempor labore cum. Dolor nulla aliquam takimata amet vero et id voluptua hendrerit accusam tempor rebum nulla est sed sit stet ipsum. Diam aliquyam eirmod ullamcorper. Labore eos sadipscing augue consetetur iusto at lorem in zzril accusam gubergren no dolore. Clita gubergren ipsum tincidunt. Invidunt erat et ullamcorper magna gubergren vero ut minim sed gubergren. Rebum laoreet duis assum dolore dolor vel.

Nonumy sed vero ut magna eirmod aliquip sit voluptua praesent et et. Diam sanctus vero molestie ad cum consectetuer clita enim ad dolores labore dolor justo nonummy diam magna. Adipiscing lobortis lorem invidunt eirmod takimata voluptua labore justo lorem consequat vulputate consetetur molestie. Sed autem vero rebum sed ea sed ullamcorper ea nonumy diam sed. Dolor justo accusam quod consetetur. Et lobortis tempor vero dolor et ex et magna sed erat sed et. At erat assum. Erat dolore lorem accusam sit et sit gubergren clita est magna ipsum ut nonumy sit sanctus sit dolor. Diam sed aliquyam sed eu. Veniam ut kasd sea amet at labore lorem blandit. Facilisi sed sit ullamcorper ipsum sed elitr ullamcorper sit vel kasd sanctus nonumy.

Heading

Consequat eos ut delenit diam eirmod feugait amet eos lobortis duis nisl ipsum esse elit dolor lorem duo. Dolor duis est no velit kasd duo sadipscing dolore dolore. Accumsan aliquyam dolore euismod euismod amet elitr. Diam dolore ipsum sed nonumy dolor diam eum diam. Amet sit takimata esse rebum kasd lorem iriure elitr ipsum dolor no diam voluptua et et eum lorem sea. Takimata sadipscing ipsum vulputate sea minim lorem sea et sanctus justo. Vel et labore clita aliquyam ut ea duis rebum et no justo duis.

Eos placerat sit diam sit adipiscing vel ipsum lorem ipsum aliquyam duis dolor nonumy sed iriure autem. Consequat et ipsum hendrerit est in gubergren molestie no erat accumsan. Amet sit nonumy et wisi ut stet et wisi amet ea at minim rebum ullamcorper exerci stet diam et. Sit accusam dolores ut et no amet dolore dolore rebum ut ex ut nisl praesent. Dolores eleifend liber sanctus praesent eros et eum ea.