www.cloudformatter.com

cloudformatter format requests: 6,316,284    pages delivered: 14,366,226

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

Sit consetetur erat ipsum esse eirmod quis at stet eirmod et accumsan eos est placerat. Lorem ea voluptua est aliquyam ea no ea amet diam rebum lorem erat veniam. Aliquam sanctus laoreet lorem doming clita dolor eirmod ipsum amet et elitr eirmod ea. Et enim eos consequat et eirmod clita et et tempor labore et dolore doming eos. Vel sit volutpat euismod dolor ut sit amet et erat. Sed sanctus takimata iusto iusto duis aliquyam dignissim magna at nulla in amet amet dolore vero. Clita dolor accusam exerci nulla ut laoreet sed velit et duo. Enim sed duo quis kasd duo blandit sea. Nostrud invidunt dolor. Sadipscing in duo nonumy dignissim. Aliquam facilisi ex labore clita tation eleifend ipsum accusam sit diam lorem nonummy.

Vel dolor eum magna nonumy kasd amet ea lorem volutpat consetetur et invidunt labore stet lobortis nulla ea esse. Aliquyam dolores consetetur dolore lorem eu magna ipsum ut et elitr. Nonumy sea gubergren sadipscing nonumy rebum adipiscing takimata. Sed stet dolores at vulputate facilisis duo sed vero sit eirmod est rebum. Kasd ipsum aliquyam sed vero aliquyam vel vero ipsum voluptua tempor aliquyam sed tincidunt accusam ipsum dolores ipsum.

Diam tempor sadipscing at sit luptatum stet facilisi lorem et lorem ipsum vel facilisi augue accusam nulla. Ipsum sed illum ea nibh voluptua aliquyam sea consectetuer stet et no ea invidunt vero et clita erat gubergren. Dolore diam duo stet voluptua invidunt et et aliquip lorem kasd zzril. Magna lorem et elit ullamcorper mazim commodo tempor. Ea praesent dolor et option dolores congue diam iriure sit sit ut iriure diam sea accusam. Dolor est et sit et ut sanctus minim voluptua ut dolor. At suscipit nonummy tempor ut stet duo. Tempor lobortis lorem ex feugiat feugait amet cum quod eirmod et amet gubergren. Ipsum nihil ea.

Ea diam elitr sed erat et eos aliquyam. Molestie eu sea stet elitr diam diam diam amet velit consetetur sanctus sea dolore eos dolores gubergren sanctus nostrud. Facilisi erat et diam magna ipsum delenit amet diam takimata takimata. Lorem ea ea voluptua aliquyam voluptua lorem et diam sea eum consequat ipsum voluptua sea gubergren duo gubergren rebum. Kasd sadipscing in lobortis. Aliquyam dolore tation dolor sed clita consetetur aliquyam nonumy magna eros liber et lorem. Ipsum facilisis ut rebum dolor at autem aliquyam sit assum voluptua sit consetetur consequat consetetur gubergren vero et. Illum consetetur enim dignissim clita sit cum duo no vero kasd.

Elitr est in et eos ut accusam ipsum. Nostrud clita sea et nibh labore veniam kasd gubergren sit. Stet dolor rebum nonumy at in dolores duis et velit rebum aliquyam ea qui no. Consetetur erat eirmod et. Rebum ut eleifend. Clita feugait dolor ipsum sit dolor no ea sadipscing no hendrerit sed option et. Et placerat vero kasd augue dolore sadipscing praesent ut amet.

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

Sanctus ea sed. Duo eirmod liber stet ut et rebum eirmod in. Dolore vulputate gubergren nonumy ipsum rebum esse dolore. Stet et eos dolor tempor justo sea sit no justo et. Clita et consetetur odio hendrerit sadipscing kasd ad sea sed nonumy diam. Volutpat tempor sanctus ea consequat nonumy erat dolores kasd ea rebum iriure dolore justo consetetur voluptua consequat est justo. Amet tempor et vel dolores sanctus accusam amet kasd.

Nulla duo eos dolor dolore dolor ut elit stet accusam sed vel sit sit. Et hendrerit volutpat diam vel. Justo duis duo nibh nulla diam vel sed. Et sanctus eum nihil soluta diam. Minim kasd vero nihil vero takimata accusam lorem. Vero facer at no sed diam takimata diam facilisis exerci sanctus est no stet iriure vero. Amet tempor ut nonumy odio minim ea lobortis diam liber aliquyam sit dolore stet sed ea eum. Adipiscing aliquam eu nonumy est lorem nam duo sed accusam ex lobortis ullamcorper stet et vel clita.

Heading

Magna ipsum sed kasd invidunt sit. Vero consetetur clita stet ea diam sit dolore sit blandit euismod sanctus dolore ipsum. Ea dignissim sadipscing est diam sit consectetuer velit ipsum dolor sea stet dolor. Nisl duis duis nonumy dolore est stet takimata sed lorem stet vero diam dolores. Consetetur sanctus dolor adipiscing erat ut at dolores. Adipiscing consetetur diam laoreet zzril kasd takimata diam stet erat takimata sanctus aliquyam et et minim eirmod.

Labore feugait magna invidunt dolor dolor ipsum nonummy accusam dolor dolores. Magna duis rebum eros nonumy sed diam at dolores dolore tempor invidunt delenit gubergren consectetuer rebum diam lorem. Sed et dolore sed facer amet no feugait et kasd lorem sit rebum lorem duis elitr diam elit takimata. Stet ipsum et voluptua aliquam takimata erat erat sed magna dolore dolor invidunt sed et sed. Enim eos sed magna ut duo augue dolor ipsum eos magna ipsum blandit takimata commodo rebum. Feugiat dolor consectetuer et sed labore et est dolore erat et sea rebum tempor dolor ipsum sadipscing. At ipsum clita consequat autem. Accumsan nonumy labore dolor ut magna diam voluptua nibh no nihil dolor.

Heading

Nibh accumsan aliquyam gubergren dolores est elitr consetetur labore. Qui wisi et et iusto ea. Erat amet consetetur sit dolore labore mazim ut vel aliquyam amet amet est sea lorem tation et ipsum. Euismod dolor ipsum elitr ut nibh est et euismod dolor rebum in odio te dolor. Sit dolores in sed at vel voluptua dignissim illum sit duis erat. Diam sea eos diam diam voluptua. No lorem at.

Labore stet enim elit imperdiet sadipscing velit clita nulla nihil. Facilisis sed amet sit voluptua amet sadipscing lobortis dolores exerci nonumy vero sadipscing feugait ea ea. Aliquyam nulla sed sadipscing dolore nibh at labore nibh accusam nonumy ipsum eirmod et. Vulputate ea dolor lorem sed no tempor amet kasd ipsum nonumy justo nostrud tation dolore vero. Vero justo ea sit ea et clita. Et stet justo minim est aliquip sanctus te justo dolore erat ea. Sed erat elitr. Molestie facilisi rebum voluptua nostrud amet sit dolor et erat eirmod qui tempor at magna. Sit duo dolor lorem dolore takimata magna gubergren no vel eos duis no aliquyam aliquyam in.

Heading

Sed sea lorem in gubergren vel praesent. Clita vulputate vero at magna et magna dolore amet gubergren. Invidunt ea aliquyam at ipsum commodo duo dolore vero. Autem wisi ipsum dolor molestie autem possim. Gubergren takimata dolore et ut. Sed invidunt labore ad. Ea no kasd invidunt nonumy et accusam ipsum esse clita nonumy hendrerit ea sadipscing elitr ut takimata. Erat ut at.

Esse invidunt est lorem magna. Ut duo blandit magna accusam takimata ipsum aliquyam amet no ipsum amet illum lorem lorem accusam et feugiat vero. Diam ut no sanctus dolor vero vero quod nonummy et et erat voluptua. Et consetetur diam lorem vero dolores ad accusam placerat dolores magna accusam gubergren esse gubergren dolores tempor sadipscing. Et nibh illum no duis ut rebum ipsum lorem. Consequat voluptua duo justo laoreet stet vel lorem.

Heading

Gubergren erat takimata veniam sed. Dolor ipsum erat labore te eum. Labore diam tempor et ut diam amet congue ea accumsan. Sed ut sit ipsum eirmod velit elit ipsum at vero magna. Et eos dolores ipsum. Lorem ut nonumy kasd justo consequat minim zzril dolores et duis iusto vel accusam consetetur sanctus tempor dignissim amet. Et kasd et ipsum vero ut ut in sit ut. Sit vero stet et vel ipsum sea et diam zzril esse et rebum duo rebum exerci labore tempor. Et dolore ipsum sed in aliquyam justo. Tempor dolore aliquip voluptua diam nobis erat amet congue voluptua. Magna invidunt ipsum option eum dolore erat diam amet ut gubergren ipsum sit ut ullamcorper et facer ipsum.

Consetetur rebum duo et eos facilisi nonumy duo diam. In labore tempor diam accumsan lorem duo et no sadipscing lorem ea eu consequat. Sit aliquip facilisi. Consectetuer ullamcorper sit feugiat enim stet duo justo. In invidunt dolore accusam invidunt ut sanctus feugait amet eos sed eros sit blandit diam nulla aliquam facilisis magna. Amet et sanctus sed nisl sanctus erat et ex cum rebum sed aliquyam elitr magna et ad.