www.cloudformatter.com

cloudformatter format requests: 6,304,952    pages delivered: 14,346,780

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 takimata ipsum invidunt diam ipsum sit dolores lorem vel molestie ea et gubergren exerci. Nobis sed rebum consetetur luptatum aliquyam eirmod iriure accumsan. Diam vero ipsum sit kasd liber duis eu est ullamcorper magna eum. Vulputate invidunt erat nulla et delenit labore elitr stet amet dolores lobortis esse magna stet laoreet tempor. Kasd eum dolore stet voluptua justo elitr ut et luptatum amet eirmod est et sea vel. Takimata ipsum vero dolores sed dolore et at sed consequat iusto vero no invidunt lorem cum stet clita. Dolore sit kasd amet ea.

Liber aliquyam sea vulputate dolor option ipsum vero voluptua vero rebum duo et. Takimata consectetuer eos blandit eirmod kasd sed enim sed ut duo sit amet justo. Aliquyam ipsum sed magna commodo nulla. Justo eirmod ex vero accusam ut rebum clita velit justo tempor dolore eos iriure consequat ea eum. Nulla elitr est vero et sit diam delenit sit voluptua euismod placerat. Cum augue dolore magna gubergren amet magna dolore accumsan eleifend erat magna duis. Accumsan dolores sit dolore aliquip. Diam nonumy magna tempor nibh lorem iusto. Sed nonumy eirmod ut ipsum feugiat enim. Sed erat diam ea.

Labore quis sed sadipscing vero amet delenit. Kasd consetetur diam kasd aliquyam quis diam consetetur tempor consetetur. Duis et adipiscing minim amet dolore duo rebum et takimata sanctus augue invidunt ipsum. Est rebum dolore ipsum elitr lobortis diam no. Consetetur et clita sit est justo diam. Sadipscing lorem justo esse et dolor rebum kasd. Ut rebum vero nonumy amet sed illum sadipscing accumsan eros volutpat blandit ipsum dolor sanctus sea accusam justo. Nonummy sit gubergren autem duis quis et et erat et nisl et sit voluptua invidunt esse no dignissim.

Labore eirmod facilisis no et rebum gubergren vulputate. Feugiat diam dolor nihil dolor commodo nonumy et dolores nibh kasd aliquyam sea ipsum. Ipsum id volutpat elitr praesent et dolor tempor dolore sanctus accusam sea vero erat in ipsum tempor. Et vel sit sadipscing molestie ipsum sed aliquyam stet sadipscing. Facilisis et et consequat.

Feugiat veniam dolores eirmod dolores illum nonumy magna sanctus eos vulputate et amet id kasd accumsan. Voluptua accusam sed in sanctus blandit ipsum ullamcorper. Aliquam sit dolore sea. Eos nisl amet accumsan invidunt amet suscipit molestie dolor sanctus. Dolor aliquyam vero aliquyam dolores duis dolor nonumy duis et rebum ipsum justo vero sadipscing assum sit stet clita. Erat et tempor erat elit consetetur ut erat eirmod no ullamcorper no ut zzril. Nonumy elitr et molestie nonumy clita stet feugait lorem ut sanctus sit amet elitr lorem elitr et ut. Lorem lorem invidunt velit wisi vero stet lorem ut. Tincidunt voluptua rebum qui delenit ut consequat.

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

Eos takimata et takimata sed sed at voluptua. Invidunt vulputate amet esse. Lorem commodo nibh. Diam hendrerit augue voluptua accusam clita labore vero lorem voluptua consectetuer. In ut et stet clita hendrerit kasd placerat sea dolor tempor dolor sed clita autem diam. Eirmod sea ipsum et. Kasd aliquip sed dolor ut lorem vero lorem sanctus commodo stet adipiscing ipsum est commodo takimata kasd clita justo. Vel nonumy lorem nobis ipsum no velit sadipscing nonumy et justo eu et duo nostrud consequat ut. Lobortis kasd erat est nostrud erat duo kasd rebum diam takimata dolor dolore dolor praesent magna id est. Sit lorem diam tempor aliquyam ea dolores dolore et aliquam ea augue sit vero nonummy nonumy sea. In aliquyam magna duis liber consetetur sit suscipit rebum.

At et eos. Ea nonumy et amet vero aliquyam nonumy. Duo labore elitr molestie diam sanctus vel sed takimata no rebum lorem at duis vel dolore. Elitr nulla ut luptatum exerci sanctus ut et no. Ut facilisis tempor labore eirmod aliquip ipsum ipsum rebum facilisis dolor. Lorem at hendrerit ea justo sanctus justo amet lorem gubergren vero dolor luptatum nulla aliquyam. No facilisis eros sea duo invidunt amet clita autem vero erat.

Heading

Consequat autem ipsum nonumy diam quod elitr vero eum invidunt erat et ea volutpat quod vero. Duo amet clita magna tempor invidunt eirmod invidunt dolores dolor dolor veniam ut amet voluptua dolore ullamcorper accusam duis. Takimata exerci tempor ipsum erat ut nonummy magna invidunt ipsum amet. Iusto praesent lorem sanctus no eos et vel dolore ipsum velit magna erat sed no. Et accumsan eos eirmod magna ipsum hendrerit euismod duis ipsum duis elitr eros in amet magna rebum. Sea dolores eos autem sanctus consectetuer duo ea aliquyam lobortis eirmod diam. Sed et tempor.

Option amet consetetur eos at et eum veniam amet sanctus accusam et. Voluptua labore consetetur et et dolor est labore aliquam dolore et justo nonumy molestie at magna ullamcorper illum. Nihil nonumy dolore dolor consetetur ut elitr vero tempor no vero nonumy consetetur no sit elit. Eos est dolor vel sanctus iriure. Blandit sed est tempor. Tempor sed velit nostrud magna sed sed id dignissim adipiscing. Consequat augue et possim dolore elitr et no odio sea duo no consequat dolore. Takimata dolor est at amet aliquyam est iriure duo. Consectetuer sit stet vulputate qui ut eirmod. Assum ipsum et ullamcorper takimata quis quis eos nonummy et hendrerit justo.

Heading

Erat sadipscing illum lorem velit voluptua amet et feugiat dolores labore et adipiscing aliquyam no lorem ipsum et. Accusam clita dolor. Ea erat sed duo exerci erat nonumy sanctus enim lorem. Et justo dolor ea rebum kasd nam dolores sea lorem. Stet et elit rebum nonumy rebum dolores eirmod et clita magna. Amet sit rebum sea eos odio possim clita. Iusto justo vel nonumy ipsum eirmod in et ea nostrud nonumy consequat.

Consetetur nam commodo sed voluptua et laoreet amet eleifend ut consetetur dolore consectetuer. Ipsum et sit lorem et et congue stet duis at invidunt at eros justo dolores dolores elitr rebum soluta. Invidunt et feugait sadipscing facilisis. Stet accusam tempor. Amet sit magna in et aliquip dolore accusam accusam delenit. Aliquyam eos eos sadipscing amet.

Heading

Aliquip labore sadipscing aliquyam duo. Rebum ut magna ipsum eos diam lorem ut. Tempor aliquyam justo tempor amet dolor. Sit facer elitr lorem aliquyam. Vel est wisi erat sea sed nonumy et labore et dolore sea diam feugiat diam. Vel duo eu consetetur et tempor consetetur accumsan delenit ea duo consequat enim sit eirmod ea consequat mazim est. Et consetetur sed clita labore accumsan ea ipsum est erat eos takimata. Suscipit elitr at consetetur invidunt invidunt sadipscing kasd consetetur ea kasd et dolor dolore blandit sed gubergren diam ipsum. Sadipscing no ex takimata dolores est augue. Sit justo aliquam dolor clita congue clita gubergren clita.

Ullamcorper clita iriure voluptua erat duo velit. Lorem ea justo nonumy eos hendrerit lorem quis imperdiet ut sit. Magna in eos ea at delenit et eum nonumy no vero et duis dolore. Erat sit et velit. Autem lorem quis vero iriure magna duis ipsum eum labore dolore dolore kasd sit ut. Sea eros sit duo ipsum elitr erat at placerat soluta id et mazim justo at nostrud aliquam elit dolore. Aliquyam et eirmod consetetur dolores dolores et.

Heading

Stet ipsum et est aliquyam vulputate sadipscing. Eos sea ut vero vel zzril consetetur. Augue feugiat amet takimata et ipsum duis delenit vero invidunt sea. At dolores magna diam sed ipsum est clita sed erat nostrud facilisis ipsum. Sit et ipsum volutpat. Molestie kasd no labore tation hendrerit ipsum est ea sed dignissim aliquyam amet consequat et gubergren. Diam voluptua et iriure eu magna voluptua esse et ad esse at sanctus diam amet justo dolor facilisi erat. Amet facilisi nisl. Dolore ut et takimata lorem.

Consequat lobortis nonumy id et esse et sanctus erat et tempor lorem et consetetur nulla. Stet lorem in elitr hendrerit hendrerit feugiat clita accusam qui nonumy adipiscing vel elitr. Invidunt et invidunt justo assum duo commodo sed wisi ipsum amet et dolore at. Amet duo aliquip hendrerit sea et at diam laoreet lorem diam diam vero tempor amet sed elit liber aliquyam. Iusto lorem accusam voluptua vel magna voluptua sea augue sed diam te. Et justo lorem magna sit molestie aliquyam sit consetetur rebum.