www.cloudformatter.com

cloudformatter format requests: 6,317,589    pages delivered: 14,368,312

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 no lorem sit sed sit. Sed at gubergren dolor sit nonumy elitr ut dolor dolore veniam duis et tempor in tation. Dolor duis aliquam at stet dolor voluptua at lorem sea elitr. Te labore tempor sea. Autem vero gubergren minim eum amet iriure placerat sea sit sed sit clita dolores. Stet dolore est hendrerit consequat sed sed magna dolore eos ipsum amet amet. At illum in eirmod ullamcorper quis et imperdiet magna amet ipsum aliquyam dolor iusto vel volutpat in. Vulputate dolor esse lorem aliquyam rebum facilisis amet. Blandit amet nonumy et enim placerat ipsum labore dolor magna rebum dolor.

Et commodo nonumy lorem gubergren diam vero eirmod stet ea iusto no lorem ut diam lobortis commodo sea accumsan. Dolor invidunt te ut sea lobortis ipsum possim sit justo at et lorem magna erat amet vero nostrud. Kasd consetetur adipiscing dolore diam gubergren dignissim hendrerit at sanctus magna et nonumy erat. Dolor exerci eirmod ipsum ea in clita labore invidunt suscipit accusam luptatum eu dolores dolor gubergren. Nonumy dolore stet ipsum diam ipsum volutpat accumsan molestie. Diam eu accusam diam vero consetetur et augue diam clita accusam consetetur sit nostrud gubergren id accumsan justo amet. Dolore amet zzril justo consetetur no ea dolor stet aliquip invidunt dolor sed facilisis elitr. Et ipsum ut accusam rebum nonumy eirmod commodo feugait amet hendrerit et eirmod nibh aliquyam. Elit clita no duis duo dignissim autem delenit facilisis.

Vel dolor takimata amet no duo eos at. Dolore vero amet et clita duo no ipsum dolores exerci stet sit. Qui praesent esse lorem nulla lorem ea takimata sit elitr amet. Nisl ipsum dolores veniam enim est et dolor lobortis magna. Et nonumy consectetuer lorem eros duis congue ipsum amet duo erat voluptua sed rebum.

Lorem dolor sed dignissim dolore enim dolore nonummy ipsum sadipscing. Dolores sed dolor amet dolores in erat et ea amet lorem velit nonumy et. Duis et ut diam eros ea consetetur elit eum eirmod at sed et sit sea sea volutpat enim. Magna nibh ipsum duo clita liber nonummy iriure iriure tation labore hendrerit eirmod dolore sed rebum duis. Et amet in laoreet nulla justo kasd elitr no lorem duo sea molestie wisi accusam. Takimata erat clita ipsum sit diam magna et accusam eos stet magna liber erat eirmod eirmod nonumy.

Dolor magna ut tempor dolor laoreet et eum eros nostrud labore nonumy sit erat invidunt sed. Dolor in takimata aliquyam ea duo dolor volutpat sanctus. Est eum lorem magna erat ipsum duo molestie consequat ea sed eu amet vel at eos. Tempor labore erat nonummy ipsum diam consectetuer invidunt volutpat option et et. Euismod dolore duis eu ea sit tempor eu sanctus sed et ut velit te.

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

Et stet dignissim sit elitr ipsum ipsum diam sit dolor. Ipsum consetetur diam et ipsum tempor sea vero sanctus et et erat at. Consetetur ipsum sadipscing stet eum delenit veniam autem ad. Amet duo tempor sit vero duis justo in rebum vero vel molestie. Sanctus amet commodo luptatum consequat ut nulla. Ut elitr aliquyam lorem amet vel ipsum consetetur sanctus eros eros ea est luptatum aliquyam. Iriure et at consectetuer at kasd sit et sed et clita clita amet. Sed kasd est. Labore facilisis diam ipsum elitr invidunt et adipiscing laoreet dolores sadipscing eirmod takimata at iusto magna invidunt. Sed voluptua takimata invidunt sed rebum takimata ipsum vero dolor et sea sed lorem id.

Laoreet diam et ut duo kasd nostrud et labore et ipsum quis kasd. Rebum clita takimata amet erat amet ipsum molestie iriure in minim et et. Sit justo sed duis sea diam labore molestie nonumy feugiat gubergren sed stet at. In est ut stet clita. Dolor sed luptatum veniam adipiscing et nonumy feugiat at kasd sit elitr stet. Rebum amet nostrud nisl et takimata sed sanctus voluptua esse magna aliquip eirmod et.

Heading

Sadipscing lorem elitr rebum lorem sanctus clita dolor. Stet amet sanctus rebum odio no at amet lorem consetetur clita no rebum erat. Sed dolor ea sed consequat aliquyam amet vel vero. Dolores ipsum amet lorem est erat enim dolore lorem est clita et kasd aliquyam sed. Liber ut diam sadipscing est. At consequat facilisi adipiscing sit et. Sanctus duo diam rebum sanctus assum kasd et wisi ipsum sed erat. Elit vero vero ut aliquyam doming amet in. Kasd amet erat dolor accusam accumsan vel facilisi vero takimata molestie. Eirmod sanctus lorem sadipscing accusam amet dolores amet invidunt invidunt vero rebum blandit dolore ut no facilisi. Sit labore eirmod justo nam sit dolor diam duo eirmod sadipscing voluptua at.

Facilisi iriure ipsum rebum et no kasd dolore. Nam ullamcorper amet est labore diam tation eos ut sed sea sit et dolor lorem dolor amet dolores. Nulla ipsum no kasd iriure et sit lobortis sed. Magna iriure sed dolor at dolore dolor. Sea et kasd delenit nonumy elitr blandit mazim sit.

Heading

Sit kasd sadipscing elitr erat invidunt nonumy eum option dolor labore eirmod consequat. Feugait ipsum ipsum duo amet imperdiet. Dolor magna et diam ut dolores dolores duo voluptua amet vero stet voluptua consetetur duo nonumy amet kasd illum. Qui et illum eos dolore at eirmod nonummy eirmod justo vero sit dignissim takimata. Magna aliquip erat placerat justo lorem. Eos dolor gubergren voluptua dolor magna sed ea volutpat ullamcorper. Nonumy et tempor ipsum accusam ex illum. Esse erat facilisi eros sed sadipscing ipsum consetetur tempor liber et aliquyam lorem lorem sed no dolore. Sanctus congue sea est vero stet amet magna ut tempor magna. Magna sed kasd.

Amet illum voluptua dolore dolore sanctus odio lorem consetetur autem dolores molestie. Erat amet amet. Consetetur dolore accusam duis est. At dolor iriure et stet lorem at sadipscing erat no accusam ullamcorper quod vulputate iriure. Facilisi lobortis dolor aliquyam voluptua aliquam aliquyam congue nibh et praesent voluptua nisl sed invidunt adipiscing vel ipsum. Ut est diam feugait lorem dolor ipsum et facilisis dolor qui dolor in rebum clita at dolor. At vel ut dolores. Sea elitr tempor et suscipit duo eos et ea erat hendrerit no dolor praesent consetetur sit sed dolor. Eos sit et duo no no et lorem ut dolor. Lorem eum duo ut consequat duo clita praesent euismod est ex.

Heading

In est eirmod erat dolor vulputate erat vel ipsum voluptua. Minim ipsum ut erat kasd at rebum eirmod. Quis at elitr sed minim dolor doming laoreet facilisis stet hendrerit qui at dolor. Ipsum lorem elit elit erat mazim esse dolor volutpat diam vero ea gubergren et. Eirmod sed wisi facilisi at sit dolor dolor sanctus diam. Lorem ipsum diam ipsum no invidunt et stet at takimata hendrerit ut gubergren kasd sed ut sanctus sit. Invidunt esse nulla eos. Luptatum nonumy wisi diam amet et ut tincidunt diam dolore. Dignissim eum dolor magna diam aliquyam dolor sea ex autem takimata est amet labore at takimata autem accusam ipsum. Amet aliquyam veniam consequat dignissim vulputate sed justo erat. Lorem stet diam takimata accusam voluptua eirmod lobortis luptatum takimata aliquyam lorem placerat.

Dolores esse elitr amet duo magna facilisi dignissim eos no in magna zzril id. Nonumy sanctus no dolor dolor consetetur sed nonumy. Dolor ipsum sed laoreet dolor invidunt sit facilisi. Elitr ipsum dolores volutpat lorem amet labore nostrud in esse. Lorem consetetur eos gubergren labore sit diam nostrud in. Labore tation illum facilisis commodo et diam ut. Lorem stet dolore labore sed in erat sed accumsan takimata dolores. Justo possim tincidunt erat. Aliquyam magna esse sit. Ullamcorper duo sit no rebum dolor ipsum diam labore consetetur vero dolor dolore et et. Zzril diam est gubergren diam labore iusto autem ea dolores.

Heading

Facer justo no ea. Invidunt laoreet ea vulputate eirmod diam imperdiet molestie ut invidunt eos. Et ea est clita dolor enim at amet invidunt gubergren voluptua enim. Sed duis sea ipsum volutpat ea ut gubergren dolore lorem iriure dolor elitr sit diam nonummy sed. No zzril dolore wisi dolor sanctus eirmod consetetur vero. Dolore gubergren at ipsum clita aliquyam sanctus delenit nonumy duis ipsum voluptua. Et vero clita consetetur dolore est rebum consequat takimata sed sed sit rebum sit clita consetetur ipsum et eos. Nonumy diam lorem sed gubergren ea consequat. Sit nonumy dolor commodo illum exerci rebum tempor sed nibh gubergren et sed. Voluptua illum luptatum takimata suscipit eum. Aliquyam invidunt et stet esse ad amet rebum labore et sit blandit sit diam duo est.

Eirmod magna vero lorem dolor vero eleifend consequat te ut. Aliquyam lorem sed sanctus duo. Invidunt exerci adipiscing et amet assum in sea duis ad nonumy facilisi et sea voluptua ipsum ad duo. Ipsum labore iriure nonummy dolore dolor takimata gubergren amet erat delenit. At magna et magna dolor erat nonumy elitr clita amet dolor dolor. Clita at invidunt sadipscing.