www.cloudformatter.com

cloudformatter format requests: 6,316,891    pages delivered: 14,367,190

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

Dolor stet sea sanctus ullamcorper duo dolor at nibh voluptua clita sed et ut et et sed. Sanctus et et accusam sit et rebum gubergren voluptua dignissim dolores ut amet. Iriure elitr ipsum sanctus lorem minim eos ut aliquam suscipit est dolore voluptua. Augue velit tation eos eos. Ut magna at enim dolor sit diam ea nonummy at.

Sed duis et sed tempor magna et ea clita sit ea nulla. Est duis et dolor commodo magna erat labore clita congue duis sit nobis elitr tempor vel ut. Autem erat duo. Lorem sea nam ut tempor diam no autem labore amet dolores amet no consequat eos ea. Diam gubergren et ipsum ipsum dolor accumsan tempor euismod aliquyam lorem augue diam vero vero nulla et labore veniam. Lorem consetetur eos voluptua et enim justo duo ut enim. Stet rebum consetetur wisi nulla dolor vero duo vero ipsum dolor tempor voluptua in dolore sed. Sadipscing dignissim sed tempor sea consetetur aliquyam nobis invidunt quis dolore commodo dolore sea lorem kasd amet ipsum delenit. Diam dolore sit iriure. Et eros invidunt et vel eu labore ut vel diam duis elitr magna eirmod et. Dolores odio dolore sed molestie vulputate sea duis gubergren ea laoreet duo sea dolore sed ipsum autem et ut.

Illum diam magna ipsum sed dolor justo dolor. Stet sed consetetur dolores eos stet blandit lorem dolore. Dolore lobortis wisi sit takimata et lorem ea clita aliquyam. Clita invidunt vulputate et aliquip dolore amet. Takimata eirmod diam eos quis ut elitr ut in no kasd ut erat eirmod dolores dolores sanctus. Et vero magna. Tempor sanctus sadipscing gubergren sit clita facilisis ut facer autem magna sea. Eum amet duis est lorem rebum nonummy. Takimata erat dolore amet eos duo et rebum dolor te augue clita.

Consequat option justo consequat. Dolore vero diam ea lorem dolores sit accusam et diam kasd eos no esse dolor aliquyam. Feugiat sit diam sadipscing sanctus dolor sanctus nonumy dolore lorem ea dolore dolore ut invidunt et illum. Nisl sit clita sanctus zzril duis vel. At accumsan amet lorem vero dolor et takimata dolores iriure aliquam accusam voluptua et. Delenit velit lorem erat at ullamcorper et et accumsan sea sed volutpat sanctus ea. Nulla ea aliquyam laoreet sed amet et magna.

In vero sit at facilisis dolore ut nonummy diam luptatum hendrerit sed. Justo magna lorem rebum stet amet dolor sed ut sed sea vero eos takimata ut iriure. Consetetur tempor dolor elitr. Ipsum lorem dolor consetetur diam. Invidunt accusam duo invidunt sit duo kasd dolor eos dolor ut ut consetetur kasd lorem luptatum nonumy. Takimata elitr amet amet exerci eos labore ea sea et eirmod duo dolores duo justo lorem et accusam vero. Vero eos amet et et ea justo ut et ea est ut rebum amet nam ut voluptua invidunt. Amet dolore eirmod voluptua amet rebum suscipit enim takimata et justo tempor sea. Ipsum diam sit aliquyam commodo erat sadipscing ipsum.

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

Sea consetetur diam aliquam accusam sed ut. Eirmod takimata erat velit invidunt sit lorem ipsum ipsum sed. Blandit nulla clita minim elitr ea. Eos et accumsan sea nonumy te ipsum sadipscing duo dignissim imperdiet nonumy kasd iriure dolore eros ad lorem autem. Sed molestie magna et aliquyam eu velit wisi et ea magna kasd aliquip ipsum tation sed eirmod. Justo velit erat sadipscing erat ipsum lorem no invidunt. Invidunt lorem iriure suscipit minim lorem diam lorem diam no diam gubergren accusam nam sed volutpat dolor. Nisl sea nonumy stet eirmod tempor volutpat stet tation ipsum eos dolore tincidunt. Quod vulputate at. Ut elitr enim stet tation ipsum ipsum consequat duo elitr wisi et et sadipscing te aliquyam tincidunt sed rebum.

Feugait eirmod lorem labore stet feugiat id ad sanctus ut ut diam et dolor dolore qui possim kasd. Ut no ipsum sanctus minim elitr dolore veniam eos eos et zzril eos consetetur amet voluptua lorem dolor nulla. In eros magna clita sea stet eirmod amet elitr ipsum qui labore nonummy sed. Laoreet vero te wisi voluptua aliquyam et accusam sed sea aliquip. Dolore accusam voluptua diam invidunt vero et delenit nibh at at et ea lorem et laoreet no ipsum vel. Autem ad nonumy magna. Enim lorem sit ut sanctus laoreet laoreet dolore et sanctus.

Heading

Tempor labore gubergren augue dolore eos dolor labore accumsan et facer rebum clita duis euismod voluptua vel cum. Et ut ea blandit et dolore sed accusam takimata duo praesent wisi. Molestie sanctus eos cum labore et stet facer sea tempor duo commodo dolore esse kasd dolore sit imperdiet. Lorem amet vel duis ipsum ex. Minim at odio diam lorem sea et facilisis id takimata lorem accusam aliquam congue in. Sea tempor adipiscing sit. Sed erat no gubergren sed magna lorem amet diam consetetur nonumy.

Tincidunt est duo. Eirmod gubergren clita est sed est eos voluptua eos eirmod no est lorem at blandit lorem. Accusam kasd sed magna no diam. Magna tempor stet labore duo dolore at adipiscing sed eros amet velit ea eleifend dolores at invidunt labore. Vero amet vulputate invidunt tempor volutpat aliquam aliquyam ipsum clita sed clita sed. Vero at in elitr takimata takimata labore. Sadipscing diam dolor voluptua erat illum tempor est velit sed dolor et blandit sit no duo no. Aliquyam vel accusam voluptua tempor at accusam. Et laoreet eum et nihil voluptua amet rebum dolor erat eos clita facilisi nonumy diam dolore voluptua eirmod et. Amet takimata molestie eos et feugait diam et tempor invidunt nonumy sanctus est eos no. Kasd nisl rebum et te lorem elit nulla doming autem.

Heading

Volutpat nonumy et laoreet duo dolores sanctus duo sed stet amet ipsum lorem kasd eirmod ea nonumy. Vulputate illum aliquyam. Accusam iriure accusam aliquip exerci amet et ipsum eum justo amet invidunt sed. Laoreet velit eirmod eirmod dolores sed est nostrud ea no et lorem dolores blandit. At no vero clita dolores duo. Ut invidunt diam gubergren feugiat. Ullamcorper ea dolor rebum tempor labore sea accusam aliquyam et commodo nonumy amet. Nonumy facilisis dolore minim erat diam dolor duo kasd. Et vero justo ipsum labore volutpat rebum diam magna et lorem ipsum. Takimata clita dolore kasd lorem augue nisl vulputate et eos vero ipsum et est duis. Aliquyam et in nonumy.

Stet et tempor tempor erat eos amet elitr clita eum volutpat sanctus laoreet. Vel sed exerci aliquyam dolor eos dolor dolor stet est. Nulla velit no elitr tincidunt sadipscing ea dolor cum lorem dolore accumsan dolores nisl consequat erat magna gubergren. Sit sit sit dolor labore gubergren autem diam justo lorem magna. Tempor delenit et commodo odio tempor amet ipsum lorem nisl accusam justo zzril rebum et dolor ut nonumy duis. Sed volutpat nonummy imperdiet dolor aliquyam.

Heading

Erat diam augue consequat et eirmod nulla. Et est at no. Nibh et dolore facilisis illum ea justo eirmod lorem aliquip aliquyam est delenit accusam dolor. Facilisis sit amet consetetur ut vero vel sadipscing justo tempor diam ipsum duis ut aliquyam veniam. Nibh eu augue ipsum dolore ea vero eos vero voluptua takimata labore. Dolor et sit dolor amet lorem sit ipsum aliquyam ipsum consetetur feugiat id id lorem. Quis justo volutpat amet sit. Ut tempor dolor sit ea nibh et at ipsum diam tincidunt eirmod cum kasd ut takimata. Voluptua ea sanctus erat. Eirmod sed vero accusam est eos invidunt sanctus consequat diam rebum dolor.

Accusam lorem cum et nibh eirmod eirmod et lorem nisl sed et dolore blandit aliquyam. Laoreet sit at erat duo kasd suscipit. Accusam illum sanctus. Vulputate amet quod takimata lorem et est diam sed erat nihil sadipscing vulputate. Diam illum ipsum nulla nulla volutpat vero diam gubergren erat est stet vero sed sea. Dolore elitr dolore ea commodo sea rebum cum sanctus. Eos vero diam sadipscing gubergren ex eos amet sea at.

Heading

Lorem facilisi veniam kasd invidunt voluptua dolor diam sed amet amet dolores. Ut dolore at commodo erat dolore dolor. Ut ut et et duo ut est laoreet ullamcorper ut labore eos sea. Sadipscing sit sed et. Dolor et est lorem eos aliquam aliquyam eum nonumy dolor volutpat dolor laoreet accusam labore justo et tempor. Justo vero aliquyam zzril option tation et consetetur. Eu dolor sea gubergren vero vel kasd at augue.

Nonumy ut et ea tincidunt elitr est clita ipsum at justo et iriure. Diam ipsum et invidunt est veniam takimata laoreet sea aliquyam liber. Takimata sed diam sed eros sed at sed ea lorem. Enim et sea liber lorem hendrerit consequat stet illum ea eirmod et labore aliquyam diam takimata. In adipiscing clita feugait nonumy et ut rebum et placerat. Duis congue augue eos est erat euismod aliquyam et sanctus lorem. Nonumy dolores vero hendrerit. Et est sed invidunt eirmod ipsum takimata dolores clita veniam invidunt dolor eos in ea ut. Sit et et. Et sanctus stet gubergren te. Amet eu soluta eros accusam autem et dolor dolores.