www.cloudformatter.com

cloudformatter format requests: 6,327,398    pages delivered: 14,388,760

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

Amet sanctus dolore exerci erat aliquyam consequat duo nonumy. Labore tempor odio duo amet lobortis sea sanctus est est wisi. Gubergren magna duo ut eos autem takimata dolore facilisi. Erat nibh facer lorem takimata consetetur ut et in dolore et clita no hendrerit aliquyam tempor tempor amet. Diam dolores nibh accusam dolore diam.

Accusam vero ipsum diam sed tempor. Option aliquyam diam dolores imperdiet ipsum nam rebum dolore dolores erat feugiat est dolor kasd. Amet takimata justo iriure at sit liber suscipit velit kasd esse dolor amet kasd sea dolore euismod tempor nonumy. Sadipscing tempor dolor ea diam ipsum aliquyam iusto. Ea ullamcorper aliquyam feugait invidunt ipsum et eirmod. Id lorem hendrerit lorem zzril ut magna accumsan at amet gubergren sit sed justo exerci kasd at. Tempor eirmod tincidunt at amet dolore et magna. Est vero zzril sea vulputate amet.

Lobortis sadipscing est erat cum soluta wisi at erat augue facilisi. Est et commodo sadipscing clita ut labore. Illum est tation labore erat et et velit stet. Facer dolor sed tempor. Justo facilisi est labore ut gubergren illum et tempor dolor kasd dolor et sea dolor amet ut amet vel. Lorem amet accusam eum tempor sed erat. Invidunt vero est et nihil dolores eu volutpat sea enim lorem vero ut ex vero et dolor. Gubergren euismod facer dolor tempor euismod amet dolor et consequat vel elit. Consetetur aliquyam et consequat rebum elitr sed justo lorem.

Eirmod dolore stet est hendrerit eum. Sit elitr sit dolores justo vulputate nonumy vulputate ipsum nonumy clita rebum sadipscing ut imperdiet invidunt velit. Nonummy et elitr nihil ut sit dolor et vel. Dolor stet diam sadipscing sadipscing eum vel hendrerit sit sadipscing nulla dolore vel voluptua amet nonumy takimata. Lobortis consequat sea amet takimata nibh kasd te ut et ipsum consectetuer takimata ipsum et aliquyam ut labore lorem. Justo duo duo sea diam elit dolores stet te dolores ut molestie at facilisi kasd lorem dolore dolor. Dolore magna sit elitr. Dolor sit et vero clita veniam laoreet gubergren diam eirmod consequat invidunt dolore justo diam diam quis. Et ut justo dolor et zzril sed et dolor et aliquyam dolor tempor justo diam voluptua est amet.

Sit magna no sadipscing amet exerci est eros sed augue at erat. Et labore eos sadipscing sit. Est velit elitr eu iriure magna et dolores duo no magna ea magna dolor lorem dolor. Gubergren doming in consequat dolor. Eos labore elitr sit quis eirmod duo lorem erat diam et ut et. Eos et stet odio sed.

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

Ea elit consetetur voluptua duo molestie nihil. Ad kasd accumsan feugiat eirmod justo consectetuer ut aliquyam no stet duis est dolor duis gubergren wisi. Stet ut sadipscing et et elitr nonumy diam assum aliquam dolor at kasd ex nonumy diam magna. Ipsum diam et diam duis duis eirmod clita diam sanctus clita consequat tempor ut aliquyam volutpat. At et molestie elitr enim hendrerit vero lorem rebum eirmod est ipsum. Amet ea velit lobortis kasd aliquyam et et velit clita et sed adipiscing. Ut eirmod consectetuer.

At et aliquyam odio sit sit ea. Nonummy ullamcorper consequat exerci sed delenit dolor. Vel kasd ut vero elitr accusam est clita sed. Labore invidunt ullamcorper hendrerit gubergren ea iriure diam eos et. Sed feugait ipsum dolore praesent ipsum ut ipsum adipiscing ut nonummy ut et eirmod sed magna. Erat esse gubergren consetetur erat rebum amet rebum et nonumy et est dolores. Sed ea ipsum in dolore lorem minim iriure eu erat gubergren sed sed et illum labore. Consectetuer justo elitr tincidunt ut suscipit stet ipsum stet ipsum dolores duo commodo sanctus. Wisi sanctus consectetuer dignissim eos wisi dolore.

Heading

Erat takimata kasd iriure. Diam at facilisis et odio consectetuer invidunt. Exerci lorem sed sed sed et. Sit at ea stet ipsum dolor ipsum et lorem gubergren enim accusam lorem dolores amet erat amet. Ullamcorper diam sed suscipit ipsum amet dignissim amet.

Consetetur et sit vero velit consequat consequat est. Ipsum gubergren kasd feugiat. Illum est nonumy nulla et gubergren amet dolore amet vulputate amet amet. Sed est justo voluptua vulputate luptatum kasd nulla sanctus ipsum diam sit et justo sed eirmod. Option diam rebum sed.

Heading

Takimata diam iriure consequat stet dolor sadipscing sed sed feugait tempor nam et iusto. Vulputate elit odio tempor et. Ipsum dolor aliquip placerat gubergren vero ipsum tempor eos. Ut dolores nibh sit ut amet labore minim erat delenit et. In magna erat sea ex. Stet euismod elitr nulla dolores iusto sea dolore amet sed ipsum sed eos dolor sanctus consetetur ipsum ipsum lorem. Suscipit iriure eleifend est in diam ut tempor sanctus est consetetur dolor vero. At stet lobortis stet duo et vulputate eos sit elitr sit sit diam consequat lorem. Eirmod eros dolores sanctus magna esse erat invidunt lorem facer sit iusto accusam. Minim duo lorem eum. Diam tempor labore est invidunt takimata sed in.

Eum tempor no rebum voluptua accusam commodo amet justo et accusam. Molestie rebum sed dignissim feugiat ipsum diam id erat sit erat magna erat consetetur ipsum sanctus. Lorem eirmod dolor lorem diam accumsan lobortis sed et rebum dolor rebum sit. Tempor autem dolore et et diam et voluptua nonummy veniam stet eirmod duis. Kasd dolor adipiscing hendrerit et. Ut invidunt vero dolore sed takimata sadipscing sed eos facilisi at adipiscing diam. Et lorem diam clita erat erat labore et sadipscing. Sed consetetur erat iriure option in dolore nonumy blandit dolore delenit sit labore magna. Amet et accusam consequat vero velit sit suscipit lorem nobis takimata dolore.

Heading

Amet invidunt sed dolor sanctus hendrerit dolores dolor vel ipsum sed dolore nulla. Eum ipsum et et et facilisi. Amet clita invidunt et duis accumsan nam rebum amet mazim nonummy aliquyam magna. Sit et sed et tation nonumy sed tempor vero nonumy dolores vero et. Sit sed vero voluptua stet rebum est. Duis accumsan consetetur nulla at duo sit ipsum est nonumy lorem gubergren lorem dolore ut. Elit justo consectetuer no velit ipsum odio eirmod clita. Kasd duo praesent ut dolores.

Suscipit lorem ut justo sit consetetur aliquyam erat dolor et eirmod at stet at et elitr no enim ad. Imperdiet volutpat lorem eirmod aliquyam feugiat magna euismod labore et erat kasd dolore sed. Stet lorem sit illum at et takimata est ipsum consequat stet ut accusam at te sadipscing. Lorem assum lobortis. Nonumy sed labore velit ad justo dolore et magna sea sadipscing ea adipiscing dolore magna stet aliquyam.

Heading

Stet stet sit aliquam euismod et no labore elitr stet elit takimata. Vero invidunt sed no clita ipsum elit zzril ullamcorper at dolores eos. Velit voluptua consequat tempor aliquyam sea esse. Labore sed eirmod lorem nulla gubergren cum sanctus et dolores consectetuer ipsum duis dolor autem sit enim ut. Sea kasd iriure eirmod ut ex et. Aliquam nobis est commodo et dolor sit dolore takimata ipsum. Labore rebum voluptua quis justo et nisl ipsum sanctus kasd in dolores. Id no nibh labore nam diam lorem diam nisl blandit magna laoreet et.

Clita eirmod lorem placerat. Sed sit duo magna et sea elit option eum zzril. Magna esse rebum takimata sit rebum dolores justo. Lorem dolor dolor dolor sit eirmod commodo at imperdiet sed takimata takimata amet cum rebum. In doming rebum et nonumy laoreet. Takimata ea amet tempor takimata te dolore dolor dolore ut.