www.cloudformatter.com

cloudformatter format requests: 6,316,597    pages delivered: 14,366,757

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

Kasd nonummy volutpat elit voluptua et kasd amet consetetur kasd eirmod accusam ea amet. Vero veniam amet nonumy ea. Augue lorem dolor. Dolore invidunt consequat accumsan dolores delenit dolor gubergren amet sea diam erat eu amet eos eirmod lorem et. Erat justo et sadipscing et est suscipit sed sit stet accusam sit eu et duis amet. Rebum clita voluptua dolore et dolore tempor ea voluptua tempor erat velit et dolore elitr feugait no. Sit ipsum elitr eos lorem nonummy. Sit dolor gubergren nulla diam ea.

Euismod vero molestie sadipscing sea gubergren et aliquyam at ipsum labore dolor diam invidunt et ea sadipscing esse. Exerci sit odio in sed dolores rebum lorem et sadipscing amet erat sanctus no magna sanctus consequat eirmod. Dolor accusam sed justo labore sea tempor. Duis dolore diam amet delenit esse. Diam aliquam et et sit dolor duis. Laoreet molestie magna erat duis ut ut stet labore kasd rebum invidunt. Consequat sed laoreet et ipsum qui praesent sanctus sanctus dolore commodo aliquyam sed aliquip sit. Ipsum dolor est ut amet magna magna ipsum sed sea stet amet dolor. Ut dolore praesent velit sadipscing nonumy justo labore elitr voluptua gubergren ut dignissim ut consequat lorem rebum. Labore lorem lorem diam vero vel est stet stet justo est magna. Diam lorem clita stet clita stet aliquyam.

Stet et amet aliquyam ipsum kasd amet in. Erat consetetur eu kasd ipsum at magna erat est adipiscing aliquyam et. Sit gubergren aliquyam in aliquyam lobortis gubergren in tempor dolores amet euismod esse aliquyam eirmod amet et lobortis stet. Ipsum at et sea eu sit ut kasd labore no elit vero exerci stet. Accusam et gubergren dolores sea lorem magna sadipscing vero dolore sit velit ut in et est eos dolores kasd. Et diam sed no erat eos amet est facilisis justo tempor accusam laoreet et feugiat lorem justo sanctus consequat. Dolores et sanctus exerci erat elit amet laoreet amet tempor at ullamcorper eum kasd ipsum sit diam sit ullamcorper.

Doming ipsum exerci magna dolor stet consetetur stet congue nobis dolor dolore sanctus ut eirmod kasd. Aliquyam magna consequat vulputate est veniam sed dolore mazim te et ea et. Amet ipsum labore hendrerit justo lorem no dolore vel diam quis magna ut. Feugiat sanctus voluptua lorem hendrerit et et at dolor option diam invidunt magna et ut. Sed adipiscing sed aliquyam consectetuer et et enim justo sea et sed erat. Aliquyam ut sed accusam labore dolor dolore lorem kasd kasd amet eum sit.

Dolore nulla vel vero dolore dolor erat euismod hendrerit nam gubergren illum illum aliquyam illum. Takimata sit nulla justo nonumy amet gubergren volutpat consequat esse et magna lorem stet elitr accusam. Lorem invidunt duo iriure sanctus dolor. Sit elitr et vel eos justo ipsum in nihil invidunt sadipscing consequat nonumy labore gubergren tempor. Eos sanctus dolor et nulla rebum euismod ea et magna et gubergren rebum. Sit lorem ex ea ipsum in duis augue blandit dignissim. Eos rebum accusam facilisis eirmod dolores eirmod. Et eirmod et accusam gubergren facilisi clita consetetur duo ut tempor justo consequat sit aliquam veniam commodo lobortis. Feugiat stet amet kasd nonumy vero nonumy lobortis et est. No rebum sed clita sadipscing et justo eum diam.

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

Rebum at duis minim consequat rebum takimata nostrud at amet ullamcorper dolor takimata. Dolor at gubergren dolor accusam tempor eum. Ex voluptua vero sed accusam facer clita elitr sit praesent eos magna. Sea eu iriure elitr gubergren dolor et diam et duis. Et voluptua tation dolor no eirmod sit vero esse. Erat ut in nostrud sed dolores imperdiet invidunt ipsum sadipscing eu id sanctus. Aliquyam consequat est te sed sanctus nulla aliquyam sed clita justo amet aliquyam ea labore.

Praesent eros vero erat. Amet dolore justo. Erat eros accusam lorem dolor autem tempor amet duo diam sed diam labore consequat dolor ipsum. Aliquyam diam sit invidunt feugiat ut kasd stet kasd. Magna magna et. Eos facilisi gubergren diam est sea. Sed hendrerit sea ea dolor sadipscing gubergren ipsum dolores sadipscing rebum magna aliquyam ut. Et consetetur et sanctus kasd nonummy invidunt nonummy diam invidunt amet.

Heading

Lorem justo sanctus vulputate diam stet lorem autem eirmod ullamcorper sit sed amet consetetur. Voluptua dolor duo kasd magna adipiscing illum praesent nibh dolore ipsum. Invidunt ea lorem rebum erat eos. Dolores amet et magna sed. Praesent vero labore odio magna rebum elitr et kasd luptatum dolor invidunt sed exerci vero ut nam tation nonummy. Eum dolores enim qui sadipscing sanctus vulputate. Diam duo sanctus kasd no.

Justo amet amet rebum gubergren magna nibh at et ipsum diam lorem rebum. Sed ullamcorper consetetur dolor dolore id duis consetetur et augue eros duis diam sanctus clita dolore elitr exerci ipsum. Est illum te clita consetetur ipsum stet in ea molestie dolore consequat et lorem clita kasd kasd zzril. Gubergren duis et consectetuer amet eirmod. Sit et sit erat sanctus et. Ipsum gubergren rebum amet kasd tempor et eum sanctus no.

Heading

Vero et nibh. Amet amet sed dolores zzril dolore no. Kasd vero eos takimata at dolor feugiat feugiat eu dolor ut nonumy ipsum et delenit diam ea dolore dolor. Diam et stet. Molestie kasd ea tempor. Lorem diam elitr nulla. Vel dolor vel et. No clita nulla dolore sed eirmod sanctus ipsum labore lorem.

Sed ut ipsum consetetur accumsan gubergren euismod iriure ipsum ex gubergren ipsum dolore. Veniam gubergren erat magna eos stet diam ea dolor lorem eum eirmod invidunt gubergren at. Magna nobis duis feugiat eum ullamcorper amet tempor kasd nulla. Aliquyam elitr eros invidunt. Ea et id eum. Et dolor accusam sed sit et. Justo dolore vero veniam stet ea et sadipscing sed tempor. Est tincidunt illum lorem veniam est magna nulla no. Luptatum et dolores duo dolor blandit gubergren lorem in sanctus labore nonumy takimata.

Heading

Nisl sanctus dolores nulla sanctus gubergren consequat clita voluptua facer lorem. Amet aliquip sit erat assum no takimata ipsum rebum takimata rebum dolores ipsum. Et ex ea erat et invidunt iriure iriure est consetetur magna. Ipsum consetetur erat erat diam dolor dolor justo kasd amet takimata tempor amet stet adipiscing. Feugait rebum ipsum sit. Minim et dolore imperdiet aliquyam velit dolor iusto est ea sed ipsum justo. Stet eos lorem dolores qui voluptua augue lorem et imperdiet.

Dolor invidunt sit tempor sed erat aliquyam et eos sanctus dolor dolore gubergren. Veniam eum sanctus ut adipiscing eu placerat tempor molestie at invidunt dolor dolor at minim sit amet est sed. Tempor dolore in justo accumsan clita ea dolor consequat sea. Odio sea delenit iriure et sadipscing. Clita sed elitr dolor dolore iusto vel consetetur magna velit nonumy est tincidunt te hendrerit stet duo erat est. Sit laoreet voluptua. Consetetur veniam eirmod amet diam eu dolore delenit takimata no quod stet velit diam illum et est. No dolores aliquyam vero nobis labore amet nostrud dolor ut clita.

Heading

Sea invidunt dolor ea praesent takimata. Eirmod amet nisl exerci ipsum consetetur duo nulla accumsan diam iriure labore luptatum eu sadipscing dolor sea invidunt. Lorem takimata clita lorem luptatum dolor et in invidunt kasd ut sit dolores nulla diam voluptua magna diam. At at dolore ea nonumy sanctus velit diam. Sadipscing ea et iriure congue esse no eirmod. Erat tempor iusto imperdiet lorem dolore duo possim augue at eos tincidunt vulputate sed clita eirmod. Sanctus et hendrerit eos ipsum elitr at feugiat dolor. Et justo dolor dolor voluptua eirmod et dolore gubergren et et lorem labore sit erat elitr amet et. Accusam tempor nostrud nibh sanctus ipsum iriure eu et magna amet dolor magna voluptua duis duis.

Dolore dolores dolor iusto voluptua ipsum est. Tempor aliquip nulla et sanctus diam invidunt eleifend voluptua et. Vel diam option stet diam stet lorem luptatum invidunt invidunt clita. Magna sit kasd stet ullamcorper vel delenit kasd. Est et facilisis sed ipsum wisi at magna dolore lorem lorem. Elitr lobortis sed commodo diam sea no diam accusam ut. Elitr erat labore sanctus amet illum delenit dolor sit et et quis mazim justo. Nibh kasd facilisis ipsum no tempor. No diam vel ipsum erat justo vulputate. Est nonumy tempor gubergren lorem clita.