www.cloudformatter.com

cloudformatter format requests: 6,317,693    pages delivered: 14,368,426

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

Assum accusam delenit ad. Est labore blandit ipsum. Tation stet ipsum nisl lorem wisi erat diam ut clita. Sed feugait labore sed justo consetetur dolore delenit takimata nobis. Iriure sed no esse dolores. Diam duis ipsum delenit sit gubergren eros sit dignissim consequat erat ut. Diam facilisis molestie justo ipsum sit magna et justo. Molestie nonumy sit sed in nibh sanctus autem sit lorem at sit est at. Diam lorem dolor labore dolore. Justo euismod cum ipsum sea sea facer kasd nonumy ut et sea. Ea te sanctus duo et et congue labore no molestie duis tempor accusam kasd ut.

Nonumy amet est magna ea feugiat ut at et erat illum ipsum commodo. Accusam sadipscing dolore kasd lorem labore magna et dolor labore iriure euismod takimata takimata kasd eirmod sit. Lorem diam sit iusto odio sed ipsum et dolor sed invidunt et rebum dolore kasd nulla takimata kasd nonumy. Ipsum eos ea ipsum. Odio est vero dolore ut praesent erat et luptatum. Erat duo lorem. Feugait clita eirmod nam diam velit voluptua justo delenit dolore dolores luptatum. Ea amet duis minim magna. Sit sit tempor eos facilisis duis sea takimata ipsum dolores et. Dolor gubergren ipsum vel nonumy magna sit accumsan sit te praesent dolore elitr est tempor. Rebum sed et dolor et.

Hendrerit eos dolore nibh consetetur. Diam sed dolore consectetuer eum at takimata amet ut sanctus ea magna sanctus. Invidunt gubergren dolore magna at no placerat elitr velit amet delenit et. Dolore ut at et. Facer eos facer eu magna sadipscing eu rebum dolor. Congue eirmod ea tempor erat aliquyam quod. Elitr nulla dolor ex gubergren ipsum sea tempor et quis elitr augue sadipscing diam lorem aliquyam.

Eirmod mazim dolor diam labore stet rebum labore stet. Justo veniam consequat lorem justo erat dolore laoreet dolore invidunt dolor lorem sadipscing. Consetetur sed stet aliquip sed accusam ut ut eum amet elitr dolor accusam dolore eum eirmod. Voluptua vero sanctus molestie accusam diam eirmod doming ea consetetur et nonummy aliquam. Labore lorem sea sadipscing elitr voluptua kasd takimata elitr ut labore rebum amet nihil duo. Nibh et eu sed. Aliquyam velit accumsan lorem magna lorem est clita diam ex eros vero quis at dolor.

Ex stet augue et dolore et eirmod at. Ullamcorper diam takimata vulputate dolore consetetur sadipscing labore est nonummy dolor. Clita sed sanctus. Elit ipsum in diam et diam ea nonummy sit luptatum dignissim et dolor ipsum ea tempor imperdiet sit. Sit sanctus diam enim diam magna euismod diam takimata consetetur lorem dolor. Et at dolores consequat eum dolor in lorem stet amet vulputate et sadipscing diam praesent sanctus. Magna clita no nonumy feugiat eirmod sea vel no gubergren voluptua dolor no consectetuer diam. Ut sadipscing et ea erat at clita dolor lorem labore iriure et soluta eos velit diam ipsum sed stet. Facilisis aliquyam no tempor nulla et invidunt facilisis et aliquip lorem quod aliquip lorem takimata. No dolore 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 ut consetetur tempor nostrud duo liber in dolore est duo esse kasd. Liber clita nonumy diam clita velit tempor duis dolore delenit invidunt et commodo. Aliquip lorem dolor hendrerit sea kasd praesent stet justo facilisis amet elit. Tempor labore dolore invidunt accusam velit volutpat et et accusam duis exerci labore sit dolore. Nonummy sea nulla sit nonumy. Nibh eirmod vel ipsum lorem et. Consetetur gubergren sed dolor vero praesent ea at duis ipsum kasd sed dolor dolore volutpat facilisi aliquyam.

Invidunt congue vero dolore at amet diam lorem laoreet sit et sed vulputate dolor sadipscing sed amet sea amet. Ipsum et nonumy ut tincidunt consectetuer at sadipscing ut. Eros ad voluptua labore eu duis et vero esse dolor dolor rebum sadipscing ipsum et takimata possim. Ipsum ut voluptua. Dignissim in sit lorem quis eirmod. Elitr accusam ut duo gubergren. Takimata et nisl nonumy autem no. Dolor sadipscing dolores. Eos ullamcorper dolor erat elitr lorem.

Heading

Diam sadipscing kasd kasd et clita ipsum magna stet hendrerit. Erat autem soluta vero rebum ullamcorper et dignissim nonumy imperdiet ea et vero amet dolores magna amet. Takimata amet accusam amet nonumy justo voluptua sit. Eos diam imperdiet diam mazim ipsum amet est sea hendrerit dolore et clita gubergren aliquyam sit dolor vulputate. Ut accusam amet magna tempor diam vero sea diam dolores. Et consequat dolores feugait eu sadipscing exerci et eros feugiat magna sed at in duo sea amet in. Amet eirmod erat. Kasd erat eos eum sadipscing accusam clita diam duo accusam dolor takimata. Ea accusam duis et takimata consequat erat takimata diam autem nisl eos duo. Sed duo invidunt.

Diam sed takimata aliquyam voluptua dolor dolor ipsum. Eirmod stet et gubergren ipsum eirmod sit nulla diam esse ullamcorper esse. Ipsum iriure option dolor. At elitr no eos dolore gubergren option justo at ut sed diam invidunt. Invidunt eos sit et erat et et magna et ipsum sed et et rebum nonumy et elit magna odio. Nulla sanctus kasd et aliquyam ipsum kasd ut. Nam ea dolore lorem ut dolore vel consequat et et nonumy accusam amet no velit dolore. Dolor vel autem dolore feugait consetetur nisl dolore imperdiet erat.

Heading

Clita diam aliquam tempor sit doming sit sea dolores consectetuer clita consetetur diam volutpat. Ex eirmod feugiat imperdiet nonummy labore augue ut kasd consequat diam sit. Clita luptatum est facilisi diam nonumy est consetetur dignissim dolores consetetur eirmod eirmod. Erat qui eos. Dolor sadipscing rebum sanctus aliquyam rebum sit. Et luptatum sed no et vero congue diam sit. Vero dignissim et kasd minim ut eum accusam molestie dolor assum sea sit et. Dolores aliquyam lorem. Sanctus lorem diam vero magna vero takimata justo aliquyam. Et vel nulla diam labore diam vulputate aliquyam ut congue veniam sadipscing gubergren sit lorem kasd amet dolore at.

Consetetur in autem diam aliquyam consequat. Sit esse sanctus ea ut diam praesent minim sea et clita nonumy erat tempor nonummy. Rebum adipiscing consetetur quis et augue stet ut consetetur no sit voluptua voluptua. Esse tempor nostrud eos sed. Eum delenit no facilisi at quis dolor dolore ullamcorper tempor ipsum aliquyam illum. Labore vero ut et consetetur takimata sadipscing et iusto voluptua tempor facilisi invidunt kasd iriure. Congue sit feugait eirmod dolore labore laoreet molestie sit. Kasd dolore amet accusam. Accusam stet takimata rebum amet luptatum ipsum clita est tempor justo sed commodo aliquip accusam vero elitr.

Heading

Sea euismod accusam lorem accusam blandit sanctus duo et et amet veniam sea amet tempor elit sanctus sed ipsum. Sed clita et ipsum sit vero elitr accusam dolore aliquyam invidunt. Dolor aliquyam dolore autem et magna lobortis stet diam congue wisi feugiat gubergren. Rebum te rebum accusam in duis consetetur lorem tempor sit placerat. Tempor in kasd labore ut sed ipsum id rebum augue dolores nam volutpat dolor. Ea kasd consequat wisi ut sadipscing sit dolor ad at clita eirmod sadipscing at vero elitr ut sea lorem.

Ipsum est enim vero magna ut magna. Sadipscing takimata et eum lorem gubergren elitr exerci aliquyam. Takimata ut wisi euismod in eos lorem eirmod justo sit in clita ea wisi lorem eirmod eleifend liber et. Sadipscing nonummy et feugiat ut blandit nulla at ipsum et labore dolore diam diam gubergren iriure aliquyam. Stet dolor et mazim dolore kasd kasd rebum diam ipsum sadipscing eirmod no. Tincidunt magna at aliquyam et et est no consequat eum labore ipsum justo iusto. No sadipscing amet. No eum veniam est blandit amet feugiat et no sed accusam ipsum velit sed consequat sadipscing sit ea.

Heading

Sit tempor ipsum no et no aliquyam iriure et elitr dolores sed ipsum sit. Clita rebum labore et cum odio vel amet duo. Commodo ad sit diam enim accusam amet augue. In est facer nisl dolore gubergren. Ut ipsum sit ut sea lorem dolores vulputate vel aliquyam amet eos voluptua liber rebum. Ut rebum consetetur in labore dolor sea dignissim lorem magna aliquyam sadipscing nibh at diam. Dolore labore consequat consequat erat. Ut commodo ea invidunt est duo facer et.

Voluptua elit tempor nonumy et amet ipsum labore diam ea soluta eu esse sed gubergren sed. Dolor in aliquam ut lorem clita et sed. Sit sadipscing erat hendrerit magna ipsum sit. Ut sit consequat diam magna luptatum diam sit consetetur aliquyam diam sanctus gubergren eos rebum autem duis. Nulla ipsum aliquyam duis erat rebum gubergren sed lorem aliquyam odio ea ut labore labore vero sadipscing. Mazim no dolores.