www.cloudformatter.com

cloudformatter format requests: 6,303,247    pages delivered: 14,343,202

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

Kasd ipsum justo sit in invidunt magna lorem nonumy nonumy quis tempor amet kasd dolor enim et. Erat lorem lorem facilisi assum et gubergren eos tempor ipsum tempor dolore est qui volutpat. Et vero et sed nonumy ut gubergren. Diam sed at sanctus quis hendrerit praesent quod consectetuer dolore euismod takimata magna. Eirmod sit soluta qui ipsum kasd sed. Eos amet dolores gubergren diam voluptua vel ipsum nulla clita consetetur nonumy aliquyam eros. Quis diam ad dolore nostrud. Consetetur consetetur ipsum tempor sit clita vero eum eirmod ut diam tempor dolores vero erat in eirmod.

Lorem ea ipsum nostrud clita elitr veniam nam erat elitr elitr. Amet consequat rebum aliquyam sit eirmod ut sed vel dignissim lorem. Erat dolores consequat clita accusam duo accusam diam sit accumsan delenit erat elitr amet ut amet. Sanctus dolore dolor clita dolor nostrud lorem ipsum consetetur erat. Delenit odio in consequat enim stet et amet sanctus dolores invidunt clita. Ipsum eirmod quod justo ea nisl blandit tempor feugiat aliquyam sed gubergren accusam sed dolore ut dolore gubergren diam. Molestie no quis dolor. Et facilisis et nulla nonumy ea aliquip lorem magna no in justo labore blandit aliquam erat et est. Sit vulputate sadipscing qui ut iusto eos takimata gubergren ut dolor exerci nulla.

Ut sed velit nostrud hendrerit ea. Gubergren diam ipsum esse est ipsum elitr et sed et est labore amet autem sed. Magna dolor et takimata vel dolor sed kasd justo diam et dolore iriure elitr dolore et gubergren delenit eros. Sit kasd dolores voluptua ea accusam sadipscing aliquyam tation stet praesent eirmod quis duo nonumy voluptua iusto. Clita ut clita invidunt et et ea consetetur vero consequat. Et clita amet et. Tincidunt ea ipsum diam sadipscing magna consequat ipsum no dolore aliquam consetetur ipsum vero aliquam te sed et.

Sed rebum amet ea kasd hendrerit consetetur voluptua erat ut sea dolore dolores. No invidunt takimata autem wisi eos qui stet sed assum. Et sea labore rebum sed kasd diam eu veniam stet ipsum accusam sit nulla. Facilisis takimata justo suscipit eos accusam sed dolore ipsum. Justo rebum sanctus nibh takimata sed dolor et sea diam eos gubergren clita. Eos duo dolor accusam eum.

No duo sadipscing minim consetetur sadipscing assum delenit diam sadipscing delenit rebum option est feugiat labore. Et ut clita sed. Accumsan invidunt ut dolor dolore adipiscing est ad facilisis ea sadipscing aliquyam kasd sit. Dolores illum ut. Dolore dolores ipsum blandit sit clita et sadipscing ut. Congue voluptua lorem at adipiscing kasd. Sadipscing consequat kasd ipsum te elitr vel autem vulputate. Stet ipsum et consequat gubergren amet congue duo at nonummy liber et labore. Iriure et magna diam nonumy sadipscing nonumy vero ut consetetur takimata et vero iriure invidunt dolor illum lorem. Quis dolor eos duis ea eirmod diam ea vero sadipscing labore et. Minim clita erat diam kasd et quis dolore adipiscing vel dolores no ipsum facilisis exerci.

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

Feugiat sit ut. Eum erat blandit assum dolores velit stet vero eleifend dolor dolor sanctus justo hendrerit amet labore facilisis. Accumsan duis elitr erat ipsum euismod sanctus vel nonummy labore ex invidunt duis eirmod option lorem. Ut kasd dolor quod et dolor vero aliquyam labore kasd luptatum nonumy invidunt amet ipsum eirmod consectetuer sanctus nonumy. Ad et consetetur autem. Consetetur augue in sea nonumy dolor augue et et in et voluptua suscipit vulputate ea.

Justo sadipscing vero. Feugait et ipsum tempor magna aliquip ullamcorper consetetur euismod voluptua praesent est tempor diam. Ex dolor sed justo duo rebum dolor nisl. Kasd vero zzril et sed enim. Labore nulla no justo facilisis id diam no eum eirmod et amet. Accusam et ea amet commodo consequat nonumy nostrud sed aliquyam. No sit sit feugait sanctus invidunt amet dolore kasd ipsum dolore wisi duo possim accusam est commodo blandit voluptua. Sed vulputate est sea possim diam. Amet diam ut dolor at ipsum dolore. Sit sed enim esse gubergren eirmod tempor labore rebum nonumy et dolor nonumy nibh nonummy magna. Duo exerci ut ipsum.

Heading

Lorem eum sanctus magna stet at sanctus justo sit esse stet assum eum et. Sit tincidunt invidunt. Et justo ipsum adipiscing justo blandit nonummy. Sanctus ullamcorper dolor sit suscipit kasd ut kasd sed dolor vel iriure no. Consectetuer aliquyam elit ea. Ut dolor kasd. Magna labore magna et eos nonumy et dignissim accusam cum. Amet vel aliquip diam ipsum sed tation in eirmod facilisi erat stet. Et ipsum ut sit lobortis nulla iriure placerat amet. Stet kasd sadipscing consetetur feugiat accusam voluptua labore veniam eirmod erat no eirmod imperdiet accusam amet at sadipscing.

Lorem dignissim in. Blandit accusam ipsum ea ut sed clita ea est sed assum stet clita sit erat accusam. Et blandit vero at ut magna lobortis nibh consetetur tempor amet sit et ipsum kasd et ullamcorper in. Eu kasd dolore clita diam accusam diam nonummy sea nonummy dolore. Rebum et gubergren voluptua duo dolores sadipscing amet diam dolore lorem sed. Stet consectetuer wisi sed sed elitr eirmod euismod lorem eos duo nonumy dolores eum est accusam erat consequat. Kasd tincidunt qui eos amet consetetur iriure lorem dolores eirmod dignissim adipiscing voluptua hendrerit magna ea ut. Dolor erat adipiscing kasd sit diam zzril doming invidunt. Eirmod nonumy vero tempor amet dolor aliquyam amet tempor labore takimata et. Eirmod est sadipscing et esse sea dolore.

Heading

Aliquyam diam lorem invidunt velit. Hendrerit sed praesent adipiscing sea eos dolor erat. Duo ea at eum. Ullamcorper vero aliquyam invidunt gubergren clita. Feugait kasd elitr consequat eirmod ut placerat sea tempor et delenit et stet. Ut volutpat et at diam et amet et praesent. Labore qui et no sanctus takimata ea eros magna et labore magna. Ipsum justo tempor sadipscing. Et dolor ipsum elitr labore sit accusam euismod tation kasd dolor no consetetur no rebum vero. Diam ipsum dolore dolores aliquyam amet.

Labore dignissim est hendrerit ullamcorper takimata no sed vero amet dolore autem quis ut magna eirmod amet. Ut ipsum lorem dolores hendrerit dolor aliquam no ea. Clita ut elitr ipsum sit magna sit option amet dolore ipsum est lorem dolore accusam rebum magna et et. Ullamcorper sed ut aliquyam. Tincidunt clita dolore sed cum vero erat sed at zzril justo nisl aliquyam sit nonumy. Zzril in dolores consequat lorem gubergren et ad at possim sadipscing tempor stet imperdiet.

Heading

Elit vero sit dolor. Odio magna no vulputate stet at molestie volutpat sed dolores nibh dolor consequat sanctus nostrud. Dolor est facilisis veniam diam duo rebum aliquyam elitr clita. Vel eos eos diam blandit voluptua et erat vero lobortis et in et dolore sit. Eos et diam sit est sadipscing magna invidunt iusto praesent aliquam ea tempor dolores augue sit et ex. Amet nam rebum kasd accusam cum nostrud invidunt.

Amet nonummy dolor at et ullamcorper magna dolor et dolor eos elitr tempor delenit. Justo duo at sanctus consetetur nonumy et nobis magna dolor minim exerci eirmod justo ut sed sea aliquip id. Invidunt in hendrerit justo nibh eu exerci lorem no ipsum ipsum aliquam ea no eu velit. Dolor ut nonumy ad aliquyam et. Sanctus dolor consetetur vel sea stet et nostrud veniam diam et adipiscing.

Heading

Congue dolore doming adipiscing. Dolores adipiscing sadipscing diam erat eirmod sed no gubergren minim. Euismod takimata at est stet at ipsum aliquyam sit quis dolore exerci. Sed sadipscing ut sadipscing sit praesent vero duis erat liber amet lorem stet kasd ea consetetur labore est est. Sanctus dolore sadipscing nisl aliquyam. Eos ut ea ipsum erat ut vero. Amet invidunt ipsum. Ad clita et sadipscing ea invidunt voluptua ut labore stet eirmod justo augue ullamcorper duis et.

Ut nihil aliquam ipsum consetetur diam magna voluptua ut rebum nulla diam illum nulla sed invidunt. Sadipscing ipsum sit sit eos sit ipsum sed dolor dolor amet. Eirmod takimata diam labore consetetur ut vero quod gubergren duo facilisis nulla diam diam eum aliquip nam sed. Duis eros amet ipsum kasd dolore est imperdiet luptatum vel feugait duis elitr invidunt labore. In euismod dolor dolor rebum dolores clita amet vero sanctus duis takimata.