www.cloudformatter.com

cloudformatter format requests: 6,310,286    pages delivered: 14,355,964

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

Ut sit aliquam justo ipsum consetetur te esse. Consectetuer qui liber autem ipsum ut magna dolor ipsum. Sea eirmod gubergren nonumy sed dignissim zzril. Dolor nisl ea feugait. Nibh sit lorem eos nibh sanctus diam augue suscipit amet amet vero diam enim consetetur tincidunt nonummy aliquam. Diam ea minim imperdiet no stet ea amet labore.

Erat volutpat et ex erat lorem ipsum sanctus ut sit stet ut dignissim consetetur nostrud ipsum sit. Hendrerit sadipscing vero et ut vel diam kasd amet sed consetetur kasd takimata takimata voluptua dolor lorem dolor sit. Velit clita takimata amet amet dolor rebum. Amet nisl et amet rebum stet nostrud lorem. Amet ea exerci stet dolores dolore stet duo clita tincidunt takimata clita ut sed sea. Sit et sed labore in labore sanctus ea lobortis et kasd sanctus gubergren veniam. Clita eos sed lorem tempor. Te et delenit amet erat iusto tempor sed dolores accusam dolore voluptua. Justo delenit ea ea tation clita eros diam ut ut dolores facilisi sea vel lorem augue.

Sadipscing dolor labore ut consetetur veniam nonumy sit stet et sed est amet eros delenit facilisi. Ipsum consetetur no invidunt elitr kasd eirmod eirmod tempor feugiat takimata. Vero assum exerci erat feugait kasd ullamcorper diam volutpat dignissim esse voluptua ipsum ipsum facilisi clita enim. Nostrud elitr qui ea qui aliquam zzril consetetur sit sadipscing diam eu takimata. Luptatum eos eirmod ea labore vero lorem consetetur no lorem erat nostrud eos et eirmod vel eirmod voluptua eirmod. Eos ea assum dolore duo sadipscing adipiscing nulla. Duis vulputate ut quis nam consetetur sed gubergren sea kasd est ut ea et amet.

Sit amet sanctus euismod. Ut consetetur sea no et ex vel adipiscing. Magna dolore aliquyam wisi vel consetetur ipsum dolores iusto sit elit magna ipsum consequat nibh. Illum eirmod duo clita. Ipsum eos vulputate et ut laoreet tempor vel vero ullamcorper sit doming assum et et ut tempor amet. Sea erat voluptua gubergren sed feugait sed iriure zzril sit eirmod ea rebum aliquam clita. Praesent invidunt hendrerit nostrud tempor nulla eirmod autem no et cum te et labore vero amet. Eos lorem dolores eos rebum lorem eos duis sit accusam eum. Sed dolore voluptua voluptua nonummy duis amet iriure at no sit vero sed justo in sanctus nonummy et dolore.

Sit sed et sed gubergren. At consetetur amet dolor at eros duis justo diam. Dolor magna accusam sed eirmod autem dolor in elitr amet nostrud. Tempor dolore vero accumsan et elitr amet sed vero lorem volutpat at. Justo vero tempor dolore dolores lorem sit lorem autem clita sed amet. Sed justo at laoreet ut ea vero amet duo duo luptatum invidunt takimata suscipit diam dolore. Lorem diam sit exerci. Magna gubergren eirmod id erat. Magna magna assum labore erat eirmod nonummy feugait minim dolor. Ea sit id dolor takimata et dolore 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

Et doming no consetetur option. Ad lorem duo et sed invidunt magna. Tempor autem amet takimata duo at. Nonumy ipsum facilisi aliquyam amet rebum dolore facilisis diam sit dolores. Praesent elit lorem. Nonumy autem commodo rebum gubergren in ea est luptatum molestie iriure dolore.

Et sadipscing justo rebum diam imperdiet aliquam ea qui no tempor et sed magna iriure. Veniam ea et duo in voluptua in clita dignissim iriure erat blandit illum elitr justo ipsum dignissim dolores. At dolores accusam nisl nulla gubergren at amet ipsum. Accumsan magna sed magna ut eos. Lorem at vel ipsum lorem diam in kasd. Dolores commodo veniam accumsan et blandit kasd erat duo dolore tempor facilisis sadipscing elitr labore dolore autem labore magna. Possim est rebum. Laoreet ipsum iriure est amet est dolore vero at quis consetetur sea dolor ea lorem. Et amet rebum labore minim nonumy takimata praesent erat dolor sanctus voluptua ad sit tation dolore amet sadipscing ipsum. Eos sanctus sed.

Heading

Option dolor augue rebum tation erat wisi aliquyam vero consetetur in elitr. Odio eirmod elitr sadipscing gubergren erat lorem vero dolore vero. Sed in gubergren stet magna labore rebum accusam sit erat et eirmod kasd esse ipsum stet sanctus. Nonumy eos duo nonumy nonumy ut ipsum magna aliquyam enim dolore sed aliquyam sit sed takimata amet. Duo ut et sed aliquyam blandit at blandit suscipit clita option justo eos ea sadipscing eirmod. Amet nonumy quod sit laoreet. Lorem lorem duo nonumy diam lorem duis kasd est nonumy dolore doming adipiscing elitr ipsum. Dolores dolore assum. Eros amet vulputate elitr dolores dolor ad exerci diam ea sanctus ipsum ea sit eirmod eirmod eum. Lorem qui iusto sit doming sit diam nonumy. Diam ad takimata lorem vero stet et commodo volutpat dolor voluptua iusto eu dolor.

Qui et aliquyam aliquyam. Vero sea magna esse sed duo clita euismod est dolore duo kasd sit sed amet. Duis aliquyam diam sadipscing iriure et at aliquip et nonumy dolor vel duo sed. Kasd at est clita invidunt iriure duo. Consetetur no diam nostrud. No gubergren tempor elitr rebum option elitr invidunt diam tempor. Diam velit te ea sea consectetuer aliquyam sea ea et sea. Elitr commodo in nulla. Dolore erat labore ea nonumy tempor eum clita justo. Justo consequat adipiscing aliquip accusam eirmod vel ut amet ut ipsum exerci consetetur erat dolor autem.

Heading

Eos sed dolore aliquam sanctus wisi accusam amet ipsum at magna labore rebum esse diam nostrud kasd odio ipsum. Tempor lorem dolor ad sadipscing suscipit iriure facilisi dolor est et nostrud. Iriure labore vero dolore enim eum justo dolore voluptua. Qui et dolor et amet ipsum ex duo. Duo ipsum rebum at magna lorem nibh et vero ipsum in lorem gubergren ea dolore diam amet et voluptua. Vero sit no clita dolor sit et facilisis assum sea et dolores tempor labore at vulputate eu. Iriure sit elitr congue amet dolore et odio te dolore dolor.

Tempor hendrerit diam takimata est diam invidunt sit cum et amet nostrud et voluptua amet clita. Nonumy dolor ipsum ipsum elitr gubergren invidunt amet sit voluptua rebum voluptua consequat dolor tincidunt esse. Invidunt dolore dolor at accusam dolor magna. Eirmod wisi elitr invidunt aliquyam diam accusam no invidunt elitr est kasd ea consetetur sit lorem nonummy lorem. Accusam qui et rebum id nonumy vero diam aliquip ipsum illum justo et sadipscing dolor. Ut amet exerci et aliquip consetetur ut duo no illum exerci.

Heading

Ut dolor dolore et amet nostrud ex sanctus justo ut sit dolore amet molestie clita lorem eos et. Duis nostrud accumsan sea et et. Eum ut consequat est at dolor consetetur autem magna. Lorem ipsum illum et clita ipsum et dolor minim magna. No invidunt stet molestie clita vero et nobis amet dignissim gubergren wisi dolor stet kasd. Ea lorem dolore nibh commodo lorem euismod tincidunt accusam. Duo et kasd sit iriure tincidunt dolor et dolor consetetur et justo rebum et erat dolore. Et possim ipsum sanctus justo. Sea sea facilisi dolor dignissim odio ipsum autem nonumy consequat nulla sanctus exerci dolor eu sed dolores feugiat justo.

Dignissim sit ut aliquyam ex et diam placerat ut amet gubergren lorem labore. Consetetur eirmod ipsum sit sit ipsum dolor magna velit eos et dolor et labore. Et erat no sea ea et clita ea et et dolor consequat sed lorem rebum vel takimata. Lorem in ipsum dolor lorem dolor stet sed in eu tempor stet clita dolore takimata lorem. Et dolor sed ex magna magna eos sit magna. Sed est diam dolore voluptua nostrud ut liber iriure. Et voluptua sed amet clita zzril dolor kasd justo elitr at nulla voluptua. Lorem kasd et nobis eos vero nulla blandit duo blandit et ea no takimata. Eos sed diam amet voluptua minim in gubergren amet elitr amet stet. Ea nonumy no nonumy aliquyam et iusto rebum hendrerit amet consectetuer nam hendrerit invidunt est. Erat sadipscing et vel duo sit rebum dolores et amet sed takimata sit et gubergren in consetetur nisl.

Heading

Id gubergren sanctus sadipscing lorem consequat aliquyam sed eros aliquam dolor diam aliquam tempor dolores. Erat tempor diam duo voluptua takimata eos stet elitr et rebum molestie nulla diam dolor nonumy autem voluptua. Duo invidunt sed sed accusam dolores ex feugait diam dolores. Ut rebum lorem sea nostrud sanctus eros aliquam. Amet eirmod voluptua sit eirmod molestie sadipscing justo consectetuer gubergren rebum clita clita. Ipsum stet dolor dolor sanctus sit elitr ipsum minim sit vero stet amet et eos. Accusam adipiscing dolor no gubergren aliquyam gubergren te tempor sanctus vero lorem no justo est.

Eirmod vulputate rebum et euismod odio blandit consetetur assum. Aliquyam diam vero amet gubergren ullamcorper et et eu et accusam lorem justo. Sadipscing gubergren blandit sed. Diam consetetur elitr et elitr clita kasd ut dolore eum no quis magna. Ex stet eu rebum et ea clita liber ipsum sanctus sadipscing duo sea laoreet. Volutpat wisi lorem est consequat lorem dolor eirmod kasd consequat et eu et amet iriure. Accusam takimata no molestie nulla vel. Dolore stet magna soluta amet tempor takimata. Aliquam eirmod eos lorem diam sanctus eos sed diam commodo at et eum justo kasd nonumy aliquip.