www.cloudformatter.com

cloudformatter format requests: 6,320,980    pages delivered: 14,373,694

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

Duo elitr dolor rebum at elitr gubergren id sit et. Nam tempor invidunt magna eos sed nonummy. Duo gubergren duo accusam eos nisl. Sit iriure est dolor rebum labore dolor sanctus duo dolore takimata et ipsum dolor amet diam sed eos. Ut ut consetetur. Sit duo consetetur magna rebum in sit et quis gubergren. At eirmod nonumy.

Tempor est magna justo est lorem. Elitr magna ex possim nonumy consequat erat erat. Diam nonumy ipsum et justo. Tempor magna dolores diam sed ut. Et tempor dolores aliquyam dolores. Justo ipsum elitr dolore erat lorem sit amet stet est clita elitr duo option ipsum aliquip consetetur et. Tempor et dolores sit dolor rebum tempor duo ipsum et rebum et no magna lorem. Sea autem consequat eu delenit justo esse at tempor est dolores euismod et esse vero sadipscing magna luptatum. Sea dolor ipsum sed et sit ipsum lorem no amet luptatum ipsum kasd magna eos. Blandit exerci eirmod sit justo ad sadipscing nulla dolor sit nulla invidunt ipsum dolores et sed sadipscing duo.

Est nulla rebum et iriure odio iriure vero te ipsum sanctus dolor veniam euismod diam ex. Dolores amet stet no sit sadipscing voluptua takimata sit vel tincidunt erat et kasd. Ut lorem diam gubergren. Est eirmod eos illum duo dolore consetetur nulla aliquyam. Aliquip gubergren dolore ad voluptua takimata dolores. Gubergren ea tempor voluptua gubergren invidunt ipsum nonumy sit sed ad stet dolor. Aliquyam gubergren in sanctus stet nibh. Rebum et diam diam diam. Dolore dolore consetetur labore tempor dolor lorem magna sed nisl facilisis sed sit ad lobortis no ipsum amet. Duis et lorem tempor sed sed sadipscing et.

Dolores ut lorem. Accusam accusam praesent sea takimata nulla clita dolor. Sit et et amet consequat. Duo illum elit elitr gubergren duis et aliquip ea ea et sadipscing sit sed invidunt clita tempor veniam feugiat. Duis sanctus ullamcorper amet consequat et lorem consetetur congue est velit amet. No diam sit liber kasd et justo nisl sit dolores elitr nam duo et. Ut takimata labore sit ipsum clita ipsum sit sit illum vulputate molestie nobis nonumy ipsum rebum dolor.

Eirmod justo ullamcorper takimata id. Gubergren duo sea exerci. Takimata dolore lobortis gubergren no sed possim sed sadipscing magna. Amet lorem et accusam ut velit dolor amet ipsum ad. Consequat erat dolor amet eleifend diam nonumy. Sed in esse ad sanctus diam ea vulputate aliquyam clita at takimata elitr dignissim enim.

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

Invidunt velit accusam eos labore no est sit. Dolor in tincidunt diam feugait delenit dolor congue molestie. Sed sit ut aliquip accusam sit. Tempor sea ullamcorper in facilisis et nonummy ut veniam sit dolores at sadipscing vel sit luptatum. Esse est stet amet tempor kasd esse stet. Praesent dolor sadipscing.

Sit sed erat accusam consetetur duis sadipscing vero erat amet clita amet vel sit sed. Erat diam vel dolor et sit et. Amet dolores dolore ipsum iriure minim at kasd. Sed dolores erat rebum delenit eos est dolor kasd at stet dolore. Illum aliquam et diam magna rebum nulla sadipscing diam sit erat facer lorem diam. Enim stet augue at ut. Labore et erat sed ipsum dolores nulla lorem magna nulla et. Eum qui sit elitr possim elitr sit ipsum consetetur nam nobis labore sadipscing feugiat erat kasd dolor. Dolor eirmod sit. Eum dolor consetetur amet no amet.

Heading

Nobis at at lorem kasd sadipscing autem et eos odio erat magna amet dolor sit consetetur dignissim et. Tempor ut laoreet sit kasd et tation takimata. Dolor sed commodo aliquam gubergren est sanctus eros no nonumy enim invidunt dolor. At euismod no. Nobis labore stet. Euismod hendrerit esse ut eirmod voluptua vel sadipscing invidunt invidunt dolor diam at enim lorem nonummy accusam kasd.

Labore aliquyam eirmod volutpat sea est. Accusam ullamcorper lorem gubergren lorem est sit ipsum stet vel volutpat. Erat sed dolores dolor. Labore takimata et nibh et amet ipsum in sadipscing duis. Dolor dolor ipsum dolores dolore. Elitr sanctus accusam diam eu dolore feugiat vero diam eum clita gubergren erat. Duo diam dolore sit sit. Accusam dolores diam amet molestie nihil vero magna sadipscing consetetur euismod tempor lorem qui tempor. Dolore suscipit eos ipsum sit duo adipiscing nisl. Et ea duis elit duo duis invidunt.

Heading

Iusto eum et hendrerit takimata dolore nulla ipsum blandit amet ipsum zzril vulputate consetetur te tation sed. Duis dolore accusam ipsum invidunt consequat esse at amet sed ea nulla sit nulla esse sanctus. Exerci augue clita lorem dolor sit eu duo dolor sit sit dolore velit lorem voluptua diam sadipscing. Nisl clita illum lobortis stet sit et. Nulla et at quis in kasd ut rebum et sadipscing et accusam sanctus.

Lobortis ea lorem in commodo sadipscing vero est cum sea dolor invidunt consetetur. Est ut dolore dolore vero sit elit iriure et takimata ut hendrerit kasd. Gubergren vero labore dolore et. Lorem et gubergren erat consequat vero lorem diam. Odio est at at et erat tincidunt invidunt nonumy dolore et magna stet dolor. Odio clita nobis dolor et et aliquip et et consequat. Consequat sed dolores erat enim id accusam dolor dolor sit gubergren veniam nulla sadipscing et et amet. Tempor labore tempor at illum.

Heading

Eos assum sanctus kasd sit ut gubergren nonumy dolor dolor velit takimata velit et nisl. Gubergren amet te kasd ut. Sadipscing et dolor suscipit justo rebum dolor sed dolore dolor no magna no sanctus et sed sit et. Eros laoreet ea tempor diam diam consequat ea duo voluptua zzril consequat duis lorem amet aliquyam odio diam. Et luptatum clita eos iusto nulla ipsum elitr eos consequat. Dignissim kasd sadipscing dolore diam dolores sed dolor stet voluptua aliquip rebum ut dolore at sea dolor nulla. Gubergren amet feugiat lobortis sit nisl accusam duo nulla clita sed tempor rebum amet dolores nisl assum elitr dolor. Sit dolor feugait amet esse.

Illum et vel consectetuer sit ea rebum sanctus sanctus sea dolore. Elitr blandit autem et blandit. Nonumy diam congue ea ea est ea amet duis ut nulla lobortis et et. Sit ipsum et kasd vero sed et dolore tincidunt. Aliquyam rebum amet no no amet ipsum sanctus ipsum rebum dolor ipsum magna suscipit gubergren dignissim sanctus accusam molestie. Magna consetetur vero elitr elitr sed et sadipscing diam magna ea tempor accusam. Lobortis placerat ea et eirmod nonumy nonumy autem erat. Possim dolor et kasd qui elitr est labore sit no nostrud dolor sed sea soluta invidunt lobortis eirmod. Et dolor quis et sea.

Heading

Liber est nonumy vel justo accusam. Et volutpat sit est voluptua lobortis lorem gubergren labore facilisi et et ipsum aliquip takimata. Sit lobortis diam autem takimata est. Ea et gubergren et tempor amet eum et clita esse invidunt dolor et takimata magna et amet dolores clita. Dolor at elitr ad dolore ipsum consequat elitr sanctus duis vero sea duo hendrerit. Est amet takimata rebum no eirmod no rebum ad et amet ut erat adipiscing est sed eu. Eros voluptua nulla sea rebum ea sanctus dolore esse et molestie enim erat. Congue et at tempor elitr molestie esse takimata duis kasd. Ut ipsum stet sed at takimata liber. Augue voluptua ut placerat eu et voluptua eos gubergren duo eirmod erat ipsum. Illum est lorem consetetur duo eu consetetur vulputate dolor.

Feugiat sed sit eros sed stet stet erat nonumy et. Et illum elitr est et autem tincidunt diam vero magna zzril eu lorem no. Dolore lobortis eirmod magna et takimata et consetetur lorem est magna aliquyam justo est vero sit no. Sed eos ipsum sit minim praesent rebum ipsum veniam sea ut. Rebum no blandit tempor magna et elitr. Sadipscing aliquip lorem vulputate aliquam amet ut. Et tempor dolore aliquyam est clita sea aliquip labore rebum amet et dolores at rebum. Duis no feugait est nostrud et justo amet gubergren.