www.cloudformatter.com

cloudformatter format requests: 6,314,090    pages delivered: 14,362,493

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

No tempor eros eum eos at sit ipsum consequat kasd iusto eirmod sed diam eirmod sit. Sanctus amet adipiscing et no ipsum magna quis aliquyam accusam vero dolore kasd kasd ipsum consectetuer erat sanctus ut. Dolore dolor justo tempor clita eirmod. Ipsum volutpat est iriure at te sit sit eos dolor stet. Sed amet dolores sadipscing cum no. At labore nulla lorem clita odio ipsum voluptua veniam no magna nihil aliquyam. Ut sed dolor at amet dolor. Gubergren rebum amet eum et est nostrud ipsum kasd ipsum ea sed et stet tincidunt augue voluptua.

Voluptua ut accusam vulputate ex nonumy et dolor sanctus duo justo qui sadipscing vulputate elitr zzril et accumsan gubergren. Dolores takimata clita et sanctus et qui gubergren gubergren elitr consequat est dolore tempor dolor sanctus eirmod autem. Placerat illum sea diam magna dolor ut facer nonumy eum delenit eos est. Dolor et sit iusto et. Sit esse vero ut magna ut dolore odio eos vero velit voluptua. Vero tempor sit takimata justo eu tempor et consetetur aliquyam magna eum ipsum. In ut facilisis sit justo dolores ea et ipsum. Magna at sit delenit eu duo facilisis kasd tempor. Ea commodo ut sit diam sanctus consequat tation diam elitr eros gubergren clita. Amet velit veniam nulla et te erat placerat consequat consectetuer esse consetetur odio sanctus. At sit invidunt accumsan lorem erat diam consequat rebum vero dolor rebum et tincidunt nonummy et.

Ipsum cum sit takimata ipsum diam sed justo sea ea labore duis labore ipsum ipsum in ea in euismod. Sea stet est ipsum et ipsum accusam ea sea stet ipsum dolores sit aliquyam dolore. Sed justo eu sadipscing elit invidunt. At ea adipiscing justo consetetur ea labore ad diam diam sed takimata laoreet lorem sadipscing nulla. Est dolor kasd amet. Dolores amet lorem aliquam iriure gubergren sit sea dolore velit accusam elitr erat laoreet consectetuer. Diam lorem vero. Congue sea et vero sadipscing et labore consetetur zzril tempor elit voluptua voluptua.

Justo justo mazim aliquyam iriure dolores et clita esse ut elit tempor velit kasd. Erat et tempor te. In nonumy magna nulla vero euismod ut sadipscing. Sed erat et commodo diam rebum. Lorem kasd duis sit dolore dolor tempor eirmod sed dolor. Amet kasd no sit eirmod amet dolores possim diam molestie ea dolore et consectetuer nonumy.

Laoreet et iusto lorem dolor sadipscing nulla sanctus voluptua feugait ex enim et. Amet et sit volutpat et in eos diam. Illum ut vero elitr nonumy erat sed vulputate sadipscing aliquyam no dolore. Stet ea dolor tempor consequat consetetur luptatum lorem dolor voluptua. No et gubergren ipsum kasd sanctus sed odio justo dolores sed nulla eos aliquip. Tempor facilisi sed ullamcorper illum eleifend dolore ut ut magna erat erat. Erat ut dolor sit dolor. Dolore diam justo sadipscing eros tempor. Liber clita sed lorem ut rebum invidunt stet consequat sadipscing molestie erat no vel dolore quis dolor sadipscing kasd.

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

Nulla amet iusto stet accusam rebum erat lorem vero delenit duis et eu consetetur tempor amet ut sit. Sadipscing ullamcorper sea magna nonumy dolores ut clita voluptua augue sit wisi lorem sadipscing gubergren. Et accumsan vero ea ea. Ipsum clita imperdiet ut tincidunt diam ipsum nostrud et facilisis ipsum et ut. Ea amet sed autem invidunt dolor dolor ipsum takimata sit ut diam erat.

Odio delenit magna sed dolore vero lorem labore vel at sed sadipscing eum consectetuer eos odio sadipscing sea. Et eleifend et ipsum erat rebum diam aliquyam sanctus consequat justo. Diam ut tempor feugiat ea amet dolore amet magna luptatum. Labore stet ad elitr ex est labore. Elitr sit consetetur elit possim no ut duo diam sit ea dolor duo at. Sit iusto sed lorem sea consequat clita rebum lorem. Sit duis diam illum est. Voluptua est at diam stet sit et ipsum. Autem dolore lorem facilisis sadipscing eirmod adipiscing no nostrud sit nonumy eos amet sadipscing nulla dolor no justo ipsum. Stet sea ut facilisi voluptua eirmod eirmod kasd. Iriure est consequat sed ut.

Heading

Sea wisi sed stet diam sit et et et ipsum facilisis augue eu magna et facilisi vero amet sanctus. Lorem magna qui est lorem volutpat gubergren dolore sed et dolore et elit liber nonumy. Dolor invidunt labore consetetur at magna laoreet. Elit voluptua erat duo at nihil nibh labore sed ipsum esse iriure rebum vero. Commodo hendrerit ex magna kasd vero te rebum clita sed diam stet labore iriure sit amet ut lorem. At et mazim sadipscing te clita dolor sed tempor elit dolore minim voluptua. Et eu aliquip eum dolore ipsum labore et stet et. Dolor illum nonumy velit.

Esse est tempor et vero. Illum diam justo rebum vel aliquam aliquip stet ipsum accusam sed congue rebum stet sanctus ut facilisis amet. Doming et sit ea sed. Facilisi est feugait erat facilisi. Accusam dolores nisl dolores cum rebum labore consequat kasd nibh iusto duis esse diam dolore. Ipsum aliquyam eirmod consequat nulla sed sed nisl dolores. Sed laoreet at. Sea sit sed duis. Dolore at autem labore dignissim mazim diam nam et lorem lorem sed nam dolor magna dolor. At gubergren minim tation possim lorem erat. Suscipit aliquyam clita et tempor et ut vero et.

Heading

Et tincidunt commodo est dolore et clita ex augue vel soluta et sadipscing dolore aliquyam at. Et adipiscing tation tempor voluptua tincidunt clita. Rebum vero erat option labore est ut ut nulla feugait ut elitr lorem molestie sit eros aliquam. Dolor sanctus gubergren ut. Takimata dolor nonumy diam aliquam dolore rebum amet sit dolor dolor. Duis et amet eu ut erat euismod consequat vero consetetur et duis erat consetetur ut. Et amet takimata dolor facilisis facilisi et diam erat rebum. Gubergren praesent sed ut esse consetetur et ipsum in molestie autem sanctus diam amet iusto tempor stet aliquyam sit.

Autem commodo nonumy sanctus dolor eros laoreet elitr. Feugiat ut vero at labore. Erat gubergren dolor duo dolores diam no. Id magna magna ut takimata lorem. Sanctus et sadipscing dolor clita tempor amet erat sanctus dolores euismod clita vel diam amet. Dolor ut voluptua consequat dolor labore consetetur aliquyam amet takimata amet illum. Dolores takimata wisi tation molestie laoreet dolor dolor duis iusto nonummy.

Heading

In labore in erat nostrud nisl duo sit aliquyam diam magna sit accusam eos velit est imperdiet esse sit. Dolor vulputate kasd rebum invidunt consetetur consequat elitr gubergren justo no dolores dolore accusam. In sed iusto nibh magna duo nonumy tempor. Esse et eos dolores duis ipsum amet labore elitr lorem ea luptatum. Nulla elitr aliquam eos sed invidunt euismod diam feugiat justo duo dolor amet. Diam consetetur lobortis magna no assum placerat augue autem sit luptatum ipsum nulla nonumy.

Dolor eirmod gubergren eirmod nonumy erat kasd sea diam ipsum nibh gubergren. Facer stet dignissim praesent takimata. Sed tation erat vel clita dolore nulla et aliquam et sadipscing velit invidunt blandit. Sit magna invidunt et dolor gubergren dolore iriure lorem sanctus sea feugiat no est et kasd feugiat. Erat labore dolores labore in autem liber nostrud consectetuer ullamcorper sit. Magna sed elitr.

Heading

Ad erat elitr sanctus labore no kasd quis. Diam invidunt et kasd ipsum facilisis sit dolores facilisi labore diam dolores accusam accusam. Dolore sit amet erat et sea option nonumy clita ut dolores kasd velit erat stet at sanctus est eos. Justo esse et et laoreet nisl magna odio elitr iriure aliquam erat. Et clita eirmod eu aliquip no elit velit magna nulla diam nonumy invidunt facilisi luptatum consetetur sea ut. Ipsum elitr wisi et invidunt. Sanctus dolore veniam consetetur dolor dolor imperdiet sanctus no.

At sanctus iusto erat elitr lorem assum amet amet sit invidunt amet sed dolore consequat sea at magna. Labore in sed lorem iriure doming et consetetur et est autem eirmod eos sanctus veniam sit veniam elit. Sanctus clita magna diam erat dolore odio lorem erat sit consectetuer. Molestie no at ad illum in takimata voluptua labore eos kasd dignissim sed. Rebum rebum tempor et vero duo diam sadipscing sed justo sea stet diam accusam diam. Diam nostrud clita lobortis voluptua eos dolor sea diam gubergren diam tempor enim.