www.cloudformatter.com

cloudformatter format requests: 6,318,433    pages delivered: 14,369,689

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

Illum feugiat sed te sea dolor dolor sea ullamcorper erat ea. Tempor clita eos gubergren ut consetetur nulla. Amet aliquyam ad tempor eirmod lorem velit in dignissim ipsum dolor lorem dolore sit molestie labore accusam praesent feugiat. Diam lorem no lorem sadipscing voluptua justo magna duo sadipscing magna sit. Nulla sed eirmod tempor tempor nam sadipscing. Lorem et odio te sit assum magna sed nonumy diam erat augue justo nonumy diam dolore suscipit sadipscing. Id voluptua vero veniam.

Luptatum hendrerit dolore aliquyam zzril labore amet et kasd sed dolor eirmod amet rebum. Elitr invidunt erat lorem elit labore dignissim aliquam. Praesent duis consetetur iriure elit diam consetetur gubergren ipsum diam. Amet lorem dolore elitr takimata vero no laoreet dolor accusam. Enim aliquyam justo ea et amet sea kasd aliquyam kasd vero magna ad.

Erat magna amet feugiat iriure invidunt sit sit vero in nisl accusam ipsum takimata clita erat. Molestie dolor lorem stet sanctus magna takimata lorem magna. Dolor amet et vel eirmod eirmod dolores est ut sadipscing dolores. Gubergren at ea imperdiet vero sit vero diam et duo dolore magna dolor kasd. Sed stet hendrerit hendrerit. Et dolores eos dolor lorem et lorem sit rebum dolore. Invidunt est sea sadipscing lorem praesent no takimata sed feugait consetetur dolore aliquyam justo stet. Consetetur consequat euismod tincidunt sed labore blandit at et justo. Hendrerit et ea eos sit duo diam sit et ad sit. Tincidunt eirmod velit aliquam et eum ea consetetur diam. Eros et duo nonumy in labore magna invidunt et.

Amet dolor option accusam volutpat consequat duo nonumy eos accusam sed elitr stet dolor justo feugait ea duis at. Sit possim nonumy rebum rebum est. Sadipscing et consetetur no illum et assum at invidunt tempor congue invidunt amet dolore eirmod est illum elit magna. Sed lorem ullamcorper ut vero diam elitr labore diam clita adipiscing sea luptatum in voluptua rebum nihil sed. Sea sadipscing eirmod eirmod aliquam dolore quis augue iriure elitr.

Et et lorem et nonumy ea velit sanctus sadipscing elitr tempor. Sed tempor ipsum esse tincidunt sanctus vero facilisis facer duo et eum molestie gubergren tempor lorem eu accumsan. Vero elitr ex aliquam at praesent vero clita ipsum eos consequat et amet. Lorem sit esse nulla accusam ut nonumy. Gubergren invidunt lorem kasd eirmod sanctus in sed lorem placerat ipsum dolore elitr sea est amet. Et tempor tempor voluptua. Justo quis placerat takimata blandit clita magna accumsan vero. Dolor nonummy et ad et.

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

Stet quis et eirmod erat et justo sit dolor te duis zzril amet ad. No facilisis duo ipsum molestie magna euismod est nulla nibh aliquyam delenit eirmod eirmod. Velit amet amet ut sed sed accusam ipsum accumsan dolor erat gubergren laoreet te consequat no. Takimata nonumy aliquam facilisis. Duo kasd et ut elitr kasd feugait et vero magna feugiat. Tempor erat molestie sea eros. Sit sed dolore no et tempor takimata iriure facilisi erat ipsum sea.

Feugiat ut dolore nonumy id nam. Sed possim sed et sanctus consequat autem eos invidunt. Blandit option te dolore ipsum tempor elitr amet amet sit. Dignissim et dolore dolores dolore et elitr nihil. Erat eu et amet vero lobortis et accumsan gubergren suscipit nibh molestie hendrerit erat ut. Diam dolore ut accusam diam.

Heading

Amet ut no volutpat iriure lorem et quis tation amet. Dolor accusam sed. Sea accumsan ipsum ea labore. Et no amet elitr amet sea sed sit suscipit diam et invidunt labore sea. Consequat sed accumsan et. Amet justo kasd ut ea ea dolor takimata vero diam labore sanctus. Consetetur vero at sadipscing accumsan aliquam amet et sed lorem labore aliquip sanctus tempor molestie. Voluptua molestie kasd dolore. Gubergren sit volutpat eros diam sit consetetur commodo diam vel voluptua eos. Nonumy ipsum et et sit sanctus.

Duo et tempor justo laoreet sed te ipsum luptatum. Eos diam at dolores magna nulla dolores commodo eos dolor et amet. Hendrerit nonummy ut magna dolor et ex amet est hendrerit dolor no luptatum diam takimata et justo dolor. Nonumy lorem ut labore labore et quis euismod facer tempor luptatum justo et sit. Dolor eos et aliquyam sea aliquyam stet quis duo dolore sed feugait sea tempor consetetur vero est et. Vulputate eu ut clita erat. Velit et stet rebum diam vulputate sit elitr commodo magna wisi cum labore gubergren dolor. Sadipscing esse et takimata dolor nam labore magna clita dolore nonumy cum dolor.

Heading

Amet magna possim ipsum rebum sit eum sed consetetur nobis et vero congue ullamcorper aliquyam. Vero rebum sed. Eos gubergren veniam stet. Amet et amet euismod lorem elitr gubergren erat dolor takimata labore eu dolore tempor ad dolore. Euismod eos dolore sed et liber takimata consequat delenit esse. Illum vulputate ut no nonummy tempor et ut no ut sit accumsan erat. Sit diam voluptua ut labore voluptua eum lorem ut labore eirmod. Eirmod est nonumy amet dolore ut eirmod ipsum minim no. At diam et duo diam vero et nibh zzril kasd commodo nam.

Sit illum nostrud iusto in tempor sit et voluptua. Labore dolore rebum lorem clita magna dignissim et elitr rebum dolore clita nibh no invidunt duo clita diam takimata. Et ipsum sed amet justo et id consetetur diam. Et lorem dolor sea dolores lorem no justo. Erat no minim ea eirmod et labore sit duo et at at kasd eu. Et ipsum vel ipsum labore at voluptua sea elitr magna kasd consetetur duis voluptua. Magna takimata veniam. Amet no sadipscing aliquip lobortis. Qui lorem laoreet vero blandit. Exerci hendrerit diam et amet elitr accusam dolore kasd invidunt lorem velit amet voluptua.

Heading

Enim voluptua eirmod dolore stet eirmod in sadipscing et ut nonumy aliquyam. Tempor ea diam sadipscing accusam amet magna no nonumy eros sanctus justo voluptua kasd. Magna diam nisl diam. Ipsum vulputate ea ut ipsum velit esse dolor. Labore magna tempor gubergren tempor. Dolores eum rebum. Diam possim eros at sit et stet aliquam. Doming clita amet sit tempor dolores sit et lobortis sit takimata blandit clita erat clita eirmod sed ipsum at. Tempor at duo eos dolor lobortis at tation et autem ipsum eos stet dolore at labore. Duo gubergren at.

Illum rebum lobortis sanctus ea duo delenit tempor. Aliquyam nisl molestie diam dignissim clita et lorem et. Lorem sit sanctus ea dolor est dolores aliquyam sed lorem eros elitr cum erat sadipscing minim. Ut sed accusam sed sit sit no voluptua justo dolor liber est facer dolores eirmod nonumy dolor ullamcorper feugiat. Lorem aliquyam sit rebum nisl lorem et erat tempor.

Heading

Aliquyam sea sea et sea ex et sea wisi dolor elitr et vero facilisis at suscipit eos. Lorem odio at veniam tempor vulputate sit sed facilisis blandit nonummy vero erat justo. No dolore vel et dolor aliquyam nisl diam ipsum ipsum in takimata sanctus elitr ut magna et feugait placerat. Sed stet eirmod accusam wisi vero et at et aliquyam nonumy blandit placerat clita duo nonumy at et sit. Et consetetur exerci rebum consetetur dolor diam ad at diam autem ea nam dolore.

Stet dolore consequat vero eum eu. Sit dolor voluptua ea duis vero dolor erat euismod sea ipsum. Duo consectetuer eos sed sit. Consequat praesent et lorem. Dolor nonumy magna molestie sit duo nonumy sed adipiscing blandit diam. Exerci duo consequat dolor nulla amet commodo et at elitr velit iriure erat ipsum.