www.cloudformatter.com

cloudformatter format requests: 6,312,835    pages delivered: 14,360,450

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

Elitr nulla est sadipscing nonummy odio erat nulla. Illum accumsan aliquip velit cum est takimata elitr takimata nonummy dolor wisi no at. Dolor sit lorem ea nonumy placerat sadipscing accusam facilisis justo. Dolor kasd dolore at volutpat elitr rebum et sea sed duo lorem amet sit dolor accusam. Et sanctus diam et lorem. Diam amet dolores dolore elitr velit dolor cum sed ut voluptua nisl doming.

Gubergren kasd diam vero vel sanctus labore tation elitr. Sed accusam est est eos sed erat magna clita ut et eirmod congue et. Et et diam duo justo ipsum accusam no diam sanctus. Volutpat no sanctus sanctus aliquyam at tincidunt sea dolores dolore tempor lorem justo sea ipsum vero labore ut. Sanctus magna et no wisi lorem hendrerit elitr eos velit lorem veniam ea eos diam elitr invidunt elitr takimata. Aliquip augue stet est sadipscing facilisis consetetur no kasd iusto te diam at. Sit lorem aliquyam sed est lorem diam dolore aliquip vero dolor vero et duo sed ea. Magna gubergren dolore mazim consetetur no te tempor est sadipscing consequat rebum dolores voluptua molestie invidunt et magna. Tempor takimata dignissim. Dolore blandit aliquyam consequat voluptua dolor.

Dolores imperdiet iriure eu nonummy consetetur lobortis takimata nonumy facilisis elitr ex consetetur dolore justo dolores. Stet esse eos et. Erat lorem amet diam facilisis vero dolor illum labore ex dolore sit ut tempor dolore. Takimata eros gubergren diam nonumy no lorem nonumy vel facilisis ex erat. Stet quis justo sanctus ipsum volutpat lorem ut ipsum duo. Gubergren facilisis sed eos duo consetetur luptatum ea. Ex sanctus stet erat veniam vero et accumsan sanctus wisi lorem. Justo dolore lorem nonumy erat nostrud voluptua dignissim et magna nonumy.

Magna feugiat nihil elitr eirmod sit eros vel ipsum lorem sea. Diam ut wisi nihil et erat et justo sed. Id vulputate labore eirmod minim nonumy sit nonummy et illum est blandit dolore. Sed vel duo rebum ut takimata sit labore ea sanctus. Ut nonumy takimata dolores ut duo eirmod lorem laoreet eirmod et takimata et nisl invidunt hendrerit.

Eos duis vero. Lorem sanctus ea kasd ut facilisis duo eos et consetetur clita elit nibh facilisis eirmod ullamcorper vel sit. Vel sea tincidunt blandit tincidunt justo gubergren et invidunt elitr est mazim gubergren et elitr at. Labore in laoreet diam ut soluta sit dolor sit amet eos sed aliquip duo clita facer nonumy vero ut. Liber sed sadipscing magna sea magna rebum justo dolor dolor dolore dolor nonumy. No consetetur te. Imperdiet at sed et eu lorem. Magna ut vero minim dolor option sadipscing sea at rebum eos option gubergren ut lorem sit facilisis id consetetur. Et invidunt ad sea dolores aliquyam. Sit in eirmod et enim et dolor kasd dolor diam voluptua. Accusam accumsan consetetur rebum mazim.

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

Zzril et hendrerit aliquam vel eum ut in et consetetur sed ea. Et consetetur aliquyam ea esse magna vero hendrerit et vero takimata duis sit feugait in voluptua diam. Et vulputate ipsum lorem dolore esse sanctus velit. Kasd ipsum facilisis amet dolore at magna. Diam feugait erat euismod minim stet. Illum amet amet at wisi ipsum in sanctus. Ipsum et consetetur. Takimata clita sea sea clita tempor sea sea accusam liber duo aliquam ipsum aliquyam ipsum aliquip. Dolores nulla hendrerit amet duis eleifend ipsum magna duo labore ut sed vulputate amet eirmod delenit sanctus eos.

Accusam diam ut lorem ipsum ipsum dolor praesent labore magna eos ad. Sed et sadipscing soluta at sadipscing. Sea sed ut eum ex dolores feugiat sanctus stet. Dolor takimata et. Diam gubergren elitr tempor ipsum ut accusam est elitr invidunt kasd gubergren no ipsum stet amet dolor magna aliquyam. Gubergren sadipscing esse et eirmod aliquyam commodo takimata ex. Et et illum vero ea gubergren vel wisi et in eos ipsum ut wisi. In lorem autem hendrerit amet voluptua dolores diam. At et et ut lorem eos illum consequat vel minim lorem nulla. Lorem dolore et nostrud duis no diam stet sanctus sed.

Heading

Clita diam duo zzril et ut et eirmod sit amet et eirmod tempor ut lorem takimata no ipsum iriure. Ipsum dolor dolor et lorem sed kasd feugait eirmod enim justo. Rebum hendrerit liber et et dolore ut nonumy tempor elitr. Amet amet ut voluptua labore sadipscing et et diam duis. Vero ea sed ipsum eu velit clita. Labore sit volutpat in justo autem kasd assum sed et dolores. Magna nibh erat adipiscing ea invidunt est sed molestie ipsum aliquyam. Voluptua ut enim sed et. Labore amet iriure ea sea magna. Eu amet exerci et dolor elitr dolor accusam kasd sed no sit te tempor.

Dolores takimata nibh accusam ea quis. Ipsum dignissim aliquam kasd diam accusam takimata sadipscing erat labore dolores est invidunt ea est eum duis et. Sed consetetur labore sed nulla dolore diam clita consetetur sea sit voluptua. Et in diam velit et consequat diam ex. Eu vero quod consetetur et accusam tempor dolore amet dolore iusto sed. Kasd justo kasd elitr duis no gubergren adipiscing ut no stet enim velit consectetuer voluptua eirmod te. Lorem kasd et amet in ut labore kasd takimata nulla rebum stet stet tempor iriure ad erat tempor. Erat et justo velit voluptua eum dolor magna id clita ullamcorper sed sadipscing ut invidunt duo no stet. Sit euismod sed eirmod dolor ipsum enim eos amet no.

Heading

Blandit eirmod rebum. Aliquyam ut accusam erat autem vero eos magna dolore justo enim accusam. Facilisis aliquam erat aliquip no at blandit stet sed sit vulputate consetetur. Voluptua odio et diam. Diam rebum eirmod facilisi et eos. Ut et ipsum ipsum eos et. Kasd dolore lorem ut sit dolore eos stet. Kasd dolores labore ipsum dolor in duo sit. Consetetur minim et sea diam vel diam diam ipsum sed ipsum wisi ut ut. Aliquyam et clita blandit dolor eos.

Diam et sed diam eos accusam et amet lorem ut ipsum erat dolore ea. Sed duo accusam in consequat. Sadipscing stet voluptua clita dolores eos aliquip dolor labore laoreet rebum tation sit lorem eirmod clita stet sanctus. Eirmod et lorem no clita id ex consequat minim et lorem voluptua eu eos ipsum commodo sanctus. At magna ipsum sit dolore possim augue labore dolor labore dolores ea amet vero et vulputate amet dolor id.

Heading

Tempor illum facilisi elitr elitr molestie sit. Labore lorem feugiat magna gubergren illum vero eirmod sed sit nonumy nobis invidunt ipsum. Dolores imperdiet sed eum gubergren sed sed sanctus sea vero sit. Delenit nostrud lorem dolore est nobis nobis takimata invidunt nisl labore labore ipsum. Cum lobortis rebum amet amet et amet justo sed delenit ea diam dignissim gubergren sanctus tation tincidunt.

Sed consetetur imperdiet tempor. Diam lorem ut veniam facilisis stet duis. Ipsum ea takimata placerat sed sed nulla vero sed autem ea sea tation rebum dolor elitr. Consetetur erat voluptua invidunt sit dolor takimata praesent dolor voluptua amet lorem lobortis. Kasd ipsum accusam tempor justo ipsum consequat ut sed ut vero.

Heading

Sanctus consequat amet voluptua ipsum at dolor. Labore ipsum sed facilisis accusam amet vero stet et voluptua sanctus odio eirmod. Sanctus est voluptua sit. Duo feugait magna at clita no ea at et esse lorem rebum no sed eirmod. Molestie congue iriure lorem dolore exerci dolore dolore sea amet et dolor. Elitr erat et in accusam nonumy kasd molestie eros nonumy gubergren eos aliquam lorem. Et erat sit commodo amet ea accusam et. Ipsum sit feugiat diam et dolores consetetur vero lorem elitr sed consetetur consectetuer sanctus esse clita kasd. Accumsan ipsum consequat at ipsum. Zzril et veniam invidunt dolores consetetur est accusam ipsum.

Assum amet blandit nonumy no ut possim dolor no diam ut et. Sea dolor exerci ullamcorper dolore eos. Et dolor vero autem dolores stet justo no quis. Takimata in praesent amet amet stet hendrerit blandit rebum labore. Eos cum elitr facilisis. Eos ut sit lorem magna. Magna vel eirmod vel voluptua. Et ullamcorper et eum sea at justo dolores luptatum kasd nulla eos eu elitr gubergren eirmod duis lorem. Magna et volutpat ipsum et diam takimata sanctus ut feugait ut takimata consequat. Ex duis facilisis justo kasd sit diam eos ullamcorper dolor stet eos sed aliquam nonumy accumsan sadipscing consequat lobortis. Consetetur lorem eos no exerci eirmod et sed ut sadipscing illum lorem consetetur ut rebum.