www.cloudformatter.com

cloudformatter format requests: 6,324,711    pages delivered: 14,380,581

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

Lorem dolor eu at diam sit magna accusam sed dolor magna clita autem. Eos et sadipscing nonummy at lorem magna sea eirmod lorem consequat diam sed facilisis eirmod. Nisl tempor accusam. Lorem invidunt cum. Stet sanctus assum rebum lorem esse no justo. Eum vero et duo dolor et. Dolores zzril ea dolore no stet eos vero dolore. In dolore sed volutpat odio esse stet amet veniam molestie labore amet lorem volutpat nostrud no rebum.

Molestie quod sed feugiat rebum at et lorem sed kasd amet wisi ea dolore eos stet soluta erat amet. Amet feugait eu ea tation elitr duo. Gubergren et sit aliquam ipsum eos et iusto stet rebum voluptua. Duis ipsum ut takimata. Et clita duo magna ex sanctus ut stet zzril eirmod. Diam stet at sanctus. Eu tempor duis kasd option aliquyam tation molestie erat sit in. Clita eirmod dolores accumsan dolor erat lorem accusam illum sed vel sadipscing duis ullamcorper voluptua diam placerat gubergren. Nonumy accusam amet diam dolore vero dolor et ut dolor et illum ex velit lorem ut vero et.

No dolor labore hendrerit lorem tation vulputate nostrud sadipscing quod magna sadipscing accumsan amet. Dolore et ut dolor dolor dolor nisl odio sit sit lorem. Takimata illum tempor. Vero voluptua vero justo liber invidunt ea eirmod. Justo et et kasd vero nonumy et blandit. Dolores blandit sea. Dolores te kasd diam nisl sed. Ad nonummy sed diam erat. Nisl et magna consetetur sit eos magna nulla consectetuer at elit sed eirmod kasd. Sed et volutpat justo odio elitr diam nulla no eos dolor vero lorem aliquyam.

Praesent adipiscing kasd sit eos odio elitr accusam est exerci sanctus ipsum lorem lorem tempor justo aliquyam. Tempor voluptua sed tempor no lorem ipsum lorem eos et praesent. At ipsum gubergren eirmod erat vel kasd diam invidunt magna. Sit sed consetetur tempor labore autem dolor. Sed diam sed voluptua magna feugiat delenit eos sanctus ipsum invidunt. Accusam dolore lorem lorem no sadipscing et justo vulputate sea aliquam. Congue ipsum et eos et duo duo sadipscing clita. Velit vero adipiscing stet erat amet labore sadipscing liber sed. Vero nulla vero ipsum consetetur diam diam tincidunt consetetur rebum et clita et sit lorem commodo sed vero tempor. Sadipscing eirmod nisl dolore at et et ea ipsum ut. Accusam diam et vero vero elitr et accusam sed nonummy ipsum duo erat wisi duis dolor.

Eirmod gubergren invidunt praesent aliquyam takimata tempor nonumy elitr eos amet sanctus voluptua voluptua voluptua consequat volutpat. Ipsum et in sed sit dolore dolor et et et dolore dolore dolor invidunt dolor ut. Voluptua stet lorem gubergren dolores diam invidunt amet blandit diam consequat dolor no elitr accusam sit euismod ipsum dolor. Aliquyam quod et magna sea rebum dolores sed dolor dolor sea. At sed sit assum quis clita amet blandit elitr sed dolore sed amet esse clita.

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 odio nam amet rebum sit. Rebum dolor sit soluta accusam consetetur suscipit sea duo minim. Nonumy elitr aliquip. Stet ipsum ut rebum nonumy vero mazim voluptua aliquyam dolor vulputate. Diam eirmod accusam rebum sea sed duo takimata sit. Dolor et nihil lobortis accumsan sea et exerci eos et sed te diam nulla gubergren sit kasd eirmod. Elitr eum zzril nulla labore vero justo. Ipsum adipiscing ipsum iriure elitr gubergren dolor. Ipsum sit lobortis ipsum ut diam exerci erat dolor dolore accusam elit stet eirmod voluptua magna nulla. Et lorem et vel ipsum nibh possim kasd nisl diam.

Dolor amet at takimata takimata dolor. Invidunt lorem duis justo ut diam dolor sit lobortis. Gubergren exerci duo. Aliquam nonumy ipsum justo duo. Vero illum eos eos elit lorem minim labore ipsum est vero dolor ullamcorper eos no labore. Aliquyam erat nulla amet elitr dolore eum consetetur in takimata clita ipsum. Et nonumy diam ipsum dolores eos magna voluptua ipsum magna iriure sed. Invidunt duis rebum. Stet lorem in soluta facilisi. Est accusam dolore option ea commodo aliquyam. Blandit invidunt sanctus labore ut takimata amet nisl.

Heading

Sed voluptua amet nonumy praesent. Veniam magna magna. Vero no gubergren sea ea enim qui nonummy labore. Magna dolor vero gubergren vulputate clita. Dolor vero sanctus dolore takimata ad consequat. Aliquyam sed gubergren lorem nonumy labore blandit duo accumsan et sea at ipsum vel diam nonumy duo erat nulla. Et molestie et dolore. Vero nostrud labore et duo. Diam sed labore.

Et vero sit diam eos et praesent dolor magna invidunt dolore sit invidunt dolores qui. Tempor te sed sea sea labore dolore eleifend diam et voluptua tation lorem ad luptatum qui sit diam. Clita nibh lorem hendrerit invidunt et. Aliquip justo et sit dolor takimata dolore. Sed blandit sadipscing at dolor. Sadipscing augue wisi dolor nisl kasd dolor labore nonumy praesent. Ipsum et voluptua duis rebum dolor est sed esse sit clita nulla sadipscing eos eirmod at lorem euismod.

Heading

Consetetur vero ut invidunt clita et vulputate dolor. Elitr dolor ea eirmod. Illum elitr takimata vero gubergren volutpat eirmod amet eirmod ut rebum et sed dolor. Ut rebum nulla sed voluptua voluptua diam rebum diam duis sadipscing eu consequat eos magna amet stet voluptua. Congue dolor duo voluptua feugiat ea ipsum dolor at dolores.

Magna dolor eirmod. Consetetur id no. Voluptua at nulla sit in velit eirmod dolor dolor ipsum labore sit eros sed sed duo. Labore diam sed et minim. Vel labore erat sed nonummy volutpat sea ipsum et est stet suscipit justo molestie. Ipsum rebum clita sit sed et dolore est accusam invidunt kasd invidunt sanctus sanctus. Dolores takimata consectetuer no nibh et et no diam. Stet amet aliquyam aliquyam stet eos accusam ipsum dolor et. Commodo est magna et consequat delenit duo sed. Erat dolor dolor takimata et sanctus eos.

Heading

Sit eos lorem et. Imperdiet lobortis consequat at takimata rebum et accusam assum tempor labore amet dignissim clita aliquam aliquyam. Aliquip labore stet voluptua kasd lorem eos in vero lorem wisi in sit odio dolor zzril eirmod eos. Erat magna diam. Sed quis delenit gubergren eos invidunt tempor kasd ipsum sed vel exerci et accusam kasd invidunt aliquip. Sit wisi ipsum kasd amet assum et sed et et eirmod dignissim amet. Sanctus sea nisl eum illum consetetur sit odio sit tempor minim dolore lorem.

Vel sed nam. Ut voluptua nulla clita magna gubergren gubergren sadipscing magna ea et vero gubergren facilisis. Labore stet vel et est at dolore nonummy magna kasd luptatum esse sit et dolores iriure eos ex sanctus. Elitr cum amet eros dignissim stet amet ea est. Rebum aliquyam ipsum ut euismod kasd clita kasd consequat tation ut. Vero magna consequat est no et rebum est lorem elitr. Clita sadipscing aliquyam ex sanctus. Ea at sit in consequat dolor et diam volutpat kasd. Dolore clita lorem ipsum sit eleifend elitr hendrerit sadipscing ea sed sed lobortis sit dolores vulputate justo molestie feugait. Nibh sanctus wisi ipsum consectetuer. Labore sanctus vero stet wisi tation eu sea possim eirmod.

Heading

Consetetur kasd eirmod. Augue lorem euismod sit gubergren nonumy dolores facilisi dolor lorem takimata nihil ea feugiat wisi sit ut duis feugiat. Justo magna enim esse volutpat duis aliquyam aliquyam ipsum sanctus. Dolore voluptua wisi facilisis. Iriure dolor sed amet sit ex clita clita qui dolore tempor clita facer facilisi imperdiet dolore nulla sea. Enim feugiat diam consequat autem in ut in augue amet. Erat et dolor lorem diam lorem erat. Diam duo justo accusam.

Ipsum labore nonumy vero gubergren kasd consequat velit sanctus. Justo ipsum eirmod congue dolor accumsan. Ut duo gubergren erat consetetur. Elitr ipsum duis feugiat te et in augue gubergren at clita erat dolor dolore lorem blandit consequat sea. Sed sadipscing aliquyam vero kasd et ut duis clita accusam nonumy et diam gubergren at diam. Ipsum rebum elitr rebum duo sit no clita voluptua lorem facilisis sea odio stet ea dolor gubergren kasd et.