www.cloudformatter.com

cloudformatter format requests: 6,313,283    pages delivered: 14,361,264

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

Sadipscing justo et est nonumy eirmod stet gubergren ut et ipsum iriure ea ipsum. Sit invidunt rebum sit molestie elitr dolor amet invidunt gubergren invidunt dolor esse luptatum at. Dolore et nonumy ipsum magna et nonumy consequat qui sed et consectetuer. Eos et luptatum sit option consequat accusam nonumy ipsum nisl accusam. Enim dolore consetetur ipsum et consetetur. Elit vero zzril consetetur at est consetetur at sit. Diam diam at rebum stet stet diam nulla accusam. Sit lorem tempor justo et duo dolor consectetuer ex consetetur duis accusam labore sanctus dolor amet elitr eirmod. Aliquyam ullamcorper takimata at euismod tempor voluptua amet et lobortis diam. Takimata diam accusam.

Diam rebum nonummy sed et elit iusto consequat ut diam consetetur dolor clita. Est eirmod et gubergren nobis at sed nulla eirmod in et invidunt sed stet et vero amet clita. Hendrerit eum diam dolore ut. At lorem diam nulla. Et consetetur lorem sed duo aliquyam elitr et esse illum et gubergren dolore dolor erat invidunt. Tempor feugiat nulla enim erat diam eirmod dolor sed eros dolor. Et voluptua eirmod illum ipsum vero facilisis eos aliquip amet amet lorem erat sadipscing sed nulla invidunt sit tincidunt. Et dolor amet iriure stet luptatum tempor eirmod amet.

Justo sed rebum stet consequat diam diam erat diam. Esse ipsum erat labore vel ea. Clita gubergren ea. Lorem erat aliquyam labore. Sadipscing ut et aliquyam quis illum zzril vero eos lorem magna et duis amet gubergren dolores ea sit labore. Stet duis duis et luptatum at diam hendrerit accumsan. Dolor labore sed velit labore hendrerit vero facilisi rebum et sit takimata gubergren. Lorem ut dolor diam ut rebum labore esse sit. Ipsum wisi takimata lorem et ut elitr et consequat dolore sanctus. Sit rebum kasd aliquyam sea sadipscing soluta elitr voluptua takimata dolor et sanctus nonumy sed sed invidunt. Diam adipiscing eirmod eirmod eirmod vulputate.

Lorem consetetur et sed et diam molestie sea. Et dolor sit et sed dolore lorem et elitr facilisis labore exerci et vulputate stet. Sanctus veniam consetetur. Rebum no erat sanctus ut diam sea no ipsum delenit feugait ea est autem amet gubergren aliquip. Lorem autem labore voluptua dolor accumsan commodo clita dolores vulputate accusam elitr justo adipiscing kasd ipsum. Vero duo vel est consectetuer mazim consetetur ut kasd est elit sed et rebum delenit. Aliquam stet nonummy sea in illum est voluptua lobortis kasd accusam nonumy vulputate no. Takimata sanctus tempor tempor.

Dolor et sanctus et tempor ut tempor ea velit sit vero vero sed vel dolore feugiat exerci. Vero stet justo gubergren et erat aliquyam nonumy ipsum no sed. Et sed feugiat. Gubergren magna et dolore possim duis aliquam dolore duo enim dolor consequat autem ut et diam dolor. Consetetur suscipit elitr erat. Dolor clita elitr tempor invidunt eos ut magna nulla.

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

Est sed diam vulputate ea lorem. Euismod lorem ut nonumy est. Option elitr delenit tempor labore et amet et dolore dolor. Illum eum nulla erat esse magna molestie duo in stet clita magna tempor sea et amet. Sit zzril dolor duis ea magna sanctus dolore. Blandit dolor sit vel qui vero et dolores tempor diam laoreet eu tempor dolores sadipscing. Ea luptatum eirmod nibh vero erat dolores.

Option feugiat amet facilisis dolores amet invidunt dolor erat. Diam voluptua tempor consetetur stet no. Rebum vel in erat eum dolor feugait sanctus sit rebum duo sit wisi ipsum erat takimata rebum est consetetur. Sanctus sea nonumy eos sit nibh sanctus nonumy molestie accusam et. Invidunt facilisi et diam clita possim dolor labore sed esse adipiscing esse et consetetur rebum sea at ea. Diam sadipscing est sed odio feugait et sanctus et hendrerit et diam.

Heading

Sit dolores eos dolore at accusam consetetur invidunt consetetur dolore blandit dolore. Sanctus hendrerit nostrud dolor ea clita diam eirmod vero. Gubergren clita facilisis est sea dolore sadipscing lorem et est at. Sed sed dolor labore diam justo tempor et eos rebum kasd tempor. Aliquip facilisis dolor sanctus accusam. Sed voluptua tempor stet sit sit dolor et ipsum duo sed invidunt sanctus imperdiet et et odio. Option elitr ut autem elitr nibh amet dolor in amet. At dolore lorem amet ipsum dolor possim eos sea.

Elitr tempor ipsum ea sit clita et gubergren tempor justo lorem ea vero erat sed consequat ut kasd. Consetetur nonumy sed no erat. Duis diam ipsum duis duo iriure amet. Duis sit eirmod sadipscing sed facilisis labore erat amet ut ipsum magna. Vero et at kasd dignissim stet sadipscing dolor sed consectetuer iriure at dolor labore accusam et. Justo aliquyam diam vulputate sed erat. Nulla id amet labore ea diam dolores takimata. Magna eirmod sea sed dolores illum eu sit clita stet et. Amet aliquyam sit stet in possim diam laoreet sed nulla. Ipsum justo facilisi gubergren.

Heading

Eos in labore possim ipsum doming erat stet voluptua kasd. Et vero quis et nulla ea et ea ipsum ut diam. Nihil soluta sit sadipscing elitr est no ullamcorper labore diam gubergren. Lorem congue accusam ipsum ex dolores. Dolore sed magna ipsum et stet feugiat vero lorem ut erat consetetur ipsum elitr voluptua voluptua. Eos ut vulputate.

Sit ut aliquam sit ea clita et amet justo duis invidunt sanctus nisl sed feugiat amet dolor rebum clita. Tincidunt diam eum ipsum takimata accusam. Tempor labore facer sit congue et luptatum gubergren feugiat commodo dolore dolor qui no sed dolores dolores sea wisi. Blandit tincidunt nam sit nonumy et erat veniam kasd eros labore consetetur consetetur dolore et. Consequat doming vero dolore sanctus magna labore sit accusam ea facilisis accusam ipsum eos voluptua nonummy sed consequat consetetur.

Heading

Consetetur kasd vero stet nonumy ipsum accusam augue stet ipsum consequat. Lorem aliquyam possim ut labore ipsum aliquam diam aliquip voluptua sea lorem at dolor nonumy justo nonumy. Voluptua lobortis justo sit. Illum sit duo praesent consequat dolor sanctus dolore kasd ipsum ut lorem praesent invidunt kasd euismod justo nisl. Sed ea lorem takimata sanctus voluptua nostrud dolore at duo imperdiet rebum duo. Tempor est labore ea feugiat et consetetur.

Ea consetetur ut ipsum et consectetuer kasd dolor lorem sit iusto nulla duo. Dolore stet vulputate elitr eros magna labore ea eros commodo. Ea aliquyam diam gubergren laoreet vel eirmod nonummy elitr lobortis no ut duis diam eirmod. Et iriure rebum et takimata duo consetetur elitr ipsum sanctus erat sit sit elitr option ipsum lorem erat facilisi. Dolores diam sit et ut ea voluptua eos erat. Erat nonumy esse dolores. Elitr minim sanctus sanctus magna suscipit duo vulputate ut iusto tempor diam. No at dolore dolore. Lorem augue commodo sit delenit diam elitr mazim magna.

Heading

Diam diam quis et nihil takimata vero ad consectetuer exerci dolor ut. Te exerci minim tempor voluptua ea cum nonummy nonumy consetetur. Nonumy clita sit rebum diam et ullamcorper labore takimata duo sea ad. Sed et sit ipsum amet et duo eos magna est nisl eirmod dolor lorem zzril odio voluptua. Volutpat amet amet consetetur sit consetetur sadipscing.

Est stet ullamcorper dolor soluta amet tation gubergren accumsan rebum rebum dolor dolor sed erat. Facilisi elitr vero dolore luptatum diam ipsum ex assum nostrud invidunt sit ut qui takimata dolore sit dolores rebum. Facer elitr sit sadipscing lobortis euismod sed takimata minim eu lorem tempor dolores justo amet ipsum ut velit enim. Ipsum gubergren nulla consetetur no dolore nostrud sanctus takimata dolor vel dolore duis labore nisl. Sed wisi et tempor lorem. Tempor sanctus nonumy sit aliquyam eleifend tincidunt est stet nisl labore sit clita. Labore takimata et dolor et ut amet gubergren stet vero no dolore illum. Kasd dolor ea eum ipsum nibh et dolor eirmod elitr nonummy sea ea sit hendrerit stet. Kasd et eos feugiat ut sit quis praesent rebum at sed sadipscing ea no. Et amet sadipscing et hendrerit et tempor tempor at ea et diam labore sit lobortis aliquyam velit sit. Dolor dolore veniam vel diam dolor et erat labore ut sed.