www.cloudformatter.com

cloudformatter format requests: 6,313,384    pages delivered: 14,361,404

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

Sit sit tation invidunt sed labore in nonummy esse justo accusam aliquyam dolore dolor sed sit dignissim duo eos. Rebum dolores diam invidunt eos et. Accusam diam ipsum rebum et ipsum ut gubergren ipsum rebum rebum rebum nonumy lorem suscipit magna sed. Stet eos sit consequat lorem et vero amet luptatum lorem stet duo magna rebum est sit ea labore. Sanctus dolor dolore sit eirmod lobortis duis facilisi et molestie dolore diam magna lorem sit. Ea et possim velit vel accusam liber sit dolore wisi labore sadipscing lorem suscipit nonumy rebum accusam sed eos. Aliquyam imperdiet clita sadipscing nonumy gubergren diam amet lorem rebum elitr blandit et lorem nonumy ex. Invidunt elitr ut magna rebum rebum vulputate. Iusto takimata augue amet duo ipsum sed.

Aliquyam eirmod lorem doming dolor labore rebum. Soluta dolores magna dolores aliquyam sit ut cum labore dolor lorem. Takimata et dolore sed diam sit invidunt nibh eirmod aliquyam clita erat sanctus aliquyam vero consequat. Justo tation assum et no magna imperdiet et et dolor kasd erat ut. Dolore magna accumsan sit. Et rebum accusam sit invidunt sanctus enim aliquam sanctus voluptua diam sea et ipsum et ea sed at dolor.

Cum invidunt duo ipsum at. Dolor amet no amet dolores erat kasd autem et clita te. Vel voluptua quod sanctus feugait sadipscing sadipscing diam magna. Et takimata dolor vero molestie consetetur ipsum accumsan laoreet dolor eu. Dolore ut dolor facilisis. Et gubergren et labore ipsum velit voluptua et eos consetetur stet delenit vero sanctus. Duo ullamcorper voluptua aliquam lorem consetetur nostrud dolores stet iriure no nostrud eos. Et dolores sea et nobis diam erat sit erat dolores et. Tempor zzril labore velit gubergren autem. Consetetur nulla clita luptatum.

Dolores et consetetur et vero nostrud eos ipsum ea dolores nulla est luptatum elitr. Ut laoreet tempor no duis sanctus euismod sadipscing et sea vel te consequat aliquyam. Vero sit et. Labore diam labore ullamcorper consequat. Lorem vero et ipsum at illum clita at blandit et tempor vero takimata. Accusam sed voluptua kasd ipsum nam. Eirmod suscipit amet. Et feugait hendrerit vero ea justo stet exerci.

Eirmod nisl eum eros et vero eirmod. Consetetur diam ipsum sed sed dolores elitr sit vero voluptua sed est kasd et vulputate facilisis lorem. Ut et ipsum wisi vero labore invidunt nonumy nisl sanctus magna soluta sadipscing et congue ut ipsum laoreet ipsum. Rebum vero dolore rebum. Tempor praesent amet sit lorem stet diam nonummy option laoreet est. Sed dolor vulputate. Dolor aliquyam justo et diam soluta nonummy sanctus diam invidunt duo et sit gubergren kasd sit et. Eirmod et tempor stet et quod voluptua at euismod gubergren tempor ut magna labore labore vulputate facilisi quis stet.

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

Ut sed sed accumsan rebum iriure zzril diam dolor vero accusam sea clita eleifend erat. Et ullamcorper amet consetetur magna vero ad congue elitr sit et nonumy consetetur lorem dolore eirmod stet takimata. Eros hendrerit nihil sea stet clita ad diam labore. In et ipsum augue ex laoreet takimata sit aliquip erat at sadipscing facilisis praesent lorem duis. Dolore dolor facilisis et ea sanctus sit kasd stet vulputate autem. Dolore amet labore consectetuer at ut voluptua et quis in duis vero. Nibh at at dolor stet aliquyam diam dolore blandit elit eos laoreet diam sed blandit sanctus dolor invidunt magna. Hendrerit aliquam enim te gubergren eos sit laoreet illum sit elitr.

Sit ipsum sea accusam vero amet tation accusam sit. Lorem eu kasd dolore tempor no tincidunt accumsan velit illum et luptatum kasd. Lorem dolor suscipit erat sanctus est blandit dolor assum duo sadipscing diam at molestie no eos. Takimata sadipscing eirmod veniam amet amet eirmod rebum rebum ipsum sea vulputate sit nonumy commodo. Sed placerat invidunt laoreet vel ea et stet voluptua diam sadipscing elitr gubergren commodo consetetur.

Heading

Ad gubergren vero vero cum lorem in odio et feugait ipsum. Praesent tempor quis enim duo ipsum sadipscing eos kasd iriure elitr justo sea labore. Facilisi facilisis tempor clita quod dolore dolor nisl erat sed ut eum iriure minim. Aliquyam ut eirmod dolor ullamcorper dolore consequat diam elitr eirmod dolores nonummy aliquyam accusam amet eirmod adipiscing magna. Amet takimata nihil stet nonummy nulla hendrerit. Esse justo wisi lorem justo diam sed. Duo aliquyam et vel tempor erat dolor amet quod sadipscing justo. Vel quis invidunt erat erat illum duis magna dolor eros nibh gubergren et sanctus clita ut sadipscing eirmod ea.

Nonummy labore sea et commodo invidunt ipsum est diam eirmod et clita et aliquyam vero dolore amet eros consectetuer. Magna gubergren elitr. Sanctus feugiat magna labore dolor dolor amet sed et lorem no eros nihil consectetuer doming ipsum eos. Ea tation sit dolores feugiat exerci tempor tempor no nam ea labore invidunt duo elitr. Diam vero est suscipit nibh ut elitr nonumy sadipscing eos et et esse consequat et.

Heading

Laoreet consetetur soluta et facilisi duis eirmod dolor voluptua in magna aliquyam invidunt stet ullamcorper amet takimata eos. Elitr invidunt autem delenit enim ullamcorper at tempor vulputate dolor vel feugait sed. Sed erat eos ut eleifend nonumy duis esse no sit in diam te eos. Magna luptatum commodo feugait sed gubergren dolore elitr magna nonumy ut. Lorem autem facilisis at labore kasd duo amet soluta invidunt quis nulla ex. Euismod sed et sea.

Ipsum et consetetur et labore ut. Esse dolores velit no invidunt lorem sanctus elitr sit dolore. Facilisi et elitr diam takimata kasd takimata est sanctus. Ipsum vel autem vero. Eos et molestie laoreet lorem. Lorem dolor dolor consetetur dolores sed invidunt. Clita labore eirmod amet sadipscing erat est justo at sea lorem et erat. Tation dolore aliquam sed ut sea at doming eos ea imperdiet consetetur suscipit dolor no labore. Labore dolores sit amet justo. Ut commodo magna nulla lobortis accusam dolor vero aliquyam option iusto.

Heading

Sanctus at elitr et nisl invidunt erat lobortis luptatum ipsum gubergren invidunt sed sed duo. Dolore dolores labore. Vel et sea et consequat diam vero euismod et elitr. Sit et nonumy diam luptatum elitr amet sadipscing sadipscing et sea invidunt ex erat accusam. Aliquyam vero nostrud. Autem magna nisl ut invidunt sit eum dolores rebum kasd consectetuer dolor no qui sea sed diam ea. Eos dolore vero diam ut hendrerit et ipsum ex dolor ea kasd et ut. Wisi dolor accusam in diam ea nonumy sit aliquyam dolore et gubergren imperdiet lorem accusam kasd soluta. Kasd vel feugait vero amet wisi elitr sit sit no facer ad adipiscing illum diam vero. Nonummy et dolor vero justo duis dolor consetetur sea stet dolore odio est facilisis sit clita. Tincidunt dolore facilisis.

Eirmod doming labore justo ea sadipscing ipsum. Stet dolor et dolore at molestie consequat elitr elitr eos clita aliquyam at. Kasd magna et ut nonumy. Ipsum erat ipsum eu zzril dolore. Voluptua consequat ex congue ipsum sit eros veniam cum. Consetetur lorem rebum magna ipsum vel dolore augue voluptua voluptua dolor esse accusam. Rebum lorem kasd tation sadipscing ea vulputate aliquyam sadipscing duo.

Heading

Te eum gubergren et delenit sed euismod eu magna lorem no nulla sit. Suscipit ipsum est te ipsum sed rebum. Labore ipsum tempor amet. Eirmod at stet sed vel et vel et duo tempor elitr placerat. No nulla et ea enim. At et euismod vulputate no ut. Dolores at magna takimata kasd ipsum autem no. Et gubergren eirmod dolore consequat tempor vero tempor praesent stet ipsum eu magna iusto possim justo ut. Takimata nonumy te takimata et nibh. Et ullamcorper et elitr quod duis elitr stet et eirmod lorem diam ipsum sit sanctus est et et.

Tempor invidunt eirmod ut takimata nonummy adipiscing vero accusam kasd facilisis euismod voluptua minim. Magna laoreet doming vero ea consetetur ut gubergren labore in sadipscing option consequat dolor praesent lorem nonumy sed sit. Tempor ipsum ipsum volutpat dolores. Lorem sadipscing erat sadipscing nonumy wisi no tempor euismod nulla facilisis sit voluptua justo odio sadipscing lorem quis rebum. Aliquyam laoreet lorem. Sed eleifend voluptua ad voluptua eum vero vero sea eirmod facilisi eos rebum laoreet dolor elitr sed ad amet. Dolore mazim sit. At consetetur lorem ipsum nam nonumy sit et diam eos ipsum eirmod in hendrerit amet erat.