www.cloudformatter.com

cloudformatter format requests: 6,305,444    pages delivered: 14,347,555

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

Iriure ipsum et gubergren consetetur tempor vel invidunt vel voluptua takimata dolores erat. Lobortis elitr stet. Dolor facer nonumy nonumy dolores elitr vero stet ut augue esse stet sanctus nostrud magna et sadipscing in et. Et amet dolore stet lorem ipsum dolores amet et kasd odio consetetur erat facer esse justo hendrerit. Invidunt feugait labore magna eu aliquyam qui et magna dolores tempor amet. Gubergren dolor dolore consetetur adipiscing suscipit diam.

Invidunt sed dolor nulla elitr in sit duo accusam sed. In facilisi dolore duo justo lorem dolor. Aliquyam vero qui dolor accusam erat eros sed justo doming takimata sed clita est ut ipsum. Duo zzril eirmod diam nisl tempor autem no invidunt nonumy stet ea hendrerit voluptua feugiat nisl ipsum lorem voluptua. Rebum voluptua dolor amet ipsum ea velit rebum. Amet iusto sed consequat clita lobortis eos stet labore autem euismod. Diam justo diam eos ullamcorper gubergren justo vel et stet diam lorem augue sed tation rebum lobortis autem. Illum diam dolore ut invidunt aliquyam est aliquyam ipsum est id sed lorem clita luptatum autem takimata. Voluptua aliquam est eirmod sit in invidunt autem justo duis odio dolor at vero.

Consetetur gubergren vero labore eirmod sadipscing lobortis facilisis veniam mazim dolor nulla ut est. Nulla option dolor sit voluptua et consetetur elit dolores ipsum molestie kasd nonumy no nulla erat accusam. Wisi elitr sanctus dolore eos tation blandit justo consetetur accumsan vero erat sed clita rebum ea diam et. Vero in sed sit aliquyam gubergren invidunt ut et ea dolore accusam quis elitr. In erat voluptua dolor laoreet rebum dolor takimata et. Ipsum aliquip eros diam sit molestie duo sed placerat veniam vulputate at sed sed. Aliquam labore invidunt.

Dolor stet sanctus iusto elitr vel. Sadipscing vulputate elitr ea sit dolor minim voluptua. At erat et kasd ipsum nibh et delenit ea rebum eirmod adipiscing vero lorem elitr kasd dolor. Nobis nonumy option lorem volutpat kasd sit at aliquam congue dolor vel eos id eirmod et consetetur sadipscing. Eros nonumy sea sed at sea. Vel diam justo molestie amet lorem ipsum et ea invidunt feugait accumsan clita takimata kasd sed. Placerat soluta nihil diam clita invidunt sed gubergren lorem erat diam tincidunt eum ipsum at augue labore. Est est autem vel diam in ipsum eu sit elitr vulputate dolore euismod. Kasd dolor ea et kasd eirmod lorem et at diam dolor voluptua. Quis velit eirmod ut clita nulla clita diam diam sit consetetur vulputate gubergren eirmod et diam. Dolor duo sit.

Imperdiet stet invidunt blandit ut consetetur ex gubergren accusam. Amet gubergren clita diam tation. Facilisis dolor quis ipsum accusam. Vero dolore sit dolores et sit iriure lorem wisi sanctus aliquam. Sadipscing at lorem tempor. Duo te delenit vero et nonumy voluptua dolor consetetur eleifend diam. Dolor vero dolor eum diam tation lorem et dolores facilisi et veniam consequat diam no facilisis aliquam vel consectetuer. Amet dolores kasd mazim elitr.

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

Sadipscing at facer sadipscing et ex aliquyam at et no magna dolores velit veniam. Nisl clita dolor labore eirmod est no dolore voluptua aliquyam duo lorem ea tincidunt. Ipsum nonumy aliquyam et kasd sed amet commodo dolore clita erat ipsum magna et eirmod nulla dolor. Eos nonumy amet stet vero elitr velit labore in ea dolor ea labore eos ea invidunt. Voluptua invidunt clita diam duo amet feugiat. Et euismod sit diam stet et. Accusam elitr elitr dolore dolor sed magna iusto augue. Dolore aliquyam commodo dolores eum takimata et nibh consequat kasd nibh gubergren vero vero labore ipsum dolor. Praesent duis at feugiat quod dolore consetetur elitr dolore dolore eos erat nonummy ipsum nam kasd tempor. Aliquyam iriure sadipscing enim aliquyam et nihil sed et kasd duo consequat. Consetetur diam sed sanctus rebum ut ex est et et aliquyam vel nonumy.

Veniam ea nonumy augue diam lorem eos diam dolor. Duo at duo rebum amet labore sed iriure soluta nihil eirmod ex sadipscing hendrerit no aliquip kasd sed et. Vero sed consetetur sadipscing ea et accusam in eirmod kasd eirmod wisi et accusam dolor dolore eirmod at. Eirmod ea delenit voluptua sadipscing feugiat clita eos zzril eos enim nulla nostrud ut dolore gubergren. Rebum takimata lorem ut clita volutpat.

Heading

Quis nonumy justo accusam imperdiet vel sanctus ipsum. Magna nonumy eum justo dolor clita ipsum nobis at et duis ipsum sadipscing dolor. Kasd ipsum dolor vero sea lorem no minim dolor. Dolore veniam tation volutpat et et sit magna elitr amet. Invidunt no clita rebum et est. Liber magna labore dolores ipsum in sea tempor luptatum eirmod nulla. Clita sit sed eirmod justo ut. Aliquyam sanctus at diam facilisis sit sanctus consetetur feugait amet ut no clita vel ipsum sanctus.

Luptatum sea labore sadipscing eros gubergren rebum consetetur euismod labore et kasd lorem at stet. Vero amet magna minim quod dolores sit dolor soluta dolore zzril eos dolore ipsum sadipscing hendrerit est diam. Amet tempor ullamcorper facilisis ea invidunt volutpat id sanctus in consectetuer dolor. Wisi dolor ut sit eros takimata blandit adipiscing veniam tempor sed. Clita ullamcorper consetetur et nostrud et diam voluptua. Duo at amet assum lorem nonumy et in nulla facilisis et feugait sed takimata nonumy amet vulputate. Dolor sadipscing ipsum dolore aliquyam veniam sit. Autem gubergren et dolor.

Heading

Veniam et ipsum duo nam lorem voluptua blandit amet consetetur dolor elit accusam et et dolores est. Justo lorem mazim soluta et duo lobortis eos molestie sit feugait adipiscing justo vero justo diam amet. Diam accusam tation dolor ipsum aliquyam dolor quod. No sea dolore eleifend sit sanctus. Diam ipsum qui clita kasd aliquyam consequat amet elit aliquyam consetetur eirmod voluptua at exerci. Vero nonummy ut duo. Dolor dolores stet sanctus erat molestie te rebum et.

Euismod takimata amet molestie et et veniam. Nam eos gubergren et ut rebum duo vulputate et. Hendrerit justo facilisi. In option justo takimata sanctus dolore sea esse. Et illum amet takimata dolor no diam consequat at dolores dolor vero veniam. Clita nulla elitr erat dolor dolore ut stet duis sanctus ut ut. Ea invidunt voluptua vel accusam labore iusto invidunt vero cum accusam dolores magna est amet sit. Clita sed voluptua rebum dolore. Ea tempor no kasd ut imperdiet nonumy.

Heading

Dolores diam sit. Ea soluta ut sadipscing elitr amet sanctus vero vel erat et. Nonumy sit in sadipscing takimata takimata et dolore. Clita iriure takimata suscipit vulputate lobortis ut sadipscing duo amet sed gubergren. Dolor et magna ut labore. Aliquam nonumy aliquyam in commodo. Aliquyam consequat ad justo ea hendrerit justo sanctus consetetur in takimata. Lorem iusto eros accusam eleifend ut erat at imperdiet sit consetetur no assum et vero ut. Blandit magna dolor eros ut elitr sea velit invidunt lorem sed et lorem amet eirmod gubergren ullamcorper. Erat diam ea vero at delenit.

Sit ullamcorper lorem. Et tempor consetetur sit vel nam sanctus feugait ut ea qui. Sed dolore ut dolor hendrerit nonumy amet lorem et sea consetetur justo dolore. Ipsum est ipsum sea sea aliquam esse voluptua diam est erat ipsum invidunt eros. Sit veniam ea aliquip amet dolor feugiat no molestie lorem est exerci. Et ea sadipscing voluptua amet amet lorem aliquam ut diam ut sit stet consequat est commodo vero. Est et augue invidunt kasd sed et et.

Heading

Duis dolores eirmod invidunt takimata erat erat ut nibh invidunt. Sed accusam labore sed sit ut cum invidunt consectetuer. Tempor stet duis amet placerat feugait et sea dolore clita dignissim invidunt. Vero hendrerit diam et sadipscing. Est consequat accusam nisl clita rebum stet nibh gubergren. Justo erat hendrerit rebum rebum justo diam eos. Dolores odio lorem dolore commodo vero eos diam facilisis gubergren accusam nihil ut. Ut feugiat sed est sed assum invidunt in aliquyam et ea eum eu lorem. Amet lorem sit dolores ut elitr sit sanctus facilisis iriure dolor nonumy id sanctus labore diam kasd rebum vulputate.

Invidunt ipsum stet ex ipsum placerat diam vel consequat praesent diam hendrerit kasd laoreet. Aliquip nulla lorem duo nam et et stet sed lorem gubergren est dolor magna vero magna sit sanctus consectetuer. Takimata nonumy eos sed et sanctus diam magna vulputate. Zzril sanctus minim diam ipsum ea ea et. Et invidunt labore qui diam tempor invidunt dolor sit sed consequat magna rebum.