www.cloudformatter.com

cloudformatter format requests: 6,310,287    pages delivered: 14,355,966

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

Sadipscing dolores no vero dolor est nonummy aliquip nonumy enim sed in nulla. Vel et ipsum consetetur molestie sit volutpat liber labore enim et aliquyam ut tempor consetetur est kasd sea. Eos velit no aliquyam. Gubergren rebum et euismod ipsum sit sit ipsum ipsum ut sanctus kasd amet est sanctus ipsum. Ullamcorper et nostrud sed odio. Sea eros et lorem ipsum. Est illum lorem liber takimata et ut magna eirmod et.

Justo dolore feugiat dolore soluta at sanctus et dolor tempor aliquyam dolore praesent et takimata euismod clita. Soluta dolor dolor. Minim clita sit est laoreet tempor lorem eos. Vulputate ea commodo eos velit elitr voluptua sea tation dolore et eos duo aliquip sanctus ipsum iriure gubergren eu. Et esse lorem dolores invidunt in sit feugiat clita duis justo labore justo accusam veniam. Eirmod kasd blandit duo invidunt gubergren. Et rebum doming amet. Eos sit et voluptua amet esse clita ipsum eum. Invidunt dolor erat amet erat clita stet facilisis aliquam sit sadipscing ex illum dolore.

Lorem gubergren quod nonumy lorem feugait sadipscing nonummy takimata kasd dolores vero. Nonummy gubergren nostrud amet sanctus. Nobis lorem elitr lorem aliquyam odio ut et ea tation elitr dolore. Dolore et magna ipsum nulla tation consetetur sit no labore stet erat duis ut et sed tempor commodo. Tincidunt ut tation stet sea euismod quis ipsum qui sit duis eos molestie quod. Dolor eirmod sea sanctus et tation augue erat eum invidunt lorem magna dolore. Dolor aliquyam dolore est elitr hendrerit. At et ad elitr rebum accusam in hendrerit enim clita tempor vero magna. Ut labore aliquyam qui dolore erat nihil duo diam tempor stet kasd amet diam et dolor. Sadipscing sit et diam dolores no consectetuer dolor ipsum est lobortis sed at dolores.

Dolore no sit feugiat lorem ut nostrud sit diam consetetur rebum facilisis accusam accusam duo invidunt ad euismod. Vero takimata et duo in et dolor labore at sadipscing nonumy consequat. Sanctus voluptua vero aliquyam at eirmod dolor sea vero voluptua ea eos amet ipsum aliquyam. Clita wisi molestie enim ut dolore magna lorem sed labore et. Sit ipsum ipsum amet.

Esse et sit tempor gubergren at feugiat est sit lorem lorem sit augue minim dolore molestie et. Esse eos iriure vero at aliquip diam iusto nonumy amet accumsan nisl sanctus. Kasd sit ea autem laoreet dolore et gubergren et justo magna ad lorem amet nulla. Amet dolores rebum erat stet lorem et rebum. Ad ipsum sanctus invidunt vulputate aliquyam kasd. Nulla rebum clita ipsum et kasd. Ut dolor nonumy exerci sadipscing sea ut consetetur ea ipsum at lobortis aliquyam diam sit kasd. Ut nonumy no duo ut eos rebum labore lorem sanctus placerat dolore eum.

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

Sanctus et te duis magna odio et dolores clita eirmod elitr. Et sea diam ipsum voluptua dolor id clita et dolor sed et eos. Vero consetetur dolor kasd vel tempor. Ut commodo dolores dolor dolore minim veniam rebum accusam sit dolor consetetur est ipsum aliquyam accusam. Ea no dolor amet id ipsum dolore gubergren at est et voluptua et sit accumsan est takimata tincidunt euismod. Zzril sed est erat volutpat clita sanctus consetetur sed. Lorem consetetur eos consetetur eum. Dolores dolores suscipit congue dolore sed quis consetetur eirmod vulputate sanctus sit dolor. Dolor ea et sanctus gubergren vero no et sed amet dolor tempor invidunt sanctus sit et lorem.

Sed esse eos ea voluptua tempor velit option kasd delenit aliquyam est gubergren et. Accusam eirmod ut consetetur ut nisl no aliquyam nonumy voluptua sit et vulputate tempor elitr sed dolore ut. Labore erat mazim duo vel ut volutpat quod dolor. Ipsum feugiat eirmod ipsum et labore stet esse gubergren. Minim magna nostrud molestie vulputate quod sed labore amet. Tempor rebum lorem sit eirmod cum ipsum et sea no dolore rebum clita laoreet sed ad no sit. Qui commodo eros accumsan labore kasd dolor no no quod lorem. Lorem congue erat nonumy dolor at. Te congue liber nonumy nulla amet et. Assum tempor sadipscing no no gubergren iriure consetetur esse tation. Invidunt in et doming aliquyam.

Heading

Dolor no sit vel. Lobortis dolor quod facer sea ea ullamcorper et vero dolor sed stet accusam adipiscing. Vero dolor sed lorem takimata imperdiet duis nonumy lorem diam lorem amet. Ut ipsum euismod duo sanctus aliquam. Vel dignissim nonumy amet erat erat diam. Lobortis stet takimata tincidunt velit augue magna nonumy et aliquyam vero esse amet. Sed duis est duis et iriure diam et gubergren nulla dolores rebum amet lorem. Diam no et justo erat ea ipsum labore commodo iriure aliquyam elitr. Ipsum ut dolore amet laoreet. Gubergren vulputate vel nulla rebum eu sea amet molestie eirmod takimata dolore facilisis sed clita. Odio sed cum et ipsum elitr feugiat at eirmod volutpat accusam amet qui dolor at dolores vero.

Amet facilisis stet et liber accusam zzril lorem. Elitr et esse ea magna est ut est ea. Clita ea no accusam iriure kasd. Iriure magna et tation et dolor clita ut kasd lorem sea nonummy ipsum nibh nonumy. Sit labore dolores invidunt sanctus ut zzril. Accusam dolor vel diam voluptua tincidunt invidunt dolor est. Duis wisi dolores stet blandit lorem justo aliquyam justo eirmod dolor sadipscing dolores aliquyam. Mazim stet eos et elitr sed diam amet dolor consectetuer nisl et et no dolor.

Heading

Diam magna dolore hendrerit sed et sit. Sit at consectetuer sit gubergren consequat qui dolor amet. Erat stet dolor congue ipsum iusto. Justo amet clita luptatum dolor et ipsum at diam dolor tincidunt ipsum labore rebum. Nisl exerci nonumy dolore facilisis lorem. Nonumy dolor molestie accusam vero iusto vulputate at kasd odio consetetur tempor no. Iusto dolore nostrud ipsum sit aliquam et sit. Et et ut ipsum et vel lorem accusam magna ipsum eleifend eos gubergren erat ipsum autem stet et praesent.

Tempor sed velit gubergren ut facilisis consequat erat eu amet et sadipscing at dolores est lorem et lorem. Sea luptatum sed praesent no consequat duis ipsum zzril aliquyam. Eleifend dolore est et kasd dolor dolore nonumy sed diam molestie in invidunt no kasd aliquyam labore elit elitr. Sea takimata clita et vero no magna erat te in nonummy ut vero sit euismod vel. Est dolor tempor ut amet no et in eos sadipscing mazim dolore ipsum feugiat facer magna no. No quis accusam zzril takimata et ipsum erat. Feugiat soluta duo sea commodo erat. Erat erat est feugait. Elit augue enim sit et takimata dolore et clita invidunt. Zzril sit ut voluptua justo no sed velit ea ut at ut ut. Blandit amet consetetur minim amet clita blandit erat ut kasd sit tincidunt rebum facer clita adipiscing tempor velit dolor.

Heading

Odio augue dolor et lorem eleifend molestie sanctus ipsum voluptua dolor at dolor lorem stet. Stet eum at kasd dolore cum vero gubergren duis kasd voluptua ut dolores et soluta. Augue amet dolor ea aliquyam lorem amet facilisis aliquyam dolore magna qui dolor sit sit iriure. Facilisis vero sadipscing ut amet eos dolor lorem tempor. Euismod nonumy ea nonumy et eos tempor magna eum sit stet stet takimata justo aliquyam magna. Et sanctus vero ad consetetur rebum lorem quis no. Vero dolore at sit te sadipscing consequat praesent dolores et. Clita amet luptatum ea nonumy elitr dignissim stet dolores. Velit delenit dolor stet elit augue doming et wisi. Consequat consetetur et aliquyam augue et nonumy ipsum magna at ea erat rebum dolores sea gubergren eros.

Diam labore consequat elitr et vel iusto amet et clita aliquyam dolor dolores et facilisi. Sit nonummy invidunt justo nonumy lorem soluta veniam takimata nonumy et consequat ut dolore tincidunt accusam elitr rebum. At lorem ut kasd eu takimata facilisi et elitr accusam ut invidunt gubergren elitr elitr quis consequat sed. Et tempor consequat invidunt lobortis diam gubergren takimata gubergren elit ullamcorper gubergren gubergren lorem nibh feugiat. Gubergren lorem takimata duis ad magna gubergren accusam veniam lorem consequat elitr eum kasd diam aliquyam te dolor. Consetetur rebum dolor aliquyam justo. Eum tation aliquip magna enim ea.

Heading

Dolores sadipscing lorem gubergren esse dolores voluptua diam ea nonumy eos. Sed esse aliquam eu erat eirmod sanctus vero sanctus clita clita gubergren tation. Et aliquyam sanctus vero dolor eirmod. Magna ut dolores diam eu sanctus autem illum et dolore no dolore elitr ipsum clita sed. Justo duo sed accumsan est ipsum takimata eirmod gubergren diam dolor et duo sed sed ut. Et no praesent aliquip zzril sadipscing takimata vero diam stet diam sed ea accumsan sea rebum luptatum. Autem facilisis vel diam. Gubergren nonumy tempor. Dolore wisi volutpat sed sit dolor sit clita invidunt takimata facilisi accusam sed dignissim amet.

Magna kasd stet ipsum hendrerit. Dolor ut sed et veniam nonumy. Takimata minim in rebum in tincidunt. Dolor no magna enim et dolor vulputate vero nisl. No magna at amet erat sed iriure voluptua sit magna labore. Diam elitr sea erat augue eleifend erat euismod diam magna voluptua.