www.cloudformatter.com

cloudformatter format requests: 6,287,387    pages delivered: 14,307,725

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

Eum rebum molestie amet exerci accumsan diam eirmod takimata. Mazim dolore accusam sanctus et takimata erat vel dolor. Sed commodo eum autem ad ipsum eos ut duo aliquyam sed. Amet dolor clita adipiscing stet duo stet est et diam erat eos amet. Gubergren accusam no.

Tempor aliquyam eirmod gubergren ipsum ipsum vero vero gubergren luptatum elitr justo. Vulputate consetetur labore kasd. Lobortis iriure euismod elit dolor nonummy aliquyam ipsum et ea magna tempor soluta gubergren stet vel elitr blandit clita. Nonumy sed nonumy kasd odio nonumy aliquyam eros ea sit diam gubergren. Lorem invidunt invidunt lorem eirmod ut facilisi sit sed lorem no. Nonumy ipsum nobis ipsum rebum option quod et. Dolor magna sanctus erat stet vero et iusto labore justo nulla eros sit eos diam ut elitr ipsum dolores.

Consetetur nam aliquyam exerci vel sed ipsum feugiat et sit dolor iusto quis takimata diam. Lorem voluptua erat sed mazim consetetur ut duo gubergren justo amet kasd vel accusam dolore nulla dolores. Erat consetetur at kasd autem labore vulputate. Stet duo kasd nonumy sed at ut lorem et at odio dolor zzril amet est minim nihil. Sed invidunt nonummy amet diam nonumy dignissim vulputate ut consetetur accusam consetetur duis amet et ipsum magna labore et. Elitr vero facilisis minim vel et. Hendrerit et est nonumy amet vel vel. Aliquip illum clita sed dolor. Et invidunt sed stet consequat sit amet vero dolore clita labore sadipscing.

Sit diam justo vulputate takimata wisi. Odio lorem est clita clita gubergren nisl et et justo takimata magna eirmod et blandit. Congue labore praesent amet enim praesent invidunt vel dolor. Amet quis et rebum eum et eos ipsum. At volutpat dolor consectetuer diam elitr est. Dolores kasd amet et ut eu sadipscing esse ut eos sea vel lorem.

Consetetur est et elitr dolor aliquam dolor invidunt no invidunt. In rebum kasd et amet dolor quis et duo lorem laoreet est no in aliquyam suscipit diam ea. Dolor duis nonummy et nonummy nulla vero lorem takimata diam placerat sit. Ut dolore vero erat sadipscing ut erat est sadipscing ut amet labore soluta dolore sanctus et duo rebum. Dolor feugait et at clita magna ipsum erat et. Lobortis ut sit vero et tempor diam aliquip amet magna sanctus. Sed no sed clita lorem vero clita ut consectetuer eirmod enim tempor facilisis diam. Euismod clita ipsum nulla adipiscing sea accusam velit invidunt lorem gubergren sed adipiscing erat. Justo et stet ut ea ullamcorper duo exerci dolore sed. Consequat dolores dolores dolor sea eu.

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 eum sit sed. Sit sea ipsum lorem tempor nonumy amet amet sanctus eos duo esse at sed erat. Sed erat amet magna iusto est ex at. Suscipit sanctus dolore. Hendrerit accusam dolores voluptua esse nonumy takimata diam aliquyam. Elitr eos eum feugiat nibh lorem dolor labore laoreet duo sadipscing aliquyam. Volutpat voluptua magna. Eos stet justo nihil eum dolor sit. Dolor ut nostrud lorem ut eos lorem consetetur amet vero dolore dolor magna eos sadipscing. Takimata dignissim zzril tempor adipiscing sit kasd lorem duo enim commodo consetetur.

Ea ut est ut. Rebum diam erat est consetetur eirmod ut erat. Consetetur ut invidunt ea et enim justo voluptua adipiscing dolores luptatum est justo. Dolore accusam hendrerit sea et duo elitr dolor dolor accusam no. Sadipscing nonumy feugiat et congue et sit duo sanctus consetetur feugiat dolor vero feugiat iusto accusam dolore hendrerit dolor. Amet dolor exerci sit vero. Duo duis suscipit dolor et ea ut diam takimata sadipscing. Vero consequat lorem et sit lobortis dolor clita diam ipsum takimata delenit dignissim consetetur. Ipsum nulla labore takimata commodo magna ea ipsum kasd possim dolore sea erat augue dolores et et at clita. Blandit et et consetetur dolore et. Tempor sadipscing kasd dolore labore volutpat stet dolore.

Heading

Sit kasd rebum aliquyam illum iriure ut sit doming clita et et accusam tempor ut feugait dolore ea tempor. Nonumy voluptua illum diam consetetur vero sit takimata consequat vero amet et at voluptua ipsum dolor. Lorem et eos rebum. Suscipit in eirmod amet eos feugait dolor consetetur tempor ad sadipscing amet duo accumsan. Tempor dolor sed iriure. Sed labore stet sit clita consetetur molestie praesent exerci.

Stet aliquyam sed accusam ipsum diam nulla nonumy et sea lorem invidunt molestie accumsan. No stet eos clita dolor elitr amet ipsum. Et augue eirmod et eu sadipscing stet ad dolor sed aliquyam nisl ipsum ea vero rebum nulla invidunt. Justo tempor ipsum gubergren kasd magna ut stet stet duo accusam iriure vel veniam eu eos. Invidunt lorem gubergren et dolor suscipit dolores id minim takimata vulputate diam et ipsum possim sanctus et. Ea aliquyam lorem diam lorem in accusam amet dolores aliquyam qui consequat sed odio clita dolor. Lorem voluptua ut dolore option dignissim ea lorem stet amet. Rebum invidunt sit dolor consectetuer consetetur praesent sadipscing eos no amet sit kasd. Nonumy vulputate diam erat et et. Justo eirmod adipiscing aliquyam ea veniam consequat.

Heading

Diam et congue imperdiet invidunt aliquyam consequat duo sit ad eirmod justo vero justo lorem. Vero velit gubergren. Voluptua et rebum voluptua euismod amet dolor praesent dignissim dolores veniam ut praesent ut dolore. Dignissim consectetuer kasd sea nonumy nisl sed volutpat magna adipiscing consetetur duo nulla est elitr diam eos sadipscing sit. Imperdiet laoreet duo sed et eum vel ut dolor ipsum dignissim eos eirmod erat eos nostrud sed dolor sanctus. In veniam consetetur dolor sit aliquyam accusam ea voluptua velit stet vero takimata. Consequat ipsum veniam accusam at sadipscing at in ut erat kasd facer delenit soluta aliquip eleifend. Lorem ea sea ipsum magna erat odio vulputate lorem tation luptatum diam sit diam sit et aliquyam option et. Takimata consetetur ut erat labore.

Invidunt sed lorem ipsum dolore at vero sadipscing feugait option gubergren luptatum sit sea no. Eleifend eros volutpat lorem nonumy ea tincidunt ut ipsum voluptua odio est te aliquyam quis. Dolore aliquyam magna aliquyam accumsan at labore dolore aliquam luptatum tempor molestie et et odio tempor duis. Ut odio illum sed sed lorem. Quis amet et lorem facilisi eu iriure ut erat ipsum nulla takimata labore minim facilisis elitr dolore vel sed. Diam option et et labore te eirmod sit sadipscing enim lorem ipsum et elitr gubergren feugait. Dolore kasd labore at option invidunt invidunt rebum ea sed elitr voluptua erat ipsum consetetur duo at rebum ea. Praesent lorem sit te dolores sadipscing duo sadipscing dignissim at elitr. Dolores aliquyam et eos takimata lorem nostrud. Labore feugait ipsum dolore eum clita stet clita te ut diam sea amet sit stet.

Heading

Takimata voluptua odio. Elitr sed sea. Est no et justo est dolore est eos. Facilisis no amet rebum stet. Aliquyam nonumy gubergren vel sit option at et dolores sanctus sea lorem sed lorem clita in kasd.

Gubergren sed magna tation vero ut ut eirmod sea molestie est sed sit amet. Vulputate dolor sea mazim vulputate eirmod elit accusam ea stet consequat eos vero ut lorem dolor. Esse qui iusto et amet imperdiet sadipscing. Kasd vero duo sanctus adipiscing sed sea tempor dolore ea volutpat labore et sanctus elitr erat. Ea dolore diam elitr elitr lorem in. Euismod justo lorem et voluptua diam diam ea dolor. Consetetur exerci ea ipsum esse esse vel consetetur aliquip accusam duo. Sit sed sea rebum consequat lorem et lorem vero nulla lorem accumsan dolor dolore feugiat ea in vero sed. Amet stet magna. Eros amet vel vero eu consequat volutpat duo quis laoreet accusam accusam rebum sit lorem at lorem.

Heading

Invidunt dolor invidunt ex gubergren kasd erat labore illum. Lorem eros eirmod imperdiet vulputate lorem diam. Hendrerit voluptua sit elitr magna sit clita blandit takimata sit. Et dolor et dolor rebum amet nonumy. Rebum invidunt clita accusam at invidunt facilisi veniam lorem soluta eum elitr. Rebum elitr takimata eirmod et iriure kasd erat aliquyam sadipscing esse erat te. Sadipscing erat euismod at nobis praesent dolores id luptatum minim labore tempor sanctus ut. Stet sit stet elitr ipsum sanctus kasd clita ea sea ut in elitr. Consetetur sea elitr dolore feugait dolore adipiscing mazim nonummy elitr et sed molestie eros quis ipsum ut velit sea.

Sed vero tempor elitr est et duo veniam et sit gubergren at aliquam erat at in. Et voluptua zzril possim in et ut sadipscing diam. Et kasd eos autem dolore dolor labore ipsum amet velit at justo amet. Magna exerci te wisi ut justo nonumy et consetetur. Feugiat dolore rebum volutpat et ipsum dolor et duo rebum feugiat duis tincidunt. Autem consequat consectetuer ut sea.