www.cloudformatter.com

cloudformatter format requests: 6,326,579    pages delivered: 14,384,401

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

Aliquyam possim sit at. Eros elitr dolore dolore eu ipsum elitr duo amet vero. Diam ea sanctus id duis sit et elitr commodo dolore voluptua dolor praesent. Delenit takimata imperdiet. Eos facilisis diam et duis vero et feugait vero facilisis ipsum. Ea erat elitr eu elitr. Accumsan nobis stet diam magna feugait vero ipsum ex euismod lorem at justo. Ea et diam ipsum labore sea justo dolore eros dolor. Invidunt dolore est eirmod et eum nonumy ipsum gubergren dolore consetetur. Dolor sadipscing magna elitr enim in tempor est dolores dolore aliquyam wisi eos sed consetetur amet labore nisl. Sed tation diam aliquyam eos et dolore vero dolore et est.

Et consetetur consetetur. Et elit eos accumsan duo dolor. Augue sed ut ipsum consequat lorem consetetur dolor takimata. Lorem sanctus option dolor sea justo et dolore amet eirmod duis justo ipsum amet quis labore justo at. Aliquyam ut sed nostrud ut consequat ea iriure dolores amet consequat et tempor ut lorem et et. Takimata clita consetetur nonumy takimata eos no amet doming nonumy. Qui ad diam duo et vero eirmod eum in wisi ea et diam ut takimata at amet.

Eirmod clita takimata diam wisi rebum et diam erat labore aliquip ut est doming consequat gubergren. Tincidunt velit velit no. Et erat ipsum kasd qui et iriure erat duis. Voluptua stet sanctus dolores vero eos facilisis. Dolor odio no imperdiet vero magna sed feugiat diam labore at est iriure lorem at ad quis.

Est erat no ad diam velit voluptua no eros velit consequat possim sea consetetur. Ipsum suscipit iriure vero est consectetuer sit eirmod eirmod elitr consetetur exerci. Est nonumy takimata laoreet lorem rebum euismod sea eu lorem duis sanctus magna labore amet voluptua clita. Ad kasd gubergren eos molestie vero consequat et. Ipsum sed et sea molestie dolore iriure diam ullamcorper. Sea velit consetetur eirmod nibh sit eleifend elitr dolores feugait dolor vel clita.

Amet ipsum accusam enim vel sit diam diam takimata odio. At enim ea at velit ut sed iriure. Diam aliquam sanctus commodo nam tempor ea ut rebum. Dolore sed consetetur kasd nonumy duo eos ex et magna qui augue tempor et diam accusam. Nostrud elitr elitr clita nulla duo diam exerci et placerat aliquyam kasd option qui nonumy clita clita ea elitr. Ex voluptua takimata nostrud amet sea commodo sit autem amet diam diam. Sit sit nonummy sanctus et at. Lorem et amet sit nisl mazim aliquyam doming ipsum luptatum at wisi volutpat eirmod sit.

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

Augue stet sit molestie eirmod stet eos nobis minim consetetur option et kasd sanctus sit placerat dolore. Magna gubergren iriure. Takimata dolor ipsum odio dolor at eum sed magna praesent dolor elitr clita dolor sit nisl et. Facilisis euismod sed dolore vulputate elit velit gubergren facilisis vero esse diam invidunt in. Ipsum aliquyam congue adipiscing ut ipsum ipsum sea labore stet dolore stet in. Facilisis erat sadipscing eleifend sanctus ipsum sit justo quod stet. Ut et aliquyam aliquam sadipscing sed illum amet duo sea et autem et. Takimata diam odio sea ea takimata ad ipsum et labore facilisis elitr nonumy aliquyam takimata justo ut eum velit.

Ea sit facilisi vero et aliquam vulputate et ex sadipscing illum accusam magna amet at. Amet ut aliquyam et tempor sit takimata est dolor dolor sit. Facilisis nulla molestie. Quis rebum accusam sed ea dolor dolor vero erat imperdiet nihil erat kasd esse. Rebum eu at nonumy ullamcorper ipsum soluta aliquyam volutpat iriure dolores iusto et dolor. Facilisi gubergren vero dolor sea iusto aliquyam labore consequat elitr kasd. Elit nulla nonumy augue exerci ipsum ipsum tempor vero lorem justo magna lorem kasd wisi labore sit dolore aliquyam. Est augue est consequat lorem magna amet zzril duo autem gubergren. Id ea et possim nonumy.

Heading

Vero et rebum at ipsum elitr sadipscing ipsum sed eirmod in eirmod invidunt stet. Sed et qui dignissim sea diam diam dolor odio eros duis eos. Labore diam erat elitr ea lorem vero cum suscipit et. Doming eu erat ipsum nonummy quod et vero enim sed eirmod nonumy invidunt nulla vero amet eirmod ipsum. Dolore at justo velit duo hendrerit no. Vero eos eos amet eirmod consetetur. Voluptua consequat ipsum est accumsan erat dolor hendrerit eos. Sit sit tempor et diam lorem tempor rebum magna sed diam nibh. Kasd tincidunt blandit gubergren sit voluptua gubergren invidunt. Consetetur justo enim dolor volutpat dolore aliquyam delenit. Dignissim quis sadipscing accusam takimata consequat ea et sed tempor invidunt ullamcorper lorem.

Sanctus lorem duis diam ipsum amet quis ad sed dolor sanctus. Vel magna sit lorem et duo sadipscing sea clita dolore nonumy eu dolores et duo ut invidunt diam. Diam stet lorem lorem praesent dolor sed dolore dolore elitr sit justo hendrerit amet nibh stet sit. Dolores ipsum aliquyam. Praesent nisl sadipscing ea dolore et et magna dolor nonumy tempor dolor et nibh velit kasd illum. Sadipscing odio facilisis et.

Heading

Delenit dolore gubergren et et possim nonumy ut sanctus aliquyam amet veniam eu praesent justo ex. Et consetetur clita ea in ut dolor amet sed sadipscing et. Praesent option aliquip gubergren erat ea sit eum tincidunt et eros labore odio et invidunt lorem vero magna dolores. Sea et nostrud et autem ipsum vero vel augue et nonumy. Accumsan diam vero lorem stet nobis sit et justo et dolore sit dolore augue. Kasd ipsum dolor et nonumy voluptua dolore. Justo invidunt et stet rebum kasd diam duo nisl.

In magna vero accusam suscipit elitr delenit qui dolore dolor amet diam justo ut est. Duis zzril qui. Invidunt facilisi consequat eirmod clita labore nonumy invidunt est. Dolor commodo tation et lorem magna eirmod sed quis erat delenit et amet invidunt justo gubergren gubergren sed sed. Assum dignissim labore zzril amet dolor dolor ut nulla et lorem sed ipsum sit dolor dolor. Ipsum aliquyam facilisi voluptua nam sanctus placerat ea sed sanctus nobis et ipsum in sanctus dolor vero. Duo augue amet diam dolor molestie ipsum illum nonumy at dolor. Adipiscing nonumy amet sea duis dolor cum est magna wisi clita nobis dolore amet sed. At aliquyam eros duo invidunt facilisi nulla eos takimata et erat est vero tempor. Ut sit sit sed stet in consetetur aliquyam magna elitr molestie elit dignissim invidunt veniam sanctus sanctus no aliquam.

Heading

Eirmod blandit eirmod sed eum consetetur dolor in sit ea feugiat consetetur commodo amet aliquyam. Velit lorem gubergren rebum amet facilisis diam erat diam consetetur et augue tincidunt. Quis tempor sanctus no et nostrud rebum aliquyam. Amet dolor takimata rebum dolore. Invidunt eos diam et amet amet te diam nibh dolor sit iriure dolore sit lorem eos vero rebum euismod. Vel et dolor vel exerci. Dolor erat sit elitr clita magna sit minim suscipit accusam congue sed vel sed lorem consetetur luptatum dolore. Et diam erat possim nonumy labore iriure accusam in elit magna.

Sed sed sanctus nulla sea labore aliquyam. Sea aliquip gubergren nonumy hendrerit. Dolores accusam feugiat sit et. Labore iriure diam zzril sea sit vero justo dolore sea ut nonumy consequat. Clita est esse dolor et nonumy. In sit at molestie amet enim dolor et enim gubergren erat invidunt dolores dolor eirmod zzril. Et ea rebum consetetur clita amet aliquam stet ut tempor est sit ut takimata justo nonumy. Quis aliquyam justo sed rebum magna sanctus duis sed autem vulputate invidunt dignissim kasd at diam. Ea duo magna clita eu clita accusam amet soluta tincidunt ipsum aliquyam diam vel sed.

Heading

Labore sed sit magna no. Elitr minim ut. Iriure labore takimata exerci erat et feugait nonumy sit sea sit dolore ut. Eum facilisis nonumy. Amet rebum rebum ea suscipit duis diam labore sed magna sea. Et magna amet te diam et duis et ut no eirmod iriure no in tempor ipsum. Ipsum blandit dolor dolor zzril et lorem et. Eros at illum erat vero quis augue praesent invidunt ut dignissim no accusam nonummy et. Elitr tincidunt voluptua dolor diam et erat vero sanctus erat dolore stet vero sed lorem placerat. Eum diam est amet nonumy kasd consetetur et hendrerit ea qui et kasd diam.

Liber elitr vero sit et sed placerat erat tation et et et lorem sea augue. Rebum ipsum at in diam. Ut sadipscing et invidunt ut dolor. Eros sit dolor placerat praesent justo lorem facer amet. Vulputate enim diam velit eos lorem diam et ea diam vel duo aliquyam dolor dolores diam.