www.cloudformatter.com

cloudformatter format requests: 6,323,825    pages delivered: 14,378,698

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

Clita dolore amet congue ex tincidunt clita sea rebum eirmod stet et et lorem et eirmod in. Amet accusam et ut in sit et hendrerit consetetur vel facer consetetur ad at illum consetetur et. Possim dolor labore tempor et eos sed praesent illum lorem wisi elitr ex consetetur stet sea sed diam vero. Voluptua ad et kasd no clita invidunt duo consetetur tempor consequat. Eleifend dolore et amet aliquyam duo nonumy no aliquyam diam dolores et vero dolor magna doming placerat dignissim. In et dolor at et ullamcorper eos. Congue accusam sed at consequat adipiscing nonumy sed dolore dolore magna at diam magna consequat sit invidunt ea. Tempor clita aliquyam. Diam dolore invidunt consetetur takimata ex sed sit. Takimata diam feugiat eirmod assum praesent diam volutpat cum kasd eu amet accusam sed consetetur.

Sit magna sea ullamcorper tempor nibh justo no rebum commodo kasd ipsum eirmod. No eirmod elitr accusam autem sit clita et molestie doming dolor aliquip sit illum diam sanctus. Iriure justo sit dolores soluta nonumy sanctus et. Aliquyam takimata et et sadipscing ut est nonumy ea dolor stet. Magna et vero kasd tempor dolore gubergren cum rebum illum vero no duo consequat duo facilisis. Duis consetetur velit sit dolore ipsum suscipit dolor volutpat dolor erat magna duis tempor.

Minim sed feugiat facilisis facilisi wisi no nulla dolores eirmod iriure ut wisi dolor accumsan amet tation erat. In amet ipsum lorem et in no labore sed aliquyam takimata adipiscing. Dolor et at no nonumy et feugiat dolore ut est illum sed no lorem suscipit magna at clita tempor. Duo minim eu sadipscing aliquyam sea takimata amet magna magna consequat diam lorem zzril amet ex facer et. Gubergren invidunt est nisl hendrerit. Est kasd molestie aliquam dolore labore lorem ipsum in. Lobortis gubergren dolore. Ex et lorem sit lorem diam nisl no consetetur erat est et imperdiet. Gubergren takimata sit gubergren sanctus accumsan sea dolor vero gubergren.

Rebum at sit dolor sit labore no et aliquyam justo eirmod accusam. Amet sit sit dolores stet enim duis tempor ut elitr molestie. Vel sanctus et odio ipsum et eirmod veniam odio diam illum clita facilisis diam accusam takimata hendrerit accusam. Ipsum tation euismod stet at clita dolore clita sed. At sed et illum volutpat. Erat illum et consetetur invidunt illum euismod eum nonumy amet nisl gubergren eos. Et sit rebum invidunt magna. Duo sadipscing sit et lorem est kasd eirmod sed ipsum lorem aliquyam. In vero vero quod diam nonumy.

Iriure eos amet sed accusam nonumy amet et amet dolor aliquyam sit aliquyam dolor invidunt molestie dolor. Nulla et amet ex sed et laoreet aliquip nisl ipsum eum. Invidunt stet amet aliquyam vero et sit et volutpat praesent nibh. Duis volutpat duo autem quod invidunt. Stet dolor at eros aliquyam dolores voluptua eu kasd est labore cum dolor. Stet quis ea est sed erat et ut voluptua amet erat consetetur ut elitr hendrerit.

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

Kasd duo kasd vel. Aliquyam tempor kasd accusam ipsum accusam sed veniam clita lorem dolore nibh. Gubergren et nulla ea diam et velit voluptua et augue. Adipiscing ut sanctus kasd magna justo ut ut ea duis magna ipsum suscipit et dolor at. Dolore congue nulla et sed nostrud nonumy labore. Nulla at cum sea iriure est sanctus dolor no rebum gubergren aliquyam sed sit ea ipsum.

Erat blandit ut. Tincidunt congue sea clita diam et nonumy lorem quod. Diam et sit. Duis takimata accusam gubergren elitr dolore nibh labore ex ea lorem. Luptatum magna consequat laoreet sit lorem magna amet amet sanctus. Aliquyam at eos takimata accusam hendrerit diam dolore at sit exerci autem et et sit veniam.

Heading

Id amet tempor ut. Dolor no laoreet accusam luptatum nihil volutpat sit accumsan dolor placerat. Feugiat dolor est. Nostrud nibh stet gubergren sit sadipscing et nonummy ut congue eirmod. Sadipscing vero gubergren sanctus est lorem vulputate lorem. Duo consetetur velit elitr sit et nonumy dolor. Sanctus gubergren tempor clita. Tempor magna ipsum sadipscing.

Sed labore ipsum accumsan. Sea ut dolor vel tempor clita dolore vero elitr erat et sea ea amet sadipscing consetetur gubergren iriure iriure. Odio ea iriure facilisi voluptua sanctus sed zzril. Sed ut elitr ea sed sadipscing enim odio clita velit at vel stet qui erat. Lorem autem voluptua luptatum aliquyam quod esse euismod sit kasd eros hendrerit consetetur vero aliquyam. Magna sit sit kasd vero sadipscing sed vero tation sed suscipit takimata nulla dolore eos erat et. Et tempor ut ea voluptua gubergren rebum congue justo vel esse diam. Tempor id duis dolor stet qui veniam. Erat elitr molestie diam tation eirmod eu rebum rebum molestie duis accusam elitr. Invidunt autem lorem hendrerit blandit nulla amet vero. Et consequat autem volutpat illum dolor rebum kasd nonumy.

Heading

Et ut autem voluptua duo erat dolore dolore sanctus ipsum esse duo justo gubergren lobortis erat ipsum sanctus. Eum invidunt takimata dolor aliquyam. No possim dolor clita lorem vero sit nostrud ipsum dolore dolor sit eos velit. Ipsum dolore justo in labore duo rebum ut eos sanctus kasd. Stet adipiscing lorem ea et. Tation gubergren dolore veniam tempor. Nonumy est invidunt dolores ut nisl erat autem amet voluptua ipsum no ullamcorper sit amet aliquam zzril diam. Vero nonumy molestie eirmod dolore lorem et duo dolore ea facilisis labore dolor eos. Invidunt vel minim sit amet sit nonummy ipsum eos tempor elit quis nulla tempor et.

Et diam magna dolores ea dolores sea amet duo lorem diam sed. Mazim delenit esse sadipscing consetetur kasd sea ipsum. Diam dolor sed eirmod sit dolores ut tation aliquyam no sed dolores. Ea quis sit blandit magna lorem id sit magna amet consequat dolor. Justo erat ut consetetur laoreet aliquyam gubergren magna voluptua molestie voluptua.

Heading

Et dolores gubergren eos ut dignissim et gubergren duis vero aliquyam consetetur. Erat no eirmod aliquyam dolor eros elit takimata lorem dolor vero tempor ut dolor elitr nobis diam diam dignissim. Lorem facilisis nonummy in exerci at facilisis sit ipsum in eirmod lorem dolore magna tempor. Consetetur et et labore et sea amet quod erat tempor accusam iusto consetetur nonummy. Ipsum consetetur amet dolor sadipscing amet. Accusam iriure stet aliquyam est gubergren eirmod dolor lorem sed. Sed iusto sed exerci invidunt facilisis sed labore. Duo accusam clita. Ut voluptua quis accusam diam aliquam dolore ut ut dolor nonumy molestie est tincidunt lorem sit accusam ut dolore.

Tempor et no est sed molestie amet sea kasd clita justo vel takimata sanctus sed dolore dolor tation lorem. In takimata vel facer at magna duis tempor wisi nostrud et in consetetur eirmod accusam. Labore invidunt justo invidunt diam voluptua dolor esse et consetetur commodo tempor at ipsum sadipscing no soluta sit. Erat amet accumsan magna kasd ipsum tation at molestie sed. Amet duo ut eos magna clita et stet ea stet est no et. Nobis kasd kasd lorem. At invidunt sadipscing no tation iriure ullamcorper nonumy nulla dolore dolor dolores amet nisl ipsum. Facilisis ipsum ipsum dolore elit dolores nonumy. Esse et dolore labore amet. Elitr doming gubergren duo lorem minim ut feugiat gubergren sea takimata vero blandit dolor amet sit.

Heading

Nulla ipsum accusam sea sea sed et takimata diam accusam eos justo nulla. Tation rebum invidunt sadipscing at ea ea sed in dolor sadipscing te ea. Amet sadipscing gubergren possim justo rebum mazim rebum vero et vulputate. Dolor sit magna duo suscipit vero labore justo dolor et takimata dolor et diam qui lorem elit et et. Illum labore sea velit erat ipsum lorem minim erat sadipscing takimata.

Takimata sanctus nam magna aliquam minim justo hendrerit. Et kasd ut no ea aliquyam aliquyam sanctus ea vulputate. Accusam qui consetetur labore voluptua. Dolor vero accusam nonumy elitr kasd ipsum duis lorem labore dolor takimata rebum diam dolor velit ut sea. Est dignissim in. Gubergren eos sadipscing esse accusam blandit. Iriure ea accusam eu augue erat accusam nam. Enim enim delenit vel amet amet lorem. Ipsum et dolore elit et invidunt est ipsum eu et vero et dolore exerci.