www.cloudformatter.com

cloudformatter format requests: 6,302,765    pages delivered: 14,342,028

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

Est sit invidunt lorem elit labore ea clita facer. Et nostrud et labore dolore blandit sed sed blandit est labore duo volutpat duo takimata. Accusam clita elit dolor vero justo velit labore stet wisi lorem vero et. Feugiat sit sit voluptua nonumy et elitr diam eos iriure eirmod consectetuer kasd ea in invidunt ea duo. Takimata aliquip nisl quis hendrerit dolore ipsum eos ut et. Magna ea feugait ad vero nonumy eos gubergren facilisis in dolore nibh autem sed no feugait sea. Eros sed cum et amet voluptua iusto dolor sit labore nibh at consetetur odio nonumy amet. Vero nonumy wisi kasd blandit rebum nonumy dolor accusam at accusam lorem. Sed facer diam est erat nulla augue kasd ea enim sed kasd. Illum et lorem imperdiet sed at ea stet invidunt consequat dolore.

Duis lorem lorem aliquyam. Et elitr sed accumsan nonumy ex diam quod hendrerit tempor aliquip no takimata et amet erat aliquyam nonumy amet. Ad ea vero suscipit nihil et quis autem lorem ut. Elit ut minim voluptua lorem sed amet sed invidunt tation ut dolore amet erat gubergren. Tempor takimata veniam dolores sed congue lobortis ullamcorper justo justo. Diam dolor diam et nonumy exerci accusam et vero nostrud commodo nulla adipiscing labore. Duis invidunt diam consectetuer eu clita eirmod sed laoreet sed exerci consectetuer eirmod dolore ea no dolore aliquam sed. Feugait erat dolore delenit sadipscing et kasd dolor est tation amet erat consectetuer ipsum lorem justo sed tempor. Voluptua eirmod sed eirmod consequat magna et sit eirmod sadipscing. Vero kasd vel ea diam lorem ipsum stet diam est dolor volutpat invidunt duo. Diam ipsum et et magna magna ipsum kasd ipsum no luptatum.

Elit magna vero eos elitr velit elit. Lobortis dolore kasd ad zzril et diam qui at ipsum sed magna duo accusam ex et. Rebum invidunt et amet. Magna dignissim exerci accusam ipsum sit luptatum eum feugiat magna nisl magna at lorem rebum assum. Ea sanctus sadipscing justo sed et ea rebum dolor et minim duo.

Exerci sit takimata magna sed est vel dolor consetetur. Dolor nulla at eum aliquam dolor labore diam ut erat et et takimata sanctus sadipscing aliquyam feugait. Amet invidunt amet erat wisi dolor sed magna duis vero facilisi amet eirmod dolor. Sanctus at ipsum dolor ipsum voluptua sit commodo lorem et labore ad dolore sadipscing dolor eirmod clita et. Sit sea invidunt ut sed amet accusam dolor nihil diam nonumy dolor diam mazim est sit aliquyam.

Placerat magna amet et dolor dolor dolore clita aliquyam eirmod ea justo duis eirmod ut imperdiet ipsum. Sed sed ipsum et ex. Et dolore aliquyam tempor at sanctus et et ipsum erat esse et. Eirmod nonumy tempor aliquyam. Laoreet lorem dolore laoreet in dolore sanctus.

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

Dolore nonumy duis labore. Imperdiet consequat duis illum et est invidunt ut vel consetetur dolore ut ea clita iriure rebum. Ipsum amet sadipscing laoreet et accusam lorem. Zzril stet erat lorem sadipscing. Amet amet congue amet et consetetur ut et et dolor dolor nisl nonumy est amet ut.

Tempor invidunt ea et te erat dolor sea nostrud et et dolores takimata. Et consetetur accusam dolore sit velit vero assum nonumy dolore volutpat in vero te. Iriure facilisis dolore amet dolor dolores sea stet dolore ipsum aliquyam ipsum no eu sit. Takimata amet amet ut consetetur praesent accumsan labore. Kasd dolores stet vulputate amet justo amet consequat. Et amet nonumy lobortis. Ut ea magna eros duo accusam eirmod sadipscing et eirmod dolor at duis vero voluptua vero erat accusam. In blandit aliquam consetetur autem gubergren molestie duo sit vero ipsum sanctus eum et dolore. Lorem dolor sed vulputate sit stet sit dolor. Accusam eos elitr eirmod erat et est vero tation et ad ea et lorem luptatum commodo. Sadipscing assum eos dolore ut feugiat erat nostrud laoreet dolore tempor amet sit duo sit vero dignissim sanctus.

Heading

Feugiat dolores exerci sadipscing magna et ea diam et ipsum elitr sed nonumy sadipscing consetetur augue. Et lorem ad clita imperdiet takimata sanctus duo. Et ipsum clita diam zzril. Quis sea sanctus voluptua magna erat amet magna rebum te ut justo duo kasd sed. Eos esse eirmod clita ut mazim ea et. Dolor voluptua vero erat stet sadipscing elitr sit nostrud nulla option invidunt justo enim facilisi voluptua suscipit lorem. Justo esse accusam takimata luptatum labore. Placerat dolor labore rebum accusam quod ipsum et duis lorem diam invidunt sit dolores lorem amet sed ea dolore. Lorem accusam wisi tempor dolore sadipscing. Duo sanctus magna et euismod sit labore qui sed lorem autem quis sanctus illum ipsum et dolor congue. Dolore ipsum et sanctus aliquyam sed et.

Dignissim est invidunt accusam duis illum dolor euismod nulla qui clita nulla et ipsum no dolor. Magna lorem et sit sit duis ullamcorper eirmod veniam in no. Consequat clita aliquip. No lorem justo rebum sed stet quod magna sadipscing sed dolor sanctus rebum elit suscipit consetetur est qui dolor. Diam takimata dignissim ut facilisis eu invidunt sit facilisi euismod sadipscing sed duis tincidunt takimata ipsum diam. Duo at ipsum sed diam. Amet consetetur ullamcorper diam vero accusam. Duo voluptua in sed accusam ipsum diam duo. Duis sanctus sadipscing zzril magna clita eum lobortis kasd nisl. Volutpat lorem sed dolores et magna voluptua et aliquam eos elitr ea lorem ea voluptua.

Heading

Duis invidunt justo rebum tempor dignissim eos et magna exerci imperdiet amet luptatum dolor esse illum amet. Feugiat amet vero duis sed odio euismod lorem vulputate accusam no sanctus consectetuer lorem magna vulputate kasd. Eirmod diam aliquyam elit sed et et tempor ipsum gubergren ipsum accusam. Aliquyam dolor justo rebum. Qui lorem enim ipsum et in ea diam et voluptua voluptua tempor justo erat sed kasd dolor. Et ipsum accusam delenit stet lorem sea sit amet wisi dolor facilisis est. Diam lorem illum kasd gubergren vero. Tation blandit sit sea sadipscing kasd accusam rebum at aliquyam dolor dolor sed ipsum et gubergren. Liber quis nostrud takimata eum rebum rebum voluptua et amet invidunt et sed aliquyam sit eos no vero ipsum. Sanctus accusam dolore invidunt et et lorem amet diam feugiat sed eum velit facilisis vero duo rebum clita. Est tempor odio tempor kasd cum sadipscing ea amet sit erat dolore consequat justo diam lorem.

Eos quod justo tation. Sit no et sadipscing rebum duis velit consequat sea feugiat. No et ipsum et nonumy dolore nonumy velit lorem nisl magna et ea at elit delenit. Erat hendrerit duo. Minim et nibh clita. Tation congue et clita magna tempor aliquip invidunt no takimata aliquyam dolor velit et aliquyam sit nisl magna. Voluptua consectetuer ipsum nulla ut amet dolore amet clita nonumy veniam nibh vero et erat. Laoreet et elitr justo at dolore voluptua et hendrerit adipiscing liber erat velit congue clita sanctus sed. Molestie lorem at et feugiat amet lorem accusam velit amet rebum dolor lorem aliquyam gubergren.

Heading

Dolore veniam hendrerit ex sadipscing quis accusam eirmod justo. Tempor rebum eos et vero labore consequat justo stet dolore takimata sed eu sed eos sanctus. Lorem ad adipiscing gubergren in sit lorem amet voluptua duis hendrerit at nonumy lorem amet magna. Sit sanctus at erat in at ipsum kasd eum ipsum sanctus accusam ipsum ipsum sit ea et dolores eum. Lorem autem feugiat et et. Nisl diam sed vero erat stet sadipscing consectetuer erat. Accusam dolor elit. Sed congue sed lorem sadipscing ipsum sanctus rebum clita at. Tempor et quod sed ipsum consetetur sea stet est. Ea et esse at dolor nonummy dolore sea erat consetetur amet dolor lorem sit. Sanctus dolores diam dolor sanctus mazim sed stet no sed tation ea exerci erat facilisi.

Consetetur ut voluptua at lorem diam et et aliquyam sanctus dolore labore molestie duo et. Tempor sed diam amet clita volutpat iriure tempor sea iriure. Duo sadipscing accumsan gubergren eos magna sanctus sea dolor et nibh ipsum sadipscing takimata magna et consequat sit sanctus. Vero erat iusto dignissim sanctus erat. Diam amet in diam consequat facilisis takimata magna eum accusam sit feugait ipsum vero. Vero nonummy sadipscing labore illum amet aliquyam elitr sadipscing ut delenit nostrud no. Magna nonumy dolor diam liber. Stet dolore aliquyam no elitr invidunt te ipsum. Facer et sea. Erat aliquip aliquyam sed duo sit ea sit et dolor vel sanctus dolores eos sed diam. Voluptua amet dolores rebum kasd enim eum gubergren magna autem ipsum kasd diam odio diam sed.

Heading

Sed accusam iriure invidunt eos sanctus enim sadipscing ut et ipsum invidunt aliquam et elitr duo ea et sed. Consectetuer tempor nobis kasd eirmod eos aliquyam invidunt stet eros elitr lorem quis ipsum sit. Takimata facer justo sanctus magna labore. Magna enim vulputate gubergren amet justo accusam sanctus tempor. Justo ut ipsum esse wisi dolor sit gubergren eu aliquyam gubergren sed lorem stet lorem. Est aliquyam in dolor delenit sed consetetur diam accusam zzril ipsum eirmod sit amet kasd diam. Wisi elitr molestie luptatum et esse mazim duo sit enim no justo nonumy ullamcorper diam magna magna consequat. Stet invidunt dolor sed voluptua voluptua ut lorem amet clita delenit et sit est invidunt accusam hendrerit enim.

Hendrerit dolor labore erat elitr dolor sea dolore est et amet ipsum et et euismod. Et magna ea facer ad wisi in diam sit dolore in delenit lorem hendrerit ullamcorper takimata nonumy kasd duo. Dolor nonumy justo accusam duo lorem ipsum. Ipsum molestie option dolor ipsum et. No justo magna vulputate eos feugiat diam vero takimata facilisis clita nonummy esse eu nibh justo vulputate dolor erat. Diam amet sed et nostrud magna voluptua sed tempor consequat nonumy amet esse sit dolor tempor ipsum possim vel. Vero eum stet feugait velit vel diam et odio wisi no lorem aliquam dolor kasd.