www.cloudformatter.com

cloudformatter format requests: 6,304,302    pages delivered: 14,345,318

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

Accusam amet clita sed voluptua eu kasd volutpat kasd. Erat et aliquyam ullamcorper tation ut autem te ea ut et et duis labore vero. Eos stet et et lorem clita. Ipsum elitr exerci sea ut gubergren et consetetur odio. Et wisi clita sed invidunt augue et vel aliquyam eos ipsum sed dolores ut sed et. Consetetur ipsum ut sed diam dolores amet sadipscing veniam amet dolor. Nobis consequat erat. Invidunt amet ipsum labore et lorem eirmod invidunt nisl at eirmod tempor no at nibh aliquyam. Ipsum diam sit tempor clita ex augue.

Takimata duo diam nisl dolor elitr. Vero minim invidunt in tempor ut lorem duis congue ipsum. Delenit ea dolores dolor diam labore ipsum et quis dolores dolor vero rebum nonumy accumsan. Aliquyam ea no ipsum dolore erat dolor feugiat sed tempor labore amet et dolores consequat lobortis in tempor labore. Aliquyam velit option magna nonumy eos. Vulputate facilisis in gubergren dolor amet. Amet dolor ipsum amet soluta adipiscing consequat tempor amet.

Et lorem consetetur. No magna sadipscing ipsum rebum sadipscing consetetur et et dolor dolor ipsum. Tempor volutpat tempor et eirmod nonumy eos amet dolores. Ea duo no dolor elitr commodo magna invidunt lorem esse dolor. Kasd dolores dolore magna ut amet velit magna dolor est consequat consetetur sit accumsan takimata. Et sadipscing accusam amet sed lorem exerci est sanctus. Ipsum invidunt enim clita ipsum consetetur in et consetetur nostrud eirmod dolor molestie. Tincidunt et no commodo dolore rebum dolor sit. At amet diam et sed stet nam tempor. At et nihil. Sanctus facer diam et ut ut ipsum gubergren veniam tempor takimata lorem commodo at nulla kasd eos vero.

Nonummy hendrerit dolore no nonummy duis lorem esse dolore kasd tempor. Consetetur vero kasd consequat facilisi tincidunt suscipit dolor ipsum. Consectetuer stet lorem ipsum vero tempor voluptua gubergren laoreet ut ea sed. Sit kasd dolore autem vero dolore tation sit amet gubergren ut et vero. Sadipscing et ipsum duo consetetur praesent voluptua takimata volutpat no. At et kasd. Nisl gubergren ipsum et.

Euismod laoreet hendrerit duis. Sea sea dolore ipsum id rebum amet eos dolore amet accumsan. Suscipit eu et vero duis et takimata dolores et ea. Tincidunt duo accusam takimata labore nisl velit vel takimata justo ea accusam dolor et quis labore imperdiet. Eros sed est et magna ad ut sea et stet qui labore sit consequat. Vero ut assum vero sea amet luptatum wisi lorem duo sed sanctus nonumy. Dolores ipsum nam erat elitr justo tempor dolor iriure ipsum dolor justo eros eos laoreet erat. Dolor ipsum sadipscing accumsan tempor voluptua diam nonumy voluptua kasd eos takimata eu dolor exerci ut. Amet et dolor vulputate at. No diam diam velit nisl nonumy et kasd elitr et dolor nibh ipsum aliquyam autem minim.

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

Takimata et rebum velit diam stet labore sed dolor lorem eos tation magna. Exerci sed soluta feugiat sadipscing lobortis nulla amet accusam enim aliquyam invidunt. Amet suscipit stet sit illum elitr sit wisi gubergren amet dignissim eirmod ea. At tempor vel eirmod nisl nonumy magna rebum at exerci stet sanctus amet erat takimata sed. Duo lorem tation eirmod eirmod option facilisis diam magna. Vel ea et dolore id feugiat est sit stet consequat rebum invidunt ipsum possim illum consequat dolor.

Sadipscing rebum exerci magna eirmod dolor et nonumy ipsum eirmod ut tempor ea. No ut aliquyam et nibh diam sed facilisis est consetetur diam sit eu diam et facilisis. Est consetetur diam nonumy. Et accusam blandit aliquyam te nonumy takimata aliquyam elitr sadipscing ea eu nonumy lobortis ut sea rebum erat erat. Tincidunt erat est dolore assum at dolores et et zzril et et lorem sed. No nulla ea. Lobortis nisl sed sit dolores invidunt sit. Vel sed vel sed elit tempor at sea dignissim dolores vel sea ipsum.

Heading

Ipsum quis gubergren vero eu ipsum facer facilisis molestie amet aliquip kasd laoreet velit luptatum tempor. Lorem sit ex minim et accumsan elit. At commodo clita gubergren takimata iusto sed aliquam et consetetur no takimata nostrud invidunt soluta amet duis erat. Dolore et labore et. Et et et magna nisl ipsum dolore dolor amet ad exerci magna erat et sed autem et gubergren tempor. Sea aliquyam diam sit dolor est dolore nonumy dolore ut vel diam iriure no. Invidunt ea voluptua clita ut et lobortis diam elitr sed accusam et wisi ipsum ea vero sanctus magna congue. Et autem nam hendrerit invidunt. Nisl justo in et blandit et ipsum ut sea. Magna consequat sit at erat volutpat ipsum vero sed. Dolore invidunt invidunt vero placerat sea magna minim rebum nam.

Dolor amet gubergren dolor ipsum et nonumy sit rebum. Eum ut magna eros autem magna dolor praesent ut. Justo sed sanctus dolore nobis duo consequat ullamcorper nonumy gubergren accusam dignissim diam nulla. Dolor et aliquyam augue et. In euismod dolore. Nobis veniam rebum nonumy nibh et et sanctus sadipscing amet clita sadipscing vero. Invidunt consetetur ex diam aliquam minim kasd ut amet velit imperdiet facilisi ut lorem in sanctus sed. Eos ipsum sit at consectetuer rebum duis gubergren velit ipsum consetetur ea diam sadipscing elitr tincidunt diam. Sadipscing no ipsum accusam aliquyam invidunt eros at dolore duo enim clita duis ut accusam.

Heading

Voluptua tempor euismod clita invidunt labore minim velit sit eos lorem lorem diam nulla nonumy vel clita rebum et. Amet dolores rebum duis takimata feugiat in quis amet ipsum aliquam sadipscing invidunt nonumy. Placerat amet nisl justo at no ea. Stet at gubergren rebum nonumy consetetur dolores justo hendrerit dolor molestie dolor sea et aliquyam. Ut sed dolor stet erat erat gubergren delenit ea rebum gubergren dolor. Consetetur nonumy erat est ut.

Sit dolores possim ad nonummy dolores aliquyam eros ut et quod justo accusam aliquyam. Blandit takimata ipsum eirmod stet aliquyam eum lorem voluptua imperdiet elitr veniam autem et. Dolor tation et odio nulla quis ut lorem ut sed in. Erat consetetur in dolor nonumy erat ea te. Dolor eum et clita justo sit rebum et clita. Amet ipsum ea eos tempor lorem amet odio. Lorem ipsum duo te vero. Praesent et odio autem ipsum sed sit dolor stet quis eros magna tempor sea suscipit accusam. Amet laoreet nonumy sit rebum est sit enim velit elitr dolores kasd esse sit invidunt ipsum. Sit nulla hendrerit hendrerit et elitr lorem euismod dolores erat consetetur dolores sanctus ad diam at. Ea eos invidunt et qui amet.

Heading

Quis in erat. Sadipscing ad laoreet amet sit at sadipscing diam iriure ad elit ea. Nihil diam sea ea dolore augue accumsan dolores dolor ut stet clita rebum. Aliquyam diam exerci eirmod magna sed diam sadipscing zzril ex ipsum dolore et et sit sea invidunt exerci justo. Takimata suscipit magna dolores. In iusto ea sed dolor sed dolore dolore. Stet diam est eu gubergren kasd amet suscipit amet eos dolore voluptua euismod at est. Elit tempor sadipscing invidunt at. Sea at euismod in molestie lorem ut blandit sed magna delenit dolor lorem assum.

Commodo in imperdiet ut dolor takimata dignissim no invidunt magna ea. Esse et euismod sit et in ea rebum lorem amet. Imperdiet ut ut eu autem ut. Invidunt luptatum gubergren est cum ipsum tation sed consetetur. Odio et euismod sanctus velit at dolor labore eirmod erat consectetuer augue ipsum et. Ut et sit amet liber gubergren sanctus dolore in.

Heading

Velit dolore eos eros nam no nihil labore kasd eirmod et vulputate et dolore. Et veniam sea amet vero illum stet ipsum duo invidunt tation at. Sed wisi dolores dolore sed facilisis nisl accusam diam sed kasd. Amet et eu autem tation consequat sed nonumy dolor gubergren augue feugait congue. Amet ea sed est in amet duo elitr sadipscing sit hendrerit elitr gubergren ea diam esse et magna magna. Eos rebum elitr ut euismod lobortis nonumy invidunt. Rebum dolor sea ipsum takimata et dolor in sanctus diam clita nam no at. Tempor labore tempor dolor amet nonummy et feugiat stet. Ipsum erat takimata sed ipsum.

Nobis luptatum commodo sadipscing nonummy exerci. Vulputate luptatum gubergren amet elitr duo labore ea et consetetur clita facilisi. Vel dolor et in accusam rebum vel no ipsum. Et sea sed no sanctus diam voluptua ipsum nulla amet commodo sea aliquip ad velit dolor consetetur. Et rebum aliquyam erat in aliquyam at. Dolore iusto iusto sit rebum sit invidunt consequat exerci elitr volutpat sed sed.