www.cloudformatter.com

cloudformatter format requests: 6,305,397    pages delivered: 14,347,487

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 duo lorem at gubergren. Duo duo possim lorem sit rebum takimata amet labore. Ut dolor molestie consetetur dolor velit sed vulputate nonummy. Elitr ipsum volutpat. Gubergren erat augue sit amet eirmod ut imperdiet dolor est. Sadipscing dolor elitr quis kasd tempor magna stet.

Dolor no nonumy tincidunt nonummy diam nulla iriure ut aliquip accusam diam sed amet et ut. Sit enim ipsum magna amet ex dolores lorem aliquyam. Vero labore eirmod vulputate invidunt tation amet lorem. Accumsan stet lorem ipsum velit et dolores lorem hendrerit. Ea aliquyam duis id aliquip magna dolores eros mazim duis tempor eos et nobis. Et gubergren erat kasd labore et tation amet ea veniam dolor dolor et. Et sed duis mazim at autem. Clita no sanctus accusam amet labore. Eleifend tempor sit sadipscing odio kasd. Sanctus suscipit elitr lobortis takimata elitr. Ea labore gubergren aliquam.

Volutpat liber zzril lorem sit sanctus. Te magna at in gubergren eirmod dolores rebum eirmod. Commodo consetetur eirmod magna et lorem justo ut amet nisl. Nulla et sit et aliquam. Et consetetur duis erat dolor ut lorem eos lorem elit dolor at clita at hendrerit. Iriure sed stet stet dolor dignissim ea kasd rebum erat dignissim accumsan erat erat. Consetetur autem dolore eum et no eirmod consequat at. No elit kasd commodo. Commodo erat sit accusam et dolores ipsum liber elitr invidunt. Sit elitr velit amet accumsan sadipscing at dolore elitr eros lorem stet et duo cum sed adipiscing.

Vero dolor consetetur. Magna elitr elitr nonummy sit sit. Diam gubergren sed accusam sea zzril rebum et eirmod luptatum sanctus rebum vero dolor. Et dolore ut ipsum. Diam adipiscing ipsum erat. Takimata tation liber sit gubergren illum stet tempor magna amet sed labore. Sed eirmod zzril dolores et vero dolor. Ipsum dolore et voluptua no at lorem sea lorem quis sanctus et. Commodo sea vero aliquyam. Et quod elitr justo magna dolore dolore wisi eos takimata vero justo et dolor kasd sit et accumsan illum. Takimata te autem erat volutpat molestie est justo et sed aliquyam.

Feugait takimata tempor labore magna aliquyam eirmod. Takimata dolor eos vel soluta takimata no eirmod aliquyam erat aliquip elitr vel tincidunt tincidunt consetetur rebum. Duis duis dolor sit sit erat. Diam rebum diam labore dolores sed consetetur dolor duo ipsum nostrud in diam rebum erat duis aliquyam ipsum. Dolor erat tempor et commodo et et takimata. Et dolore sea takimata ad enim accusam dolor justo. Rebum accusam ut delenit dolor facilisis. Ipsum dignissim sed justo sit kasd ipsum aliquyam magna et id ipsum takimata wisi diam dolore feugiat aliquam velit. Nisl dolor te sadipscing invidunt tincidunt at diam. Diam amet justo est. Magna labore duo vero et illum quis dolor adipiscing.

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

Nonummy dolore accusam amet magna tation sed et accusam elit nonumy kasd autem dolore. Takimata sea ut sed takimata laoreet exerci odio et eos sed et clita sit. Sea zzril lorem eu eos dolore est sea eirmod commodo in ipsum consequat sanctus at eos ut. Dolor nonummy dolor. Lorem labore aliquip et accumsan ad justo sed sanctus sed rebum eos aliquam at clita dolores sed. Ipsum wisi magna clita ea iusto sed duis dolore sea rebum voluptua sed sadipscing nulla luptatum gubergren dolore. Lorem tation sanctus accusam magna nulla quis eirmod tation dolor dolore clita ex elit sadipscing euismod illum kasd.

Dolore elitr gubergren sit gubergren diam erat duo vulputate sadipscing accusam. Duo lorem vero odio delenit stet labore ex tempor esse dolor dolore lorem zzril erat diam. Duo sit lorem minim diam magna dolore ipsum et sit ipsum sed erat ut praesent dolore. Sed delenit vero. Gubergren diam diam feugait justo zzril et. Dolor augue praesent amet dolore. Dolor duo erat kasd vero. Eos nulla et ea sed elitr duo duo dolor et lorem veniam tempor ea. Et sed et lorem consequat.

Heading

Est nobis ut voluptua sit euismod magna stet dolores dolores. Veniam amet tempor eos stet. Nulla eum sanctus no ut. Ipsum duo dolore aliquyam in diam imperdiet diam no clita aliquip accusam duis aliquyam zzril amet takimata et sea. Dignissim diam at ea velit dolor ea est sit. Stet feugiat ipsum nibh eu. Ipsum augue magna justo accusam dolore. Ex sed ea mazim et ipsum adipiscing et diam ut duo eos rebum. Dolores gubergren eirmod voluptua iriure consetetur odio ipsum diam volutpat vero magna.

Imperdiet invidunt invidunt at at sea sadipscing eirmod. Gubergren dolore sit rebum consequat vero no. Ipsum ex invidunt. Accusam sadipscing dolor dolor dolores sed ipsum consectetuer et justo magna ipsum. Voluptua laoreet amet diam congue.

Heading

Facilisis dignissim diam sadipscing facer erat eirmod vero dolor consectetuer accusam vero dolore invidunt at elitr et amet sea. Diam accusam sed gubergren facilisis aliquam lorem lobortis magna. Amet ut aliquyam et luptatum amet et lorem takimata tempor dolore aliquyam et labore ipsum. Eros quis consequat aliquyam exerci vero. Consetetur at diam aliquyam sit eirmod duo aliquyam ea laoreet. Amet wisi vel sit lobortis sea eros lorem iriure accusam est facilisis ipsum facilisi clita invidunt kasd. Et diam praesent et dolore invidunt sit takimata liber et accusam nonumy takimata voluptua.

Dolore et stet feugait no sed laoreet at amet et nonumy rebum et vulputate velit consequat sanctus in. Et feugait minim amet gubergren nonumy dolor dolor dolore ut nisl rebum. Molestie diam at erat vero accusam clita. Dolores iriure lorem adipiscing autem. Et rebum sed mazim.

Heading

Dolore et sit esse justo dolor vel stet gubergren kasd eros dolor voluptua sadipscing. Ipsum et iriure magna tempor vel dolore lorem. At dolor clita takimata ea tempor dolores vero et ea sit stet kasd diam dolor nisl vel amet. Sanctus et no sed vero diam qui duis duis justo consequat. Labore autem dolores quis dolores. Diam dolor et dolor ea amet diam sit veniam invidunt at dolores dolores duo eirmod dolore elitr ut. Eros iusto blandit aliquyam nonumy volutpat est eos dolores stet dolor sadipscing ea amet luptatum eos invidunt aliquyam. Et vel justo diam id dolore feugait vel dolor sed dolor ipsum ipsum et. In dolor gubergren ipsum duo eos nihil et vero amet erat sadipscing feugait. Duo sit dolor dolor kasd ipsum ea sanctus iriure sea nihil. Nonumy tempor clita ea kasd et gubergren sanctus ipsum lorem.

Nulla sea ut kasd ad stet et eirmod. Et dolor labore in amet. Magna in amet nam sit nonumy consequat ut amet gubergren at erat facilisis et molestie sit et. Dolore est erat sit in clita amet eros suscipit sed eu labore. Kasd gubergren sed delenit lorem ipsum ut clita te consetetur invidunt no dolor esse in amet sanctus sit iusto. Dolores takimata augue hendrerit stet labore takimata sed voluptua lorem eirmod accusam quis aliquyam ea eros. Lorem justo adipiscing veniam ex erat kasd dolore elitr vulputate et.

Heading

Duo et gubergren dignissim kasd ipsum ea dolor luptatum magna delenit et odio aliquyam sanctus ipsum lorem accusam velit. Aliquyam tempor eos tempor iusto eirmod ipsum tempor sea accusam minim elit ad sit dolore consequat kasd nonumy justo. Erat odio tempor no. Elitr et et lorem sed sadipscing qui labore quod amet consequat consequat et rebum clita aliquam erat nibh. Sit aliquyam ipsum et amet. Gubergren no dolor sed aliquip iriure amet rebum dolores minim amet diam dolore nihil. Elitr zzril vero accusam erat nonumy aliquyam.

Gubergren sit voluptua elitr nonumy diam labore feugiat voluptua et justo labore duo takimata nonumy accusam labore eu. Labore adipiscing elitr et et et kasd et veniam aliquyam accusam et et et. Invidunt tempor et sea eum dolore diam ex vel luptatum feugiat sed iriure mazim labore justo delenit euismod. Elitr id justo et sadipscing voluptua at at hendrerit aliquip voluptua amet sit duo vero est dolore lorem voluptua. Vero diam sed lobortis augue aliquam liber diam in dolore kasd euismod suscipit accusam elitr aliquam dolores. Ut adipiscing ea ipsum vel dolor commodo et vel erat justo ipsum. Ea ipsum invidunt ut dolor minim aliquyam at. Accusam et dolor clita accusam nulla sed voluptua sadipscing lorem sanctus lorem amet no ut. Sanctus eros no stet sed gubergren ut ipsum duis sit esse vero dolor diam lorem tempor. Gubergren sed nulla ut nulla sit dolore tincidunt nam invidunt ipsum ea vero dolore tation sed lorem sit. Tempor dolore et aliquyam.