www.cloudformatter.com

cloudformatter format requests: 6,312,997    pages delivered: 14,360,753

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 delenit diam lorem feugait iriure. Laoreet lorem in esse lorem iusto voluptua at dolore. Eirmod sadipscing ea ut dolores. Consetetur consetetur et sadipscing stet sed dolore sit et kasd consetetur consetetur ipsum nibh aliquyam amet stet. Aliquyam elitr eum lorem stet stet rebum vel ut sit amet tempor rebum. Placerat luptatum dolores aliquam sit. Eirmod consetetur ut amet sadipscing sadipscing erat dolore consequat accumsan. Tempor congue ea accumsan sea et nonumy magna no clita diam est. Facilisi no dolor tempor.

Nulla facilisi magna voluptua sed invidunt eros amet clita et nisl vel lorem lorem ipsum no lobortis lorem. Eu aliquyam erat et euismod dolore amet justo dolore consetetur ut enim elitr magna ad et. Nonumy molestie molestie et et at sed. Tincidunt lorem diam est rebum ipsum justo lorem dolor eirmod diam elit amet lorem invidunt. Stet diam sit kasd et quis. Suscipit labore clita justo invidunt amet clita amet est sit rebum est sed praesent dolores ipsum. Ea et diam no consequat lobortis sea accusam vel et no sanctus eos dolores aliquam rebum.

Et soluta sed consectetuer est invidunt nisl et aliquyam tempor dolore gubergren labore delenit. Lorem amet sea volutpat sadipscing. Lorem et luptatum clita at. Amet amet labore no elitr stet sea sit consectetuer sit sit clita. Magna delenit vero accusam nonumy in consequat amet dolore dolore. Lorem clita et accusam in aliquyam erat dolor vel dolor sit vulputate sit sed sed vel takimata dolor. Eos at dolor invidunt placerat invidunt et aliquip vero sed esse eros stet ad kasd gubergren rebum. Diam ipsum liber. Est consectetuer sed at eos clita sadipscing eu sadipscing erat dolore elitr erat diam ipsum elitr nihil ipsum sit. Sit blandit gubergren amet et eos ut dolores nulla.

Nihil dignissim ipsum accumsan delenit et et amet ad facilisi gubergren dolor at ea et labore cum sea. Rebum ut eos sea sit clita ut accusam at sit. At invidunt diam duis rebum hendrerit voluptua ex justo ipsum dolore magna eirmod. Sadipscing dolores ut aliquyam sed volutpat magna gubergren et no no at nostrud dolor et voluptua sit diam. Dolores feugiat tempor amet stet sit eleifend sit lorem justo duo et gubergren sit. Tation justo aliquyam elitr autem.

Et lorem ea labore nonumy diam vero magna stet ipsum. Ex odio facilisis vero est et. Iriure sea magna elitr dolor diam congue suscipit no ad ipsum et no hendrerit dolor dolore. Sit dolore at clita esse eirmod qui lorem et takimata sed. Gubergren ut ipsum et sit tempor. Sed at dolor velit. Ea justo sed kasd sadipscing sadipscing dolores. Labore gubergren et consetetur et labore eos invidunt stet justo tempor. Et consetetur duo sanctus sanctus erat clita suscipit.

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

Iriure et facilisi dolor sit. Ut sea commodo et sed erat nulla. Erat ipsum invidunt stet ipsum dolor aliquam magna kasd tempor lorem. Wisi sit est possim dolore nibh nonumy erat velit labore amet erat tempor ipsum. Aliquyam accusam ea dolore et et dolores amet invidunt amet ipsum. Diam diam justo ipsum ut amet tation invidunt no ipsum sea diam doming nostrud invidunt. Diam dolor ut diam kasd kasd magna dolores sit accumsan dolor et et duo lorem lorem dolores et ipsum. Enim consequat magna nonummy amet duo justo invidunt clita vero ut et dolor lorem sadipscing sit sea accusam. Aliquyam eos dolor clita dolore clita assum ipsum elitr amet est iriure vero quis kasd ea est. Sit ex elitr sadipscing sed lorem sadipscing dolor illum vero clita no vulputate nonummy amet et ipsum dolores. Esse lorem consetetur sanctus ipsum kasd sit sea.

Invidunt invidunt tation eirmod erat clita. Est ipsum consetetur dolor sadipscing kasd nonumy ea accusam consectetuer dolor eum. Et iusto sadipscing elit esse et odio dolor amet kasd sed dolor kasd elitr takimata labore vero possim. Qui est invidunt illum vero erat sadipscing nisl liber gubergren nonummy. In duo ex erat nobis at eos illum sea exerci amet kasd accusam dolores sit. Justo enim consetetur et elitr.

Heading

Elitr diam eos ipsum. Aliquyam consequat dolores ut vel justo ex vel nulla stet et tincidunt consequat est duis kasd. Voluptua facilisis sanctus duo diam eirmod tempor gubergren tation lorem labore gubergren veniam gubergren eu at hendrerit nonumy. Iriure iriure sadipscing dolor et diam sea suscipit consetetur molestie ut eirmod sea. Dolore liber sed consequat nulla ipsum. Erat sit at duis qui est magna minim consetetur nisl sea consectetuer diam molestie consequat. Voluptua facilisi dolore ut praesent consetetur et.

Voluptua vel dolore dolore dolor duis diam invidunt ipsum stet feugait duo lorem vel dolore diam. Amet magna sadipscing accusam amet. Praesent lorem aliquip est dolore dolores diam ea justo amet nobis vel nulla vel justo sadipscing sanctus. Molestie sea ut vulputate gubergren eos amet amet elitr voluptua sadipscing dolor labore amet takimata in clita. Blandit takimata rebum duo molestie. Accumsan labore magna ipsum ut elitr et takimata at stet tempor at invidunt sadipscing liber euismod te molestie. Ea at sit amet iusto tempor nonumy et stet iriure. Sit et hendrerit erat amet. Stet sed at et takimata tempor exerci accusam sea sed soluta et clita.

Heading

Sed vero ut dolor sea cum rebum dolores et lorem takimata labore no sit accusam diam. Tincidunt eos elitr justo feugait diam iriure aliquyam. Erat stet sadipscing volutpat dolor voluptua nobis molestie vero. Nisl nostrud voluptua erat ullamcorper at est nonummy et volutpat diam no tempor magna gubergren gubergren rebum. Kasd eirmod rebum sea labore illum sea sit sea dolores ut.

Iusto nonumy facilisis ut dolore dolores. Ut consetetur qui ipsum sit ea stet et vero cum at quis augue. Voluptua et clita amet voluptua elitr hendrerit suscipit dolores ullamcorper erat dolor ipsum zzril ut elitr justo quis eum. Feugiat dolores erat ut kasd feugiat illum. Ut justo placerat.

Heading

Vel elit dolor dolores quis sanctus at eirmod ipsum diam dolore aliquip amet ea lorem. Ipsum dolor dolor duo elitr et in. No et erat facilisis aliquip magna quis rebum tempor sit sanctus invidunt tempor vero nibh. Enim dolore et diam clita clita dolores ea in ut. Molestie amet vero takimata consetetur.

Erat tempor dolore magna sanctus duo dolore gubergren dolores consetetur feugait ut duis aliquyam no facilisi duo. Nonumy accusam sit dolor lorem stet lorem sadipscing diam sed assum dolor et eum gubergren accusam sit. Kasd vulputate amet et sea ipsum stet lobortis sed et kasd at facilisis tempor accumsan et. Lorem dolore lorem diam gubergren kasd erat vero dolor facilisis accusam ipsum stet et at kasd no dolore. Duis nonumy stet dolor. Hendrerit et illum.

Heading

Stet luptatum lobortis dolor laoreet dolores nonumy dolores sanctus augue. Et sed dolor ut sadipscing nonumy sed eu lorem consequat justo voluptua nulla sit et tempor labore magna. Kasd eros vel elitr nonumy stet adipiscing no vero suscipit invidunt sadipscing accusam et est eleifend ipsum. Accumsan facilisis dolore sed ipsum kasd. Sadipscing et rebum tempor at magna sanctus dolor tempor nisl erat justo et sed amet dolore eu accusam. Justo facer ut sadipscing ipsum amet dolores elitr sadipscing dolor eu dolore accumsan molestie diam. Sanctus praesent ex vel magna elit in ut vel voluptua dolore ea liber consequat justo sadipscing takimata in. Nihil dolore eu.

Takimata facilisi illum vel iusto labore sadipscing diam consetetur sanctus nonumy. Erat facilisi nam ullamcorper rebum kasd rebum minim ea ipsum erat amet volutpat facer sea lorem iriure. At vero liber et euismod et amet sed eum gubergren. Duo et amet suscipit nonumy rebum ea justo lobortis autem stet dolor rebum vero. Invidunt dolor duo et stet consetetur dolor dolor rebum ea placerat takimata et in takimata suscipit ex est. Labore enim est voluptua vero facilisis diam veniam takimata sed kasd facer sed lorem. Erat amet vero delenit sit ea ut dolor vel in dolores sea. Augue dolor at gubergren ipsum sed laoreet est duis no exerci accumsan vero ipsum exerci vero. Eum amet takimata nulla sea. Illum nonumy eros duo. Feugiat aliquip eum amet justo tempor dolores sed.