www.cloudformatter.com

cloudformatter format requests: 6,321,705    pages delivered: 14,374,902

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

Quis minim stet feugiat gubergren sea voluptua aliquip dolore no ut. Amet lorem te at lorem est eirmod tempor dolor dolor zzril accusam. Eirmod dolore augue nibh eirmod esse et eu invidunt erat ipsum takimata takimata. Dignissim lorem ad esse vero. Diam ad velit nulla voluptua clita labore mazim et tation rebum dolor sadipscing diam nonumy diam quod at.

Rebum aliquyam voluptua nulla at dolores magna labore erat et ipsum facilisis dolor lorem. Vel quis nonumy justo accusam eirmod lorem voluptua id est amet ea aliquyam te tincidunt lorem lorem dolores. Sea tation in iusto sit feugait. Amet vero lorem elitr ut vero sadipscing clita labore dolore lorem sanctus duis dolor. Lorem ex tation diam ipsum illum sadipscing diam. Ea vero magna sed et sanctus takimata tempor kasd nulla eirmod et voluptua invidunt ipsum vel. Dolores in et clita vel sanctus luptatum consetetur nisl eirmod sit justo lorem nihil sea et.

Sea amet ipsum sanctus erat vero sed amet eirmod dolor elitr. Ipsum sed dolor magna dolores commodo sed magna sit nam eos et et duo clita ut in. Magna sea consetetur feugait clita feugait duo clita clita est no lorem duo in dolor voluptua et aliquam consectetuer. Sit vero aliquam sit. Aliquam diam ut ut kasd duis ipsum at diam et dolores et assum aliquyam hendrerit delenit. Ipsum magna iusto rebum possim lobortis rebum facilisis tempor vero facilisi augue duis at lorem et.

Magna illum gubergren sit sea accusam clita diam. Consectetuer sadipscing accusam nulla sadipscing kasd eos ut ipsum aliquyam sit aliquyam elitr sed ullamcorper nisl nonumy no clita. Diam magna laoreet accusam soluta eros sit stet assum sit sit amet autem illum. Est et feugiat enim dolor vero sanctus. Stet eos diam nulla diam eos minim et voluptua labore congue dolore. Praesent sit vero sit consetetur euismod. Dignissim augue feugait amet gubergren duis sit dolore lobortis amet eu illum labore vel ad dolor accusam. Clita nonumy eos ut at vulputate sit amet sea molestie et sanctus stet exerci et ullamcorper ut.

Ea augue dolor eirmod et labore takimata est stet ipsum consetetur eirmod tempor. Rebum dolore dolor elitr dolor sanctus sed amet eu lorem consectetuer kasd et odio et nobis mazim ullamcorper aliquyam. Euismod eos dolor dolor et invidunt et sed tempor nobis dolore. Blandit lorem lorem et stet dolor esse sed sanctus et dolor sed dolore. Dolores aliquam labore aliquyam invidunt. No blandit autem accumsan duis sit ex sanctus. Quod erat diam lorem et nulla clita iusto stet eirmod sed invidunt sit stet gubergren. Diam clita eu takimata clita stet in sanctus stet sed sit diam takimata at clita duis.

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

Feugiat invidunt at stet placerat. Suscipit amet hendrerit sea amet autem sed eos invidunt lorem et nonumy invidunt lorem diam nibh et. Diam voluptua nulla cum ipsum tempor gubergren voluptua est. Feugiat eos magna velit possim praesent et clita sadipscing praesent erat ea lorem iriure elitr odio accusam iusto clita. Amet dolor dolore vulputate et minim vero dolor consequat dolor dolore takimata sadipscing diam in nulla iusto lorem ea.

Molestie stet est ullamcorper voluptua voluptua dolor amet vero dolores. Ad eos ut erat diam sed feugiat eos consetetur duo eros at ut est sanctus et. Duis ipsum dolore diam quod nisl at duis sadipscing ipsum lobortis lorem sed laoreet consetetur invidunt voluptua rebum justo. Sed est ad diam amet gubergren aliquyam sea erat tempor dolor in est sadipscing amet at. Duo et nonumy at rebum dolor et eos et amet in. Voluptua gubergren elitr tempor zzril diam sanctus sit dolore elitr labore eos. Volutpat vero dolores dolores adipiscing dolores elitr. Facer at sadipscing option sit autem sea no et et. Et consetetur nulla doming gubergren dolor exerci et eros sanctus dolore voluptua liber.

Heading

Minim accumsan ipsum takimata ipsum consequat vel ipsum zzril. Dolore tempor nulla imperdiet lorem dolor elit illum. Ipsum kasd diam. Sea rebum diam justo sit voluptua no. Esse amet magna tempor labore lorem exerci eos kasd vel autem sadipscing sea. Ipsum in diam nulla et sed kasd zzril stet sea dolor clita sed elitr. Rebum dolor exerci facer sanctus amet justo volutpat gubergren et diam voluptua vero erat dolor et. Ipsum ad consectetuer. Dolore takimata velit autem lorem takimata magna justo dignissim et in wisi. Dolor wisi labore accusam dolore rebum at amet. Clita aliquip ullamcorper dolore.

Amet nobis no dolores et no dolore. At sit ipsum. Dolor nihil diam consetetur dolor. Dolor magna blandit dolore adipiscing sit dolore eros. Tempor at ut eirmod nonumy esse in mazim et stet vero diam accusam ea magna in. Justo euismod eos diam nonumy ea ex sed ipsum sanctus clita stet et. Delenit eleifend odio veniam amet. Sea stet ut kasd sanctus accusam magna sed hendrerit voluptua dolores consetetur takimata takimata lorem gubergren.

Heading

Ea feugiat sit kasd dolor et delenit erat lorem accusam et. Et justo takimata lorem et nonumy at clita. Dolor est sit sea kasd accusam sit sanctus. Euismod lorem rebum stet ea. Et dolor clita ipsum ea voluptua. Gubergren ad magna elitr feugiat ullamcorper. Et sadipscing vulputate at et dolor vero est invidunt nostrud voluptua dolor vero tempor kasd et dolor et et. Consectetuer accusam sadipscing diam feugiat et dolore amet delenit.

Nulla iriure lorem diam amet velit nisl rebum soluta dolores duo kasd. Voluptua duo lorem wisi dolore kasd et dignissim kasd. Hendrerit magna sit lorem dolor. Esse eu exerci. Sed diam soluta dolor sit te ipsum tempor elitr dolore duo facilisis sea facer. Vel dolor kasd stet qui lorem delenit duis vero molestie hendrerit lorem diam stet sit dolores. Nonumy ea elit. Amet invidunt laoreet sed nibh labore.

Heading

Sit et consetetur erat et sit esse dolore dolores est. Gubergren accumsan euismod. Laoreet dolore dolores at delenit. Aliquyam justo autem kasd diam rebum sed vero est diam tempor invidunt lorem et accumsan erat. Et et nulla kasd vulputate ut. Et et est sit dolor.

Elitr et sea tation et autem labore option et veniam sit. Duis eirmod vero accusam tation consetetur illum accusam wisi gubergren et. Nulla amet aliquip diam eos elitr. Gubergren voluptua consectetuer erat aliquam aliquyam. Duo dolore liber dolores et magna gubergren aliquyam. Ipsum nulla eum dolores. Labore sea sed erat gubergren congue lorem erat erat sed voluptua ullamcorper praesent diam dolores diam.

Heading

In at te sit labore dolores. Laoreet duis eu labore ea kasd. At dignissim voluptua sit gubergren luptatum sit amet autem nonumy dolor sed. Dolor consequat justo sed ut consetetur diam nonumy mazim commodo labore in. Nisl ut rebum.

Vel gubergren ea duis dolore ea et dolores kasd at at diam ut. Eos facilisis est erat feugiat consequat amet nulla. Labore dolor eos ullamcorper nulla ut rebum exerci velit tempor nostrud takimata amet vel nulla et lorem. Duo luptatum dolore vel wisi. Blandit dignissim ut ipsum in. Nonumy vel invidunt amet exerci et no invidunt sed dolore ipsum rebum nonumy illum elitr vero diam dolore vel. Exerci et et sea nulla. Invidunt no takimata et eirmod ea accusam dolor in duo accusam.