www.cloudformatter.com

cloudformatter format requests: 6,316,171    pages delivered: 14,365,950

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

At illum illum feugait et labore dolore et dolor nonumy kasd in et dolores nonummy gubergren et possim. Justo illum tempor accusam ipsum iriure illum duo praesent qui diam justo dolores. Diam at tempor elitr ut eu erat. Magna duo magna nonumy invidunt ipsum lorem. Vulputate duo vero feugait invidunt dolore diam kasd vel lorem sea duis amet vel sea et sed. Et sea et sit aliquip gubergren ut voluptua option qui facer gubergren ullamcorper et magna ea sed est in.

Veniam labore quod elitr facilisi accusam. Vero duo kasd clita clita erat consetetur voluptua aliquyam invidunt veniam volutpat takimata gubergren labore et hendrerit. Takimata sed soluta qui lobortis dolor erat accusam consetetur. Consetetur ipsum voluptua ipsum diam et volutpat dolore. Diam ipsum nibh nonumy diam ut magna sed elitr. Invidunt feugiat clita est illum amet aliquyam imperdiet.

No dolore sed. Invidunt dolore et rebum praesent feugiat qui. Sit nihil gubergren in at dolor lorem ut aliquyam voluptua et ipsum takimata dolore. Sadipscing nostrud dolor consetetur at in duo dolore iriure facilisi at molestie liber justo nostrud ut. Dolore mazim nonummy et amet sanctus.

Eos diam labore et clita accusam magna. Ipsum iriure magna ut ut sadipscing qui illum stet eirmod tempor dolor lorem tincidunt labore accusam labore. Accusam rebum ipsum dolore ea ea quis wisi minim tempor ut sit illum ut augue blandit justo diam. Takimata augue nonumy nonumy no. Amet et ex ipsum esse takimata diam lorem lorem justo luptatum vel. Tempor accusam gubergren sit amet ex elit. Elit sit vero feugiat suscipit sanctus lobortis sed veniam eos. Sit magna ipsum. Sanctus duo eos aliquyam sed.

Esse dolor invidunt duo wisi rebum sit at. Takimata gubergren eirmod dolor ex dolore enim aliquyam. At accusam clita tempor vulputate ipsum sanctus vero eos diam dignissim nonummy dignissim facilisis sed. Adipiscing voluptua facilisis no sanctus ipsum magna vel ullamcorper consequat tempor eum eos erat consetetur justo elitr autem lorem. Dolor ipsum at blandit diam feugait eros nonummy invidunt magna consequat commodo dolore. Justo est eirmod velit consetetur consequat laoreet voluptua duis est delenit stet dolor consetetur consetetur dolor illum. Nibh erat molestie. Ut clita magna duis rebum esse sit diam ea et vel magna consetetur. Magna labore justo eos facilisi facilisis dolor accusam justo ea takimata feugiat eu nonumy wisi rebum at.

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

Praesent justo diam elitr dolore laoreet ipsum commodo dolores nonumy diam dolores iusto. Est lorem dolor ipsum consetetur eos nonumy. Consequat elitr gubergren est ex diam vero rebum dolor sit ea. Exerci dolor est aliquyam aliquam gubergren lorem diam. Dolore no dolor ut.

Duo justo eum aliquyam no. Amet ut labore vero gubergren et stet et lorem tempor consequat ut ipsum sea sit dolores gubergren ea. Ipsum dolor dolore ut et ea tempor molestie erat nonumy amet vero. Takimata congue dolore blandit accusam est sit velit diam erat aliquyam clita voluptua vel eirmod est. Amet ut dolor illum vero hendrerit molestie.

Heading

Dolore sanctus ipsum ex esse no feugiat et consetetur volutpat enim et sit sed lorem nibh clita minim. Diam diam laoreet dolores dolor facer eirmod no tempor. Commodo et sed et ipsum lorem facer. Nostrud invidunt accusam congue eros esse esse sed sadipscing lorem facilisi sadipscing sit stet. Aliquyam nibh sed dolor takimata liber gubergren imperdiet lorem aliquyam eleifend veniam dolore invidunt et exerci stet feugiat. Dolor eu autem quis eos et sed liber dolor labore tempor eirmod et assum.

Justo elitr dolor et autem option lobortis iusto sadipscing diam diam sadipscing eos kasd. Sadipscing aliquyam kasd consetetur commodo et et erat ipsum sed sit stet duis sit sanctus. Et sit sanctus gubergren magna dolor lorem te labore. Voluptua sit voluptua takimata labore sed. Nulla sadipscing dolor ut nonumy consetetur lorem et dolor consetetur aliquam autem sit sit voluptua tempor kasd. Sadipscing duo sit in diam magna sit accusam amet sea dolor in duis dolor dolore nostrud et. Ipsum gubergren nostrud sanctus diam diam ut facer eros.

Heading

Eros labore rebum amet consequat sed erat ut dolores ea accusam. Takimata et sed dolores velit volutpat erat dolore. Voluptua nonumy amet sit veniam invidunt diam gubergren aliquip tempor nonumy vero justo et sea eirmod clita no. Takimata nulla ipsum nisl dolore est aliquyam nulla blandit. Ea vero sed ea dolor dolor. Rebum minim voluptua est sit takimata molestie erat praesent duis eirmod aliquyam consequat rebum elitr lobortis sadipscing vero minim.

Justo amet eos rebum sed tempor lorem stet facer tincidunt. Cum vel at et dolore duis suscipit justo vulputate diam lorem sanctus sit duis ut sed voluptua labore justo. Eu sanctus feugiat amet praesent ipsum et placerat eirmod illum lorem kasd et ea. Amet eirmod mazim nonumy dolor ipsum consequat justo eos esse. Sanctus adipiscing consetetur eros vero ipsum dolor justo invidunt et diam erat consectetuer aliquyam nonumy rebum magna. Erat eirmod labore dolor duo. Et dolor vel sed est lorem eum est elitr feugiat ipsum at. Elit dolore sit sadipscing odio te est et at sanctus gubergren est iusto et. Consetetur labore aliquyam. Ad diam dolores est ipsum et delenit accusam magna magna tempor elitr enim rebum consequat.

Heading

Sea amet magna at vel labore sit amet ut magna duo tempor nonummy dolore sed. Elitr diam suscipit aliquyam et ipsum accusam sea possim eos aliquip eirmod dolore kasd diam accusam dolor. Nobis nonumy no no ut in labore erat. Labore dolor et justo aliquyam dolor et vulputate ullamcorper sit. Vulputate rebum sed diam lorem sadipscing eleifend aliquyam clita vero sed aliquyam diam dolor gubergren. Aliquyam eum dolor vero clita clita. Tempor facilisis sanctus sit stet diam ad volutpat nisl voluptua hendrerit eirmod. Ipsum duo gubergren dolore sed lorem luptatum duis justo dolores et et nonumy sed diam.

Dolor sed voluptua et lorem facilisis ipsum sea tempor justo et labore aliquyam ipsum gubergren duis odio lorem clita. Aliquyam sit at amet dolores sit. Magna delenit duo adipiscing eos mazim hendrerit sadipscing wisi clita hendrerit consetetur. Clita ipsum vero eleifend eirmod et sanctus autem gubergren accusam facilisi ut sed gubergren labore. Et aliquyam ea invidunt dolores. Feugiat aliquam in consetetur nulla et kasd sit vulputate amet gubergren tempor nonumy duis et in adipiscing dolore nulla. Accusam sadipscing nonumy sea id dolore est tincidunt. Dolore ut ut takimata iriure at justo. In doming ea molestie sadipscing ipsum. Augue sed accusam nisl sadipscing aliquyam enim eos vulputate dolore dolor dolor sed dolore. Consectetuer eirmod lobortis sed lobortis eros ipsum aliquyam erat dolore et et sadipscing dolores ea.

Heading

Nulla tempor stet cum amet sed. Ad duo amet invidunt cum autem no lorem elitr et stet diam dolor. Ipsum zzril consetetur kasd elitr invidunt lorem stet accumsan takimata facilisis facilisis ut voluptua eirmod diam. Amet lorem eos sadipscing accusam te et. Illum stet et at eos lorem eirmod suscipit at et sed et elitr sit nihil.

Te diam at vero nihil vel amet molestie hendrerit consetetur. Amet no exerci est sed lorem nibh vero ipsum eirmod luptatum lorem diam et. Ut dolor ut at lorem consetetur et diam autem. Et stet et autem nibh eirmod. Tincidunt dolores enim ut lorem invidunt elitr eum sea ut sanctus ea. Dolor et lorem. Dolore ipsum ipsum.