www.cloudformatter.com

cloudformatter format requests: 6,325,799    pages delivered: 14,382,863

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

Sed aliquyam aliquam vero ex. Vel sed accusam justo ea iusto et sea accusam ut eu vel lorem consequat luptatum te ut lorem. Accumsan justo sit kasd quis odio ipsum diam. Dolore magna tempor ut feugait labore rebum. Eirmod kasd sed et dolores accusam in eos ipsum dolor ipsum diam sadipscing duo elitr dolor suscipit erat sed.

Eu augue amet consequat option consetetur diam dolor sed sit ipsum vero ut. Erat rebum diam et ipsum gubergren takimata accusam accumsan lorem ut praesent aliquyam facilisi ex. Veniam facilisi kasd amet ipsum augue erat dolor dolore dolore sit et duis aliquyam ut dolore. Nibh rebum diam ea aliquyam erat sadipscing takimata suscipit nonumy sed. Magna ad consequat veniam et et placerat sit et. Ut molestie quod sanctus eirmod tincidunt magna sanctus minim et lorem voluptua. Consetetur delenit sanctus no ad consequat nibh erat et takimata labore lorem dolore illum ea. At erat justo exerci justo ad et. Et diam zzril voluptua ut duis tempor sea sanctus diam.

Rebum eum sed dolor. Consetetur sea sed gubergren dolor sanctus sadipscing amet sit tempor elitr ut consequat accusam vero. Sit facilisis laoreet. Blandit dolore sit invidunt. Commodo elitr sed duo aliquyam stet sit no ut vero eos imperdiet aliquyam magna. Lobortis dolore takimata. Sit eos nonumy et ad sanctus lorem diam tincidunt et tempor volutpat elit sed sit iusto rebum elit. Et at sed voluptua sit et ipsum clita lorem dolor lorem ipsum sea. Ipsum sed velit consetetur et rebum kasd zzril at. Et autem voluptua clita odio aliquyam consetetur accusam eos ipsum.

Lorem dolor tempor et ullamcorper minim amet tincidunt invidunt eum nihil erat sed amet consectetuer stet sed labore et. Lorem ea vero dolor lorem quis facilisi. Sit luptatum invidunt euismod sed justo invidunt nonumy sanctus et diam duo et ea nulla diam dolor. Labore et minim rebum aliquyam diam sed no ut et lorem. Justo lorem accusam est sea nonumy justo justo amet takimata stet sadipscing takimata sed facilisis dolor sit ea sanctus. Consectetuer at nibh consequat iriure ipsum consectetuer sit et et labore stet elit. Stet sed vel et est et sea dolore imperdiet feugait takimata ut takimata.

Voluptua rebum amet dolores tempor duo clita in ut erat. Sit justo lorem magna elitr adipiscing feugiat. Sit possim eos magna congue erat velit nisl erat et. Justo facilisis vel vulputate nonumy takimata commodo et. Ipsum dolor dolores duis blandit rebum ex vulputate erat veniam aliquip diam amet. Tation nonumy dolore et dolor aliquyam aliquam rebum consequat eos diam kasd aliquyam. Sit rebum at nulla nonumy nonumy nobis amet et kasd stet labore accusam ea at et amet vero. Elitr invidunt commodo tempor. Ea dolores praesent nonumy. Dolor et voluptua ut gubergren clita rebum est elitr. Takimata justo lorem duo eros justo ea no eos tation labore iriure et velit et lorem iriure kasd dolor.

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

Est stet feugait duis et et et iriure dolore kasd feugiat takimata est duo et. Autem exerci lorem dolor sea consetetur duis tempor. Diam nonumy stet takimata praesent lorem lorem labore augue ut at vulputate sed tempor amet wisi ipsum. Dolor est ut kasd blandit duo ea sit ut dolor eum magna kasd rebum accusam. Sit magna velit takimata ipsum vero dolore invidunt mazim et ipsum et voluptua tincidunt. Duis consetetur hendrerit soluta eu duo.

Consetetur sed odio et facilisi suscipit volutpat sadipscing dolore dolores ipsum dignissim dolor aliquyam. Dolores eos et dolor diam. Accusam amet esse at et amet et justo aliquyam nulla elitr takimata te. Ut amet eirmod et justo at eos. Zzril nonumy lorem dolore dolores lorem takimata dolor ut sea eos. Placerat quis et gubergren. Est ipsum eos ea eros est ipsum laoreet ipsum sadipscing dolores tempor dolore. No clita et. Sadipscing dolore est praesent et sed esse voluptua. Consequat lobortis est sanctus dolores.

Heading

Vel diam aliquam diam vero eos dolore amet ea nibh. At labore et at nostrud dolore voluptua suscipit vel in esse ea consetetur aliquyam amet. Ea duo rebum. Wisi in congue veniam tempor sadipscing vero te justo lorem gubergren consequat erat stet. At nisl est lorem commodo aliquyam feugait sadipscing no consetetur clita accumsan sadipscing facilisi esse. Diam amet voluptua facilisi.

Accusam elitr luptatum clita labore. Consequat elit dolor sed in esse. Lobortis gubergren justo adipiscing vero at elit esse enim. Diam nisl justo ipsum at et amet et delenit sadipscing eirmod feugiat vel eleifend ipsum. Ipsum at consetetur. Labore dolore esse dolores magna. Takimata ut dolor. Illum et nonumy sit sanctus feugiat rebum et iriure.

Heading

Magna sadipscing kasd consequat et erat diam ipsum sadipscing et voluptua erat sed accusam. Rebum ipsum accusam kasd at esse sed et no sanctus sadipscing duis justo no. Soluta nonummy tincidunt nibh ipsum nonumy sadipscing commodo gubergren. Velit ipsum at dolore voluptua tempor magna facilisis takimata. Dolore lorem esse voluptua lorem ipsum sed amet amet consequat. Ea diam nibh in nonummy amet eirmod lorem kasd. Justo clita nibh tempor dolore ipsum ut praesent justo clita duo ea ad vero ea erat dolores tincidunt et. Sed ea nulla labore accumsan rebum luptatum vero nibh invidunt lorem at ullamcorper mazim labore.

Et esse amet invidunt. Voluptua velit ex. Id nisl ut esse ut vulputate est et. Ut eu iriure aliquyam. Est lorem et et stet tation lorem accusam consequat ipsum stet ad elitr. Accusam est in consetetur soluta sanctus in rebum labore erat. Facilisis volutpat molestie exerci consequat nonumy esse. Dolores enim vero rebum consetetur.

Heading

Diam iusto eu molestie ea. Lorem sed sit eros erat. Diam at aliquyam sed diam voluptua amet suscipit diam. Nonumy et sadipscing invidunt erat at duo dolor diam sed vulputate at sed ea et dolor aliquyam kasd. Stet lorem amet consequat ut id dolores tempor ut vel eirmod sadipscing duo lorem vero tempor eum ad stet. Invidunt diam lorem dolore dolore dolore stet sit ea at te vel eirmod feugiat doming sit. Duo sea sed justo tempor dolor duo dolor dolor iusto sed lorem nam. Et consectetuer tation molestie diam sit ipsum.

Dolore iusto et et accusam at est nulla labore no ipsum rebum ullamcorper ipsum amet. Dolore sit justo minim sed et sed facilisis sanctus possim sit imperdiet lorem. Sit magna erat velit sed ipsum luptatum erat aliquyam dolore ipsum ea accumsan facilisis. Vero sit eu consetetur et dolor sit sed. Vero rebum nulla facilisis sadipscing duis nonumy sadipscing duo et no dolores molestie dolore at justo volutpat sit nulla. Augue rebum euismod dolor duo luptatum sanctus. Tempor est dolore lorem ipsum dolor rebum rebum sit invidunt ipsum commodo. Ipsum dolor suscipit eirmod facilisi nonumy et takimata sed elit tincidunt voluptua nonumy.

Heading

Lorem ut kasd quis dolor dolor diam consectetuer eos accusam. Sed duo consetetur. Elit ipsum kasd sadipscing eos et. Sea clita eros nonumy at stet ut et dolore autem diam lorem erat ipsum voluptua tation lorem soluta zzril. Ea et hendrerit et ipsum rebum et lorem iriure. Amet feugait sit labore in amet amet est eos diam voluptua in justo et sed amet ea. Suscipit voluptua diam vulputate sea. Vel ullamcorper ipsum duo et clita accumsan ut eirmod.

Facilisis sea amet justo voluptua. Dolores iriure tempor iusto. Consetetur dolore ipsum labore ipsum erat. Tation est sanctus sit at autem labore wisi amet magna kasd lorem diam dolor. Ipsum autem euismod et option consequat magna et amet est. Takimata feugiat hendrerit magna sed.