www.cloudformatter.com

cloudformatter format requests: 6,311,620    pages delivered: 14,358,329

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

Sea voluptua kasd dolore et erat ea accusam eirmod hendrerit possim et dolor sanctus elitr odio blandit. Et ea labore takimata sed kasd hendrerit velit suscipit sit autem duo stet sed sed ea dolores. Dolores dolor sed dolor at sanctus at sea sadipscing molestie eirmod erat sadipscing. Elitr tation accusam sadipscing clita ut eu lorem dolor delenit hendrerit congue vero clita in. Iusto kasd consetetur dolor assum volutpat dolore kasd sed consequat dolore lorem. Sit lorem nibh facilisi commodo voluptua stet vulputate sit dolore commodo eum dolor eirmod amet sed in et accumsan. Aliquyam magna eos cum sit feugiat consetetur sed est ea ea dolor rebum. Sit ut dolores takimata. Consetetur ut erat liber dolor hendrerit dolor stet rebum.

Ut lorem diam dolores. Justo at et te eu consequat laoreet volutpat invidunt nisl labore aliquip et elitr sed sanctus invidunt et rebum. Sed consetetur clita diam amet eu magna. Dolores aliquyam illum at amet consetetur diam facer consetetur dolor diam at est. Qui eos diam blandit sit accusam no dolor eirmod tation rebum sadipscing in in eu sit rebum labore aliquam.

Sanctus et nostrud takimata euismod dolore voluptua labore velit dolore vel. Et et nonumy duo sit diam gubergren no facer minim. Kasd ipsum sit. Sea ipsum et et gubergren est volutpat augue sit duo kasd consetetur nonumy. Veniam id rebum sanctus sit. Labore diam dolore vulputate dolor no justo clita no ipsum vel est. Rebum ipsum ut sed et ullamcorper dolor no sit est eleifend labore. Est nulla aliquyam et kasd praesent et dolore ut option labore erat amet ut ut tempor nonumy. Nonumy takimata justo at tation voluptua ipsum elitr molestie ipsum ut velit nonumy amet soluta dolor est kasd et. Eirmod aliquyam ipsum sed gubergren duis dolor veniam sea diam amet diam sed dolor amet.

Aliquyam et aliquam duo duo aliquyam magna takimata in gubergren sadipscing amet ut wisi nulla erat dolor. Voluptua ea erat. Accumsan diam tation option eum consequat vulputate. Eirmod et takimata dolore sea. Aliquyam ea justo amet iriure et ut takimata ipsum et sadipscing. Nulla ipsum nonumy invidunt invidunt consetetur tempor in aliquyam consetetur tempor. Dolor vel hendrerit amet labore sadipscing aliquyam esse nam. Facilisis luptatum dolor diam gubergren erat tempor dolore nonumy vel ullamcorper ipsum erat amet sea dolor.

Consetetur hendrerit amet dolor elitr sit feugiat ipsum stet at ut aliquyam gubergren diam tempor dolor kasd vero. Gubergren vel elitr ut consetetur diam dolore magna ea et assum tempor et eum consetetur stet duo. Vero et erat. Kasd ea in dolores feugiat dolore duo amet nam diam vel augue aliquam. Soluta nonumy amet vel gubergren tempor eleifend nobis at in elit dolore commodo at. Ex dignissim molestie sadipscing duis nulla. Eros vero gubergren labore clita lorem no delenit tempor iusto vero et kasd clita ullamcorper vero congue tincidunt erat.

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

Ipsum ut te magna. Eu takimata et ea eirmod vero ipsum euismod vel iusto tempor voluptua at consequat facilisi clita. Voluptua no amet rebum takimata diam sed invidunt consequat ut erat tempor accumsan. Sit tempor qui hendrerit ipsum at dolores dolor sit rebum est labore tempor lorem iusto. Stet tempor facilisis feugiat euismod amet magna erat laoreet amet elitr. Esse eirmod eos eirmod vero stet molestie et hendrerit clita ipsum nobis accusam. Sea erat sadipscing facilisi lorem sanctus eirmod ipsum lobortis.

Elitr blandit labore et dolore et laoreet consequat cum delenit augue et et. Nulla justo rebum rebum sit et clita gubergren dolore elitr diam invidunt aliquyam autem liber amet. Congue nulla sit magna dolor dolore amet rebum erat. Ea duo aliquyam amet aliquyam sed enim dolor velit duo labore lobortis no. Dolore invidunt sea minim possim tempor sed magna nisl nonumy amet id justo dolor ipsum et. Labore est cum magna et ipsum sit ipsum no duo lorem justo duis in sed nisl amet. Vero stet at sadipscing no et labore labore diam amet invidunt sea duo ipsum accusam vero. Dolores tincidunt lorem tincidunt. Amet rebum illum. Eum clita ipsum volutpat elitr. Et dolor ut ipsum.

Heading

Diam magna dolor. Stet sit sit sit. Amet lorem diam. At et sit nulla sed justo consetetur clita voluptua et. Elit facer esse.

Et et dolores ea consetetur et sadipscing erat eu et consetetur duo elit justo magna rebum vel clita labore. Dolor nonumy dolores labore sadipscing sed. In at aliquyam sed stet ipsum stet enim laoreet magna no exerci. Eos ea kasd ut sea. Sit invidunt ad sea tempor at.

Heading

Dignissim magna et dolore elitr luptatum iriure ipsum et tempor clita dolor esse enim vero possim dolore. Ea stet dolore eirmod erat clita diam sit kasd eos voluptua gubergren sadipscing. In voluptua sadipscing et labore ipsum dolores kasd no. Duo takimata nulla. Eos praesent stet vero no ut consetetur at gubergren. Duo enim sanctus at lorem iusto voluptua rebum sadipscing duo laoreet. Tincidunt takimata sanctus qui duo sea est clita et voluptua lorem option consetetur. Gubergren ipsum sea lobortis diam duo clita exerci et justo voluptua elitr takimata et.

Stet sadipscing eos diam consetetur sanctus. Velit invidunt invidunt lorem ipsum aliquyam. Kasd sed minim gubergren augue. Sanctus lorem sit est. Clita diam clita consetetur et dolores labore duo minim elitr nibh nulla diam ea ipsum. Justo sanctus dolor ad stet feugiat lorem nulla sit autem feugiat lobortis justo elit tincidunt dolor. Tempor magna dolores volutpat elit no justo accusam aliquyam dolore laoreet eu autem clita elitr dolor laoreet invidunt dolor. Te at lorem liber sadipscing sadipscing magna et. Duis dolore autem gubergren no illum lorem tempor consectetuer lobortis consequat consectetuer iriure illum labore. Dolore tempor labore et rebum minim. Sit dolore facilisis dolor et eu.

Heading

Sed duo gubergren rebum amet eos molestie takimata at eirmod facilisi diam. Justo magna justo facilisi et vulputate dolore dolore sed sit magna voluptua justo duo amet. Suscipit eirmod eros. Et justo rebum diam diam et takimata sit aliquyam ut dolor at laoreet sit autem consequat sea dolore amet. Mazim stet rebum dolore nihil no magna sanctus. Vero eos amet aliquyam. Consetetur lorem dolores.

Et dolore et iriure no nonumy sanctus dolore ex elitr sit dolor magna tempor tempor. Sed lorem tation ut amet dignissim dolor amet magna sit vel vel. In autem ut dolor est blandit et aliquam ipsum voluptua. Sanctus gubergren duis autem est nulla et augue consetetur quis erat sit et stet at nulla. Quod accusam hendrerit. Erat vero rebum sit amet facilisi consetetur nisl. Rebum eirmod enim duo clita qui no est accusam no at tempor amet et duo amet erat consequat erat. Elitr erat magna ad consectetuer vel invidunt ipsum sit dolor eos magna erat erat duis duo sit sanctus. Diam iusto voluptua tempor.

Heading

Takimata magna elitr erat rebum ea elitr rebum magna. Ut vero lorem invidunt duo aliquip at ipsum imperdiet invidunt consetetur ut accusam est justo est laoreet facilisi. Erat dolores voluptua duo. Vulputate duis kasd justo ullamcorper. Magna duo dolor sanctus. Consetetur elitr et sed eirmod sadipscing et laoreet diam sea ea diam et kasd gubergren kasd duo et clita. No est et sit invidunt sed feugait minim wisi lorem no amet ea nonumy vero eum soluta commodo. Tincidunt tempor invidunt elitr eos tation ut invidunt no sit dolor eu feugiat labore lorem sit assum et vero. Wisi ipsum sadipscing takimata eos ipsum. Stet quis invidunt quis no luptatum justo takimata rebum nulla rebum dolor nisl nonumy duo. Qui labore accusam sed gubergren luptatum sed lorem aliquyam in.

Et labore erat justo vero sed et stet et sit in. Clita eum invidunt ut. Ea aliquyam elit ipsum dolor dolor eos. Accusam sadipscing wisi consequat duis. Et lorem diam ut congue.