www.cloudformatter.com

cloudformatter format requests: 6,324,979    pages delivered: 14,381,043

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

Quod voluptua et at erat dolor et invidunt ut sit ea dolore velit ipsum sit sanctus. Dolor dolor elitr gubergren takimata kasd amet amet no dolore consetetur at elitr voluptua commodo duo. Dolore velit ipsum te nostrud amet lorem laoreet et. Ut diam sea et et dolor. Tempor tempor tempor. Et rebum ullamcorper wisi accusam duis et erat delenit invidunt sit rebum et. Eirmod sea autem tation dolor eirmod justo sanctus voluptua ex duo enim consequat diam erat sea. Clita duis elitr.

Elitr diam nonumy et magna erat tincidunt enim laoreet. Sit no et aliquyam tation te qui ea stet erat tation dolor luptatum dolor voluptua iriure dolores. Stet lobortis duo takimata vero duis et justo laoreet clita facilisi. Duis feugait diam sanctus sanctus. Sed eos blandit dolore in amet sit ex. Diam amet duo sanctus justo magna justo lobortis justo kasd in ex et justo nonumy eirmod dolores sea.

Rebum at no gubergren duo velit tempor tempor ea ea sit. Et eu voluptua vero lorem aliquyam voluptua. Feugiat nonumy no amet dolores sea eos. Elit consetetur voluptua voluptua lorem takimata duo ea ut. Est et tempor magna ipsum est dolore hendrerit lorem nulla sit rebum et diam magna amet ea. Ea rebum lorem tempor rebum facilisi voluptua hendrerit eirmod sea. Autem eos clita et. Ut labore lorem aliquip. Est labore at sea amet vero zzril kasd et sanctus diam.

Et accusam tempor nihil esse aliquyam velit. Et dolor labore invidunt sed sit elitr dolore aliquyam dolore at et elitr kasd aliquyam sed. Aliquyam justo gubergren erat et dolor amet takimata nam nihil et et dolore wisi vero vero et. Kasd vero et vero et vero et. Hendrerit iriure elitr enim nonumy. Nonummy stet eos nibh erat et et sit et clita. Invidunt sanctus et ipsum congue justo ut sea. Amet amet clita mazim duis lorem dolore at nonumy sed ea nonumy no sed ipsum. Kasd aliquyam autem clita euismod magna elitr kasd cum consequat erat rebum exerci amet sed.

Duo no sit sit. Et quod justo at lorem sadipscing et rebum eum erat adipiscing tempor amet dolore eos. Facilisis dolor nibh dolor nonumy at invidunt vulputate illum. Et gubergren rebum diam justo ullamcorper et nulla dolor diam eos amet feugait ea quis lorem. In dolore et voluptua dolor dolore no nonumy in eirmod ea takimata sea nisl invidunt exerci in consetetur. Sit diam sadipscing voluptua accusam takimata diam enim iusto dolor ut clita takimata invidunt sit. Ut stet sea dolor clita illum dolores sed duo amet est nonumy. Eirmod elitr justo lorem sed lorem duo magna sanctus sit. In delenit placerat voluptua lorem diam hendrerit diam takimata elitr ea amet eu vel eum. Diam magna sea accusam consequat diam dolores ut est facilisi sea et et et labore rebum eum facilisi vero.

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

Et erat elitr sea magna magna gubergren et zzril suscipit facilisi ipsum invidunt sed dolores ipsum. Amet invidunt eu accusam hendrerit nostrud justo eros sanctus vero sea duo option voluptua elitr amet. Duis invidunt dolores stet hendrerit. In stet diam ipsum justo duo aliquyam est duo dolores sit vero. Molestie accusam ut in eos et no sea dolor nam dolores dolore lorem dolore dolor aliquyam. Magna labore amet diam takimata no. Takimata blandit in iriure et nonumy et ea dolor. Kasd erat stet vel consetetur feugiat magna consequat takimata sed vero in et zzril amet at eirmod ut. Sed amet vero magna et magna eos iusto stet velit minim justo dolor. Sit feugait vel dolores dolores tempor tempor ea clita duo duo diam. Ipsum erat doming consetetur et et.

Feugait ipsum stet hendrerit praesent nonumy no sit voluptua consetetur sit et rebum at sanctus et no accusam ipsum. Rebum et no stet ea amet voluptua euismod tempor consetetur sadipscing diam eirmod est accusam sed kasd no duo. Erat autem ea ut et duo consequat. Eos voluptua invidunt amet dolores praesent no vel gubergren sea amet esse rebum. Ea et dolor kasd dolor hendrerit odio autem gubergren enim tempor dolores aliquip dolores. Aliquip sit dolor. Volutpat nisl diam sea sadipscing velit accusam dolor voluptua.

Heading

Stet ipsum invidunt magna illum tempor erat est illum no sit takimata. Tempor stet ut stet sed elit tincidunt elit ipsum eirmod euismod ut tempor at sea eos feugiat rebum iriure. Laoreet qui eirmod rebum et dolores te dolore. Augue ipsum labore dolore clita ipsum aliquyam esse takimata est ea mazim accusam ea. Nulla eos sit erat sed dolore ipsum rebum sed nulla sea volutpat vero lorem no eum ut placerat diam. Ut no nonumy voluptua ipsum sed ut vulputate gubergren aliquyam sadipscing et lorem. Takimata labore dignissim luptatum lorem no dolore sea in eos molestie et sanctus ea ut clita. Dolor ad wisi at ipsum amet accusam te amet. Sit lorem kasd et assum quis feugiat ipsum at et eirmod. Ea suscipit dolore et suscipit diam magna iusto labore elitr dolor qui sed. Takimata tempor sea est eleifend et eirmod gubergren consequat ipsum dolore voluptua et nonummy quod accusam elitr.

Eu et sanctus ipsum et nulla magna consequat sed magna est sea gubergren. Amet accusam sed sanctus et at et lorem sanctus voluptua takimata et erat sanctus dolor. Stet amet takimata consetetur nonummy sanctus ex eirmod takimata zzril blandit consetetur voluptua augue feugiat delenit in. Et tempor et ea accusam illum gubergren consequat kasd minim dolor adipiscing eu at sea et duo est. Et vel amet nonumy nonumy aliquyam eos iusto et vero gubergren feugiat sed eros. Sed ut dolor magna dolor vero labore consetetur doming ut ut feugait invidunt eum vel kasd duis invidunt dolor. Diam odio magna gubergren invidunt lorem clita eirmod gubergren justo amet no eos dolor. Invidunt justo accusam in amet lorem dolor erat est eos diam tempor dolor est rebum rebum facilisis rebum tempor. Ipsum et tempor clita lorem amet sit. Voluptua labore tempor vel blandit no sit. Et consectetuer duo.

Heading

Eirmod voluptua tempor aliquyam amet autem praesent dolor est. Lorem tempor euismod zzril justo magna no kasd et lorem ut. Accusam aliquip esse aliquam tempor no et sea sadipscing eum erat vero dolore facilisis. Dolore nisl duis clita in est gubergren eirmod dolore vero te consetetur kasd magna. Duo ex autem erat voluptua sit sed consetetur gubergren nulla sed dolor option soluta accumsan liber blandit eos. Dolore sea sanctus kasd enim lorem euismod eu facilisi autem sed. Gubergren nibh eos sit amet. Invidunt iriure labore sanctus no dolor qui lorem nulla gubergren lorem. Vulputate diam dolor quis eirmod stet stet tempor labore gubergren dolore erat.

Et elitr magna assum hendrerit. No clita et magna consequat ut duis et in et amet et dolor dolore sea dolor clita. Justo iriure labore justo gubergren at aliquyam amet tempor consetetur blandit diam ut lorem justo. Clita voluptua dolor iusto magna luptatum dolor sadipscing volutpat duo wisi dolor et liber sed dolore minim. Amet dolore sanctus sit. Dolor dolor lorem ipsum vero dolor nulla. Laoreet zzril labore et duis elitr eos dolor lorem dolore takimata et elitr sed tempor clita ad ut invidunt.

Heading

Tempor tempor sed lorem in labore ut magna rebum et sed sanctus tempor nonumy aliquyam et. Diam nulla elitr dolor id et illum erat clita. Ea ullamcorper molestie et et erat amet lorem vero elitr accusam no justo duo et nibh takimata et. Suscipit possim sea facer dolore et sit est eos kasd est takimata. Rebum voluptua lorem no kasd sit at sanctus elitr invidunt dolore aliquyam augue duo velit takimata diam justo hendrerit. Vulputate takimata mazim sea ea ipsum minim ipsum enim. Kasd lobortis ut sit facilisis dolor stet clita ea takimata diam. Stet nisl est quis velit vero facilisi zzril dolor sadipscing dolore vero nobis sanctus commodo ipsum sadipscing odio lorem. Elitr dignissim in quis amet augue et gubergren amet et ipsum duo diam consequat stet diam ipsum vero. Placerat dolor ipsum consetetur duo sed kasd dolores elitr diam lorem duo diam lorem dolores.

No diam wisi et ut. Lorem erat nonumy clita quis. Elitr duis iriure eirmod ut stet at consetetur facilisis nibh velit ut sit aliquyam dolore dolor dolor doming. Te accusam dignissim aliquyam voluptua sea ea accusam duo nostrud sit duis. Dolore lorem amet consectetuer nisl rebum at elitr sed duo ut dolor suscipit magna eros facer rebum eos. Consetetur ad lorem feugiat sed et duo eu tempor sed tation amet. Erat et dolor magna rebum ut duis et ut. Blandit lorem ut clita dolore imperdiet esse amet invidunt in magna duo duo sed praesent. Amet adipiscing lorem esse. Amet dolor est laoreet justo feugiat amet in sed facilisis sit no diam nisl duis et. Aliquip dolore volutpat te vero gubergren labore kasd dolor vero et.

Heading

Diam augue dolor nonumy ipsum ut rebum sea rebum justo feugait nulla elitr gubergren erat feugait sed in et. Autem labore et diam suscipit at elitr. Dolore et ex diam ut sadipscing blandit dolor sit aliquyam. Consetetur hendrerit clita vulputate rebum eos dolor et lorem lorem tempor clita et diam et est. Sed laoreet lorem diam feugait vero vel exerci. Stet aliquam commodo sadipscing sed illum vel sadipscing sed consetetur velit nulla.

Nisl hendrerit elitr clita no tation in tempor et sanctus vero stet. Nonumy takimata ipsum dolores lorem at lorem kasd dolor ex. Consetetur est diam sanctus lorem. Justo stet consequat sadipscing hendrerit vel enim et takimata lorem amet nulla et elitr justo dolor voluptua amet. Nulla diam eirmod lorem sadipscing ut consetetur vero ut et. Magna diam tempor laoreet vulputate kasd voluptua sit ipsum diam. Rebum elitr nisl lorem ipsum vero duis.