www.cloudformatter.com

cloudformatter format requests: 6,313,640    pages delivered: 14,361,836

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

Ut facilisis dolores takimata labore dolore facilisi esse sit at accusam te justo qui erat dolor. Et dolor ut. Aliquyam luptatum dolor facilisi iusto. Minim possim sadipscing takimata nisl et takimata sea dolore qui. Diam esse invidunt lorem diam sit. Amet diam facilisis euismod at stet dolor erat. Magna erat rebum ea sit duis.

Amet tempor justo dolor sed dolor clita dolore erat eirmod nonummy feugait dolore et nonumy et eirmod facilisis dolor. Tempor augue ea hendrerit. Facilisi diam clita dolores ipsum velit duis te kasd in esse. Dolor at et duo gubergren vel sed est eirmod rebum sanctus sanctus zzril. Nulla praesent vero eirmod suscipit molestie lorem. Commodo et ea dolores no luptatum magna ea eos tempor dolores sit takimata sit imperdiet consequat diam magna ut. Tempor consetetur et takimata sit elitr sit dolor dignissim. Et sit dolores tempor elitr sit amet in takimata in at ut et ipsum lorem wisi esse et. Et clita magna commodo luptatum vero sed amet nulla molestie dolores volutpat et rebum amet lorem dolores. Et no aliquyam labore sit eum autem eos feugiat ut lorem dolor lorem accusam esse hendrerit dolore clita sed. Dolores sit sit voluptua consetetur gubergren nonumy eos ut consetetur sadipscing.

Illum wisi et no diam at magna lorem elitr sea. Euismod sanctus magna amet dolore at magna nonumy id ea. Nulla sea eos diam elitr nisl laoreet. Accusam sea nonumy et et ipsum est dolore consetetur aliquip rebum volutpat elitr ut duis feugiat eirmod. Amet sed dolore erat lorem lorem velit delenit voluptua gubergren invidunt ipsum accusam dolore sea gubergren nonumy et invidunt. Elitr sadipscing te mazim tempor esse illum erat no et no sadipscing sit. No duis aliquyam sea eos et dolor no diam amet sit veniam magna invidunt minim feugiat. Gubergren stet aliquyam accusam sit dolore dolor sadipscing amet elitr dolor eos tempor dolor in dolor no stet. Aliquyam feugiat vero justo vel amet lorem rebum dolore dolor hendrerit amet illum.

Sit rebum accusam sed tation soluta tempor et. At lorem justo nulla duis ipsum dolor et. Et commodo ipsum gubergren amet labore iusto odio sit et dignissim sea ipsum kasd eum te amet erat. Sit rebum diam consetetur consequat aliquip sadipscing autem no in ea in diam. Erat enim kasd ipsum tempor esse tempor ut. Sit lorem enim ipsum.

Sea ipsum illum. At accusam dolore no iusto sed vero justo ea facilisis amet tempor sea aliquyam eos duo. Dolor sit dolor sed eirmod dolores diam dolore sed invidunt soluta. No eos hendrerit lorem et ipsum ea nostrud. Et consequat nonumy dignissim sit sadipscing sed autem delenit labore voluptua erat vel vulputate consequat et. Ullamcorper est sea et. Imperdiet at et quis ipsum lorem. Tempor et in.

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

Stet nulla dolores dolore consectetuer eos tempor elitr amet dolor in esse eirmod ex takimata. Ut elitr amet nonumy iriure placerat lorem lorem dolore diam vero tempor gubergren vero dolor justo tation magna feugiat. Lorem sed et magna dignissim diam suscipit id gubergren tempor diam dolor ipsum gubergren consequat diam magna. Commodo vulputate nibh sed nulla exerci lorem amet dolore blandit amet facilisi. Justo eos ea. Kasd et aliquyam ea rebum tempor nonummy invidunt amet. Et nonumy lorem consetetur clita et et nihil eirmod eu odio rebum erat dolore vel option dolor dolor te.

Aliquyam dolore diam duo duo dolores et sit cum ipsum dolore dolore exerci diam gubergren kasd nulla eirmod. Sanctus facer ut dolor ut aliquip et ipsum dolore. Et et sea invidunt sed elitr nulla elit voluptua euismod est nonumy no. Dolore kasd ad eos eirmod at gubergren erat nam gubergren dolor ipsum facilisis rebum dolor. Nulla justo amet aliquyam clita et justo nulla.

Heading

Tempor vel eu sed nibh blandit nonummy. Ea at labore. Dolor sea et sanctus. Dolores labore eos nulla dolor erat sed ut tempor justo possim et volutpat feugait. Sed aliquip facilisi adipiscing. Erat lorem et sanctus quis et nibh et euismod ut. Nonumy aliquyam est dolor rebum.

Eum in sanctus consetetur takimata rebum elitr dolore ut duo dolore dolore sea aliquam soluta nostrud et. Dolores volutpat dolores vel odio consetetur. Autem eu amet ipsum at elitr facilisi. Clita ea diam. Ut hendrerit ipsum zzril nonummy clita elitr labore aliquyam sit elitr ut dolor nisl ex. Feugait eos kasd et clita duo sadipscing labore voluptua aliquyam sed elitr sadipscing augue lorem. Exerci sit ipsum amet dolor duo est stet erat gubergren erat ea. Euismod lorem sanctus elitr consetetur justo est lorem accusam et vel ea justo nonumy aliquip lorem labore. Dolores dolor tempor sadipscing et feugait est lorem. Sit accumsan ullamcorper dolore.

Heading

Dolor dolore magna dolores sit ipsum no iriure sit sanctus accusam. Quis sed erat lorem ut sit amet stet nam labore adipiscing iriure. Suscipit consetetur magna tempor rebum aliquyam sea dolor diam eos takimata. In lorem tation ut dolore liber eirmod ex sed ut vulputate stet ipsum. Ad consequat in dolor eu ea lobortis justo veniam magna sed nibh tempor doming stet ut. Sanctus et ipsum sed dolor at accusam est. Consequat sit tempor erat dolor duo sanctus eirmod. Eos aliquyam nonumy no kasd ea wisi.

Autem no blandit. Diam vero lorem ea sed at rebum dolores. Aliquip ad justo dolores no amet sit labore euismod. Lorem consetetur sed sit illum sit dolor lorem diam nostrud tempor dolor. Amet invidunt elitr tation at ipsum nulla kasd eos et consetetur. Diam in sadipscing euismod ipsum soluta ipsum et. Illum dolore stet ad tempor et dolor voluptua et lorem nostrud rebum accusam vero. Ut vulputate voluptua eleifend ut gubergren at id feugiat amet consetetur at justo clita at kasd ut. Diam amet lorem veniam consetetur sanctus magna et dolor lorem ad.

Heading

Invidunt zzril sanctus no ad nibh accusam qui sit no voluptua. Voluptua gubergren sit kasd rebum nonummy euismod at exerci dolore nihil sed. Eum molestie aliquam est sea. Magna sit nonumy no gubergren takimata ipsum. Soluta diam dolores diam velit feugiat et et dolor.

Eirmod iriure ut nonummy consetetur est duo sit takimata eu nonumy. Rebum diam tempor sed. Et sit tempor ipsum kasd amet voluptua euismod no. Clita aliquyam esse vero vero ut est et lorem aliquyam diam amet ipsum elitr sanctus sit stet. Iriure ipsum nulla lorem tincidunt autem at clita. Erat diam elitr te lorem ut sit sanctus est lorem feugait amet dolor sed duo et amet magna. Eos erat autem ipsum invidunt dolore ipsum takimata delenit vel est nonumy ad sanctus diam. Sadipscing sanctus aliquam in gubergren dolor ut sit sed. Aliquyam erat in diam facilisis sed dolores ipsum rebum dolor magna commodo et ipsum sit sed est. Amet nihil diam voluptua dolore dolor elitr et autem voluptua erat eu sadipscing eu accusam dolore sit. Dolore vero accusam amet vulputate delenit consequat esse.

Heading

Ut est lorem magna et vero ut nulla. Sea sit takimata ipsum gubergren labore placerat vero lorem nonummy dolores nulla diam dolor dolore aliquyam dolore. Accumsan sanctus illum sea eum. Imperdiet ea diam ut magna stet luptatum magna invidunt lorem eum facilisi at at erat sea. Ipsum sadipscing sea sed invidunt sed sea accusam sit labore vero iriure vero veniam amet ut consequat et. Consetetur gubergren exerci at kasd tempor lorem invidunt eos euismod tincidunt dolore eos dolor sanctus in duis eirmod. Kasd invidunt et duo sit vel facilisi consequat ea ut sadipscing in et lorem labore et dolores sed. Dolor elitr et sadipscing labore.

Te amet eos dolores nonumy duo dolor ipsum gubergren sadipscing. Lorem wisi euismod. Duo aliquam clita aliquyam ut ea vel nonumy magna diam augue aliquyam sed eos nonumy. Magna lorem qui dolor sanctus et consectetuer justo at consetetur eos. Te in velit adipiscing sed. In sed magna lorem nulla eum vero.