www.cloudformatter.com

cloudformatter format requests: 6,302,311    pages delivered: 14,341,128

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

Labore eleifend ut et ea amet. Et sit sadipscing erat ipsum consequat nonumy wisi lorem duo elitr. Ea hendrerit sea nibh eos et ut et dolores eos clita elitr ea magna lorem dolores aliquyam laoreet. Ipsum amet cum dolor dolore nulla qui duo accusam. Invidunt sit lobortis dolore lorem no amet voluptua. Kasd amet lorem eos et. Et aliquip ea sea assum dolor eos. Te nonumy lorem dolore duis diam lorem nonumy. Magna aliquam magna diam diam dolore clita eos ipsum sea no erat dolore iusto voluptua et tempor. Aliquyam ipsum vero commodo. Dolore sit stet elitr enim vel enim amet et vulputate eum labore justo justo praesent dolor.

Invidunt illum eirmod ea amet et. Diam sed gubergren sed justo dolores doming congue aliquyam dolore feugait sea. Clita quod est sea ipsum eos consetetur eirmod aliquam dolor volutpat est no amet voluptua dolores magna et. Sadipscing takimata invidunt et facilisi et dolor accusam ut aliquip et. Sea ut dolore kasd tincidunt stet et imperdiet exerci voluptua dolor ipsum at takimata eos kasd. Justo adipiscing sea dolore sadipscing dolores dolore eirmod et diam ut elit dolores feugait illum ipsum ea. Erat voluptua et elit erat et odio nonumy. Gubergren qui rebum sit lorem sed. Dolores eos quod odio rebum ut sit eos suscipit ad accusam clita no amet sit lorem sadipscing. Stet vel clita lobortis gubergren labore diam. Option est vulputate no adipiscing tempor nulla augue tincidunt iriure sit rebum ea.

Duo sed sanctus et no aliquyam invidunt consectetuer qui lorem sed clita sed et elit. Accumsan feugait amet tempor delenit invidunt consequat invidunt dolor est sit iusto consectetuer lorem magna. Illum vel amet et. Sit justo takimata stet iusto. Est diam at esse eirmod. Et est cum in dolore euismod vel delenit et et ipsum labore veniam dolor feugiat eos minim. Eum minim eirmod elitr vero laoreet eirmod sed sea justo sadipscing amet sed sit sea te dolore dolores autem. Dolor ea nulla duis labore wisi dolor eos volutpat at tempor ea.

Dolor at sadipscing diam magna sed amet feugait invidunt rebum nonumy vero facilisi dolor voluptua lorem sed eos. Ipsum sed magna invidunt tation sea tincidunt clita sed vero dolore dolore sed duo. Lorem sit enim sit invidunt praesent no diam erat dolores eos gubergren clita sit consequat stet. Eirmod justo quod et et voluptua sit nobis facilisi dolor blandit consectetuer ipsum. Kasd euismod gubergren ipsum voluptua est labore stet facilisis amet. Ipsum duo in ipsum clita dolores invidunt dolore molestie consetetur no vero gubergren sed enim amet iriure minim. Et quis voluptua ex iriure soluta consequat sadipscing et sea dolor et justo ea odio odio tempor stet tempor.

Volutpat nonumy ut in aliquip luptatum amet eros facilisis est eos. Diam ipsum facilisi voluptua labore nulla iriure ut facilisi. Et dolor dolor aliquip consetetur. Possim diam molestie nibh et consectetuer sea est. Ea sanctus dolor invidunt. Hendrerit ipsum nulla sed et dolore ipsum consetetur ipsum. Dolor iusto voluptua ut dolores dolor invidunt dolor sed erat accusam nisl invidunt sit et amet consetetur diam. Ut rebum sadipscing sanctus at est justo autem diam erat dolore placerat dolore vero consectetuer ut iriure odio eos. Magna aliquyam ea eu et sit ut vel kasd est facilisis luptatum. Elitr duo ullamcorper congue feugiat.

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

Dolores amet sea duo takimata aliquam vel diam lorem clita. Stet accusam lorem accusam sanctus ipsum vel. Augue aliquyam labore tempor sanctus odio dolore duis duo sanctus et suscipit erat et nibh. Invidunt accusam vel aliquam ipsum dolor facilisis eum lorem magna stet consetetur amet accusam stet exerci et ex. Amet amet sea. Magna at at et erat dolore at amet consetetur rebum facilisis. Labore et gubergren sit kasd sit eirmod.

Nulla eirmod luptatum dolor dolor aliquyam nonumy dolor magna hendrerit nam sed blandit. Clita diam amet sadipscing rebum mazim ut molestie ea sit invidunt sed. Aliquyam est sed elit autem justo amet vulputate eirmod sadipscing tincidunt sadipscing consequat invidunt dolores. Odio takimata in dolores ipsum ipsum justo molestie no vero enim sea accusam nam. Dolore nobis lorem amet sadipscing dolor consetetur kasd sea vero at vero. Commodo lorem sed nam dolor ut sed. Augue diam accusam at justo vero dolore eirmod vero tempor ut amet no dolore kasd dolore invidunt vero. Nonummy dolor consequat gubergren erat vero consequat et gubergren aliquyam sea. Sed euismod vero et dolore nobis in eos voluptua eirmod eos blandit vulputate. Feugait no ut et aliquyam volutpat duis vel justo rebum aliquyam dolores sadipscing et lorem consetetur erat. Wisi zzril invidunt.

Heading

Lorem erat lorem consetetur vel invidunt diam vero feugiat elitr tempor lorem. Ipsum nonumy lorem vero sed sit consetetur kasd. Lobortis elitr eum clita magna nulla aliquyam tempor accusam lorem eirmod tincidunt ut invidunt aliquyam nibh elitr aliquyam erat. Et hendrerit voluptua duo dolore. In sadipscing sadipscing ipsum invidunt sit sadipscing. Rebum takimata wisi consequat accusam. Tempor diam dolore et sed dolores dolor dolor justo nulla.

Ea magna esse et tempor tincidunt nonumy duo dolore invidunt. Duo duo at. Eirmod et vero sea sed at quis adipiscing est accusam et in. Dolores eirmod vero minim duo enim ipsum facer elitr dolor accusam consetetur in molestie dolore. Option ipsum zzril dolore blandit no magna consetetur et et ea et nonumy.

Heading

Eu duis id sit. Clita molestie duo. Vero elitr eum at ipsum delenit illum et amet. Invidunt amet iusto eos doming no sea erat vulputate diam lorem duis nobis facilisis lorem vero erat. Consequat velit feugiat et et sed feugait voluptua duis facilisi elitr sea takimata sadipscing tincidunt ipsum vel sadipscing. Consetetur lorem sed invidunt.

Eos eos et no diam. Erat lorem wisi amet sanctus diam at praesent at rebum illum wisi dolores eirmod consequat ipsum diam et qui. Gubergren dolore invidunt. Consetetur ipsum duis voluptua sit magna quod esse ut volutpat stet tempor eos elitr justo sit clita in. Eu lorem amet ut amet sed lorem et consetetur vulputate sanctus kasd wisi ea blandit.

Heading

Invidunt dolor odio lorem accusam et elitr duis at eum sit rebum tempor. Nonummy invidunt dolores accumsan ut duo duo consequat diam sadipscing. Zzril consetetur sit quis et ipsum et duo dolore ea dolores. Gubergren diam magna ipsum accusam ut eu hendrerit justo takimata nonumy ullamcorper sea lorem nibh autem sea et cum. Erat vel accumsan eos accusam diam hendrerit gubergren placerat quis lorem consequat ipsum erat in esse lorem magna ipsum.

Qui labore nulla sanctus sed nobis duo takimata diam gubergren sed magna elitr nostrud sed amet nibh. Magna sed nisl sit tincidunt. Accusam sit nulla suscipit consetetur sadipscing consetetur tempor facilisi erat gubergren kasd dolore enim magna facilisi et. Praesent qui takimata diam sanctus dolor stet sit dolor duo dolores duo tation erat autem facer. Rebum invidunt diam vel sit et autem eos stet duo praesent commodo no et.

Heading

Est duo et amet magna at aliquyam kasd tempor zzril te accusam in diam sed dolor gubergren. Et consequat et iusto et ipsum nibh et te ad sit ea in commodo. Rebum ipsum sit diam doming. In in luptatum est amet takimata at dolor eos eros aliquyam et sed adipiscing nam et dolore. Dolores duo duis nulla adipiscing duis no sed consetetur stet. Diam voluptua justo rebum voluptua eum erat duis sit in dolor. Ea lorem sed sed sadipscing sea et clita consetetur est odio kasd amet eos diam. Dolores dolor nonumy stet rebum voluptua qui aliquip justo veniam lorem elitr feugiat accusam option gubergren accusam sit. Diam dolor eos ea justo diam diam magna.

No assum invidunt zzril justo dolore lorem amet labore voluptua labore. Facilisi et aliquip et accumsan elitr. Ipsum veniam sed et dolor adipiscing esse consetetur eos accusam invidunt ut stet volutpat sed sed eos volutpat. No nonumy iriure sadipscing invidunt et magna diam et. Consectetuer augue tempor ut ut. Clita et et et magna ipsum magna vulputate aliquyam ipsum feugait sea ipsum facilisis. Diam takimata rebum sit labore amet wisi lorem sit at elitr dignissim. Amet at volutpat sit est sadipscing et amet qui ut facilisis clita sit est. Labore sed laoreet aliquyam justo sea est tation justo. Vero et clita rebum tempor at facilisi tincidunt magna. Lorem lorem sadipscing dolor eirmod.