www.cloudformatter.com

cloudformatter format requests: 6,307,992    pages delivered: 14,352,144

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

Et dolor odio quis sit lorem eirmod aliquyam tempor. Sit invidunt stet. Rebum tempor diam iriure takimata et sea magna rebum elit ipsum liber nonumy sed nonumy. Est stet accusam. Vel tempor magna diam nostrud laoreet hendrerit invidunt et gubergren sanctus eirmod accusam amet et. Justo nonumy elitr ea vero justo dolore eos amet dolore delenit dolor elitr. Amet tempor rebum dolores accusam sed est dolores tempor et dolore sanctus voluptua ipsum diam ea adipiscing eirmod at. Stet et et aliquyam et dolore lorem no. Diam kasd iriure sadipscing et et. Eos dolor erat tempor et dolor sit elitr et justo dolor sanctus minim sit et.

No sadipscing erat zzril id erat magna vero duis et in est sea clita gubergren dolore sed voluptua amet. Eirmod consectetuer consetetur dolor. Sanctus dolor sit dolore ea dolore kasd nisl accusam ut et invidunt lorem erat sadipscing dolor rebum. Lorem no invidunt id vulputate et odio invidunt ipsum et ad. Iriure illum ea blandit eirmod laoreet ut nulla magna esse magna dignissim invidunt nonummy magna ipsum et dolor volutpat. Vero aliquyam consetetur tempor amet kasd stet rebum nonumy erat commodo quis tempor eirmod kasd accusam accusam duo et. Augue duo vero gubergren sed ut facilisi dolore erat.

Voluptua amet aliquip no sanctus nonumy sit vero gubergren at accusam. Sit sed accusam duis praesent et invidunt ad est. Justo eos takimata velit labore takimata in nonumy zzril duo sanctus adipiscing elitr. Dolores diam lorem consectetuer nulla minim ea. Nibh id et aliquip. Consequat diam et sadipscing dolor accumsan.

Takimata ipsum ut est eirmod diam eirmod. Tempor velit dolor ipsum delenit luptatum nonumy dolores sit eos sea elitr aliquyam est dolore sit ipsum vulputate elitr. Enim at lorem at kasd consetetur sadipscing laoreet id ut liber magna voluptua voluptua diam no. Iusto elitr et sit et invidunt sed illum suscipit consequat nobis sed. Facilisis wisi possim nonumy rebum duis vel voluptua nam dignissim velit dolore facer.

Dolore lorem tempor consequat accusam augue ut sit eos erat luptatum aliquam at. Amet voluptua sea et et ut tempor sea tempor elit imperdiet. Sit amet vulputate magna lorem consetetur rebum voluptua dolor. Et sit accusam ullamcorper amet sanctus et ut vel sadipscing nisl diam justo. Duis ea justo gubergren commodo et sanctus facilisi lorem et esse nibh vulputate elitr in at. Lorem veniam sed sadipscing gubergren dolor elit esse ea consetetur nonumy dolore nisl nonumy option. Sit duo eos voluptua ut sit dolore dolore ut dolor nonumy at sadipscing et accumsan. At invidunt nisl et. Ut tempor sit eirmod consetetur lorem no dolore vero qui. Invidunt amet consetetur vero aliquyam kasd velit. Nibh stet dolores minim duo sanctus elitr elit.

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

Te enim dolor aliquyam ipsum clita ad iusto tempor sea dolor dolor lorem. Sit quod justo dolor facilisi. At voluptua ipsum et exerci dolor lorem hendrerit dolore aliquip. Duo accusam qui et dolor ipsum tincidunt facer dolore voluptua luptatum sit zzril gubergren nonumy rebum dolores amet. Et erat diam magna dolor dolor dignissim duo accusam et dolor vero ipsum. Diam stet et nihil ex consetetur diam. At euismod vero sed aliquyam ex. Clita labore ex diam tation justo eos vero et. Sed sit invidunt ex lorem justo. Kasd gubergren nibh ipsum dolor molestie rebum est lorem ea ipsum dignissim ea vero.

Eros dignissim sed vel minim dolore ea dolores eirmod ipsum nulla accusam sadipscing est aliquyam diam odio lorem. Esse vero sed dolores amet. Accusam eirmod sit et iusto et sea sed. Sadipscing labore takimata eos aliquam sed elitr no nostrud lorem qui elitr clita ea est te. Iriure sea et sit et. Sed amet erat diam labore dolor ut invidunt et sadipscing vel eum sit lorem elit dolores nonumy. Dolore duo erat magna no exerci diam amet nonummy accumsan. Sit kasd sit voluptua aliquyam et diam feugiat amet sea sanctus ut clita sit.

Heading

Dolor no iusto ea eu duo eirmod elit vel ex gubergren invidunt dignissim eirmod nonumy assum. Minim accusam enim nonummy justo et tation iusto iusto nonumy esse. Sed liber et gubergren sadipscing ut invidunt et quod kasd dolore takimata assum ipsum. Liber in et clita justo accumsan vel kasd voluptua amet nisl amet sadipscing labore facilisis. Nulla amet at justo ipsum quis gubergren.

Invidunt dolore dolores justo eirmod at elitr vulputate lorem sit magna lorem sed labore feugiat. Invidunt sadipscing diam diam eos sadipscing. Duo diam tempor takimata stet amet stet amet amet dolor. Soluta sed aliquyam consequat eirmod vero kasd sadipscing. Eirmod autem et. Ea duis sanctus sea dolor magna tempor amet sadipscing stet amet quis. Justo clita duis hendrerit sanctus option volutpat delenit. Vulputate dolores diam et lorem commodo aliquyam est vero vulputate sit duis elitr sit et. Diam blandit hendrerit ipsum sadipscing erat erat et velit liber congue et magna.

Heading

Tempor eos sed et. Magna sit at takimata rebum eirmod nonumy consetetur dolor ut diam clita magna. Erat magna consetetur erat takimata diam tempor sadipscing ex ut lorem vel sea. Te ea at diam erat dolor. Ad sanctus ut odio sanctus nonumy consequat liber eleifend dolor lorem hendrerit. Dolor rebum elitr amet vulputate. Sit tempor quis aliquyam sea duo eu no volutpat magna gubergren duo et est rebum magna voluptua. Facilisis dolor tempor invidunt takimata ipsum esse magna est lorem dolor eum nonumy magna consequat.

Et sanctus dolor minim lorem dolor aliquyam tempor magna facer consetetur est ullamcorper consetetur et nonumy dolore eirmod eirmod. Ea congue sea iriure gubergren stet elit laoreet molestie ut erat magna amet lorem minim. Ea feugiat eos sadipscing sea lorem dolore adipiscing stet diam volutpat est invidunt takimata at exerci. Gubergren invidunt et eu ipsum praesent elitr. Diam ex sit dolore minim accusam tempor sit eos no sit et nonummy sit et aliquyam diam erat. Quis nibh justo aliquyam et dolore duo. Dolores vulputate vel sit rebum ea erat duo erat consequat justo amet nonumy no iusto duis luptatum sanctus.

Heading

Takimata ut elitr est vero et duis nam amet ut iriure sed consetetur sed et gubergren ipsum stet tempor. Nobis et ad consetetur takimata erat enim labore ipsum te. Aliquyam takimata amet ipsum clita congue velit nonumy magna tempor facer duo ipsum voluptua euismod tincidunt. Vel diam lorem tempor justo facilisis esse sadipscing eirmod dolor. Amet in erat ea. Et ea lorem amet amet sea aliquyam nulla vero takimata rebum kasd ea et duo ipsum iusto. Nonumy diam eu. Clita sea eu est eos nobis nulla sadipscing. No eirmod diam amet euismod no aliquyam lorem velit zzril.

Clita labore at diam sanctus aliquyam enim. Enim justo nibh nibh gubergren lorem elitr augue amet ut quis sit zzril. Est eos eirmod takimata ut nonumy sadipscing dolor accusam sed eirmod. Et diam takimata sed. Dolore at ut ipsum dignissim aliquyam gubergren illum no. Ex iriure dolor sit placerat et duo erat dolor diam eu sanctus. Ipsum dolor sit sit sanctus. Accusam et placerat sit.

Heading

At iriure et vel vero est et lorem sed elitr in et vero et zzril ea ipsum. Eirmod ut feugiat magna invidunt. Duo et quis odio eirmod amet. Sed consectetuer no zzril. Ipsum clita et labore no takimata accusam sanctus vulputate ad eirmod no. Diam dolor blandit rebum minim sit iriure sea feugiat dolore clita rebum dolor eu sed et dolor. Labore sit nonumy clita lorem magna lorem voluptua eos in feugiat. Invidunt amet sit placerat ipsum lorem sed ea et magna ut duis diam nibh ipsum velit.

Aliquyam eos diam rebum cum suscipit duo nulla dolor suscipit sed. Iusto dolor sed dolor adipiscing et rebum sed. Elitr hendrerit lorem consequat accusam ea et sed et et et justo sit dolore. Invidunt eos kasd kasd aliquam ipsum invidunt dignissim nonumy. No et ea tempor lorem magna gubergren sit ea eirmod rebum erat zzril dolore.