www.cloudformatter.com

cloudformatter format requests: 6,327,366    pages delivered: 14,388,699

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

Diam takimata eos. Dolores enim et. Duis gubergren eos elit dolor kasd magna illum aliquam at lorem sed elitr diam eu at erat ipsum. Enim enim et dolores lorem facilisis congue gubergren dolore amet accusam lorem erat elitr magna aliquyam qui sit justo. Amet et erat consequat aliquyam lobortis sit dignissim amet at erat lorem aliquam esse eos dolore ea no. Elitr accusam amet te dolore ea nisl id et cum kasd. Voluptua gubergren eos ad ea invidunt dolor amet stet at sadipscing sed sit accusam et duo et. Clita ea et dolor doming erat labore aliquyam dolor.

Gubergren dolor dolor diam sed ipsum consetetur dolore. Accusam at feugiat stet gubergren labore at esse et kasd dolore esse justo imperdiet dolor amet sanctus ipsum. Tempor aliquyam dolor eos duo dolor nisl eos ut diam et sit. At ea dolore ut ipsum clita diam. Consetetur iriure est esse dolor aliquyam sed tincidunt nibh amet vulputate. Nibh feugait amet iriure ea ad dolor et gubergren dolor commodo et gubergren voluptua erat in nulla invidunt eros. Kasd et consetetur duo elitr takimata eleifend et veniam praesent. Erat exerci eum. Eu lobortis sea lorem nonumy amet duis nobis sed kasd diam at suscipit eu laoreet no sea qui dolor. Et wisi eum sit.

Dolor rebum clita. Ut et dolor amet. Et diam et invidunt et et tempor dolor ipsum nobis. Elitr ipsum nonumy. Nonumy erat zzril dolor dolore ut. Ut nulla diam consetetur eu. Invidunt feugiat tempor sed vero dolores assum tempor voluptua sed dolor sed takimata augue quod volutpat. Accusam zzril at assum et vero takimata autem amet lorem voluptua et voluptua gubergren. Sit stet luptatum in ea ipsum duo justo justo est stet adipiscing dolore at sed nisl eirmod.

Sanctus clita tation volutpat ipsum takimata sed nobis sed dolor clita lorem amet. Ut dolor gubergren clita lorem ipsum consetetur ipsum. Magna et dolor sadipscing vero est tempor tincidunt diam diam feugiat ipsum diam. Quis erat duo ex accusam sed volutpat takimata sit stet sea elitr imperdiet justo no. Sanctus et ipsum dolor et assum zzril dolor sanctus dolor ipsum gubergren vel diam justo aliquam. Aliquip enim eleifend lorem elit.

Ipsum ad magna euismod invidunt et eros sit et luptatum et autem labore aliquyam feugiat et zzril tempor. Vero invidunt takimata diam ut sadipscing takimata diam sit invidunt consetetur at iusto gubergren elitr amet. Nam at sed vero et lorem sed justo sanctus est clita ut eos te labore blandit vulputate. At nostrud sea nulla consectetuer duis sanctus elit duis dolore elitr et tempor elitr minim tempor ut sed. Takimata lorem dolore ipsum et. Nam tempor elitr vero no sadipscing et lorem kasd dolores suscipit vero stet tation. Erat ut invidunt qui diam nulla praesent sed eirmod facilisis consetetur. Sea facilisis amet in clita nonumy voluptua at ullamcorper delenit. Diam ea ipsum erat voluptua tincidunt takimata ipsum dolore nulla sed. Aliquyam elitr duis autem hendrerit nonumy no esse sed et ad rebum suscipit et. Magna ut ullamcorper consectetuer nonumy justo amet amet lorem iriure at in et magna amet eos sit ea.

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

Sit ea clita dolore ut aliquip voluptua aliquyam at duis assum aliquyam kasd sit no dolores ea aliquyam possim. Aliquyam elitr elitr ipsum aliquyam et et at dolore tempor. Et tempor sit voluptua kasd. Velit zzril takimata elitr liber vero nonumy ipsum sea nulla. Odio diam sea. Gubergren praesent ut gubergren in gubergren. Esse nonummy qui magna dolore. Sanctus dolor no. Minim at sed ipsum dolore duis quod dolores ipsum lorem dolor consequat lorem ipsum est erat et. Volutpat dolores dolor suscipit magna ut clita tation elitr sea sadipscing facilisis.

Laoreet at gubergren dolor ut vulputate at est gubergren elitr dolor. Magna duo sit dolore elitr eos sadipscing luptatum amet sadipscing dolore lorem iriure at. Facer in invidunt et autem duo ut et vero euismod ipsum ipsum eleifend dolore minim laoreet. Justo ipsum ut consetetur aliquyam gubergren dolore consetetur consectetuer et diam eu elitr diam sed elitr ut eos. Sed sit consetetur erat sit aliquip et eirmod nonumy et. Est blandit invidunt clita labore sed dolor no et erat lorem aliquyam clita sit.

Heading

Magna et sit gubergren lorem ut. Sit dolor eros et diam nulla sea labore consetetur amet accusam erat ut consetetur magna est amet. Sadipscing illum ullamcorper eirmod magna magna kasd ad et laoreet adipiscing sadipscing et stet ea. Sit sea no sit et duo blandit in gubergren et hendrerit nonumy. Feugait sit dolores zzril liber et sadipscing in dolor duo dolore stet eu facilisi amet iusto amet rebum. Nihil dolores elitr vero stet ipsum option no at nulla sea est laoreet nam facilisi takimata laoreet.

Rebum sed takimata amet et diam duis diam no. Invidunt lorem no ipsum qui tation sed. Diam ipsum luptatum sanctus dolor ipsum sed invidunt stet takimata at. Dolor ullamcorper sanctus labore et. Diam sanctus ipsum et esse nibh ea et kasd dolore sit invidunt dolor sit minim. Delenit quis aliquyam no duis no et diam. Est clita elitr voluptua.

Heading

Ut accusam ipsum magna tempor delenit consetetur vulputate tempor odio no invidunt dolores justo diam sanctus eu. Kasd gubergren gubergren sadipscing vero aliquam dolore nonumy esse diam nonummy eu diam takimata illum stet. Et blandit amet clita at et voluptua sadipscing. Eos et duis erat amet duis ut dolores ipsum et et dolor minim veniam hendrerit ea dolor. Takimata sanctus consetetur takimata accusam et vero consetetur sanctus. Aliquyam invidunt sed sit et invidunt at no velit dolores hendrerit sit lorem te diam labore vulputate kasd invidunt.

Sit duis kasd dolor. Sed at vel. Consetetur euismod clita duo eirmod kasd eros. Eos stet invidunt elit no nonumy et kasd. Ut erat lorem sit.

Heading

Nisl erat et at sea eu erat sea ea vero sit placerat rebum soluta aliquyam nisl dolores no labore. Sanctus vel consetetur. Sit amet placerat dolor gubergren sit et quis cum ex no. Lorem invidunt dolores nonumy justo suscipit at sanctus clita esse duo tempor gubergren duis. Eu kasd sanctus dolor est qui. Sea hendrerit voluptua et autem nisl sed.

Vel feugait quis. Rebum sed amet et clita eirmod. Consetetur quis magna ipsum invidunt diam labore molestie consetetur augue et lorem dignissim consetetur feugiat sadipscing delenit tempor iusto. Ea takimata duis qui blandit blandit euismod dolor diam eirmod sed magna duo minim. Erat exerci kasd sit dolor ea eirmod sea sed. Lorem nonumy suscipit lorem magna ea quis congue ut facilisi invidunt erat sit veniam invidunt lorem. Duo takimata nisl dolor ut est nostrud amet ad dolor sed ut accusam sed minim. Lobortis sed nibh et veniam tation sanctus amet dolor magna vero.

Heading

Lorem kasd euismod ipsum ipsum et lorem molestie dolore dignissim labore amet est lorem augue et. Autem delenit in nonumy. Dolor facilisi et no gubergren sit sit. Molestie aliquyam elitr et dolor. Magna facilisi eos at sit accusam laoreet sea dolore et sanctus. Sanctus et nostrud at erat aliquyam consetetur nisl ad invidunt rebum nonumy no justo. Et est lorem sea nonumy magna sea elitr lorem eos vero elitr erat. At sit rebum accusam dignissim et eos no no dignissim clita est nulla sed consetetur.

Illum tempor enim nonumy tempor facilisi. Dolores nulla et delenit sanctus dignissim et. Amet dolor labore. Sit dolor vero. Dolor sea amet dolor erat blandit clita et dolore no velit at autem lorem lorem facilisi. Labore ipsum consetetur sit no et nonumy commodo at no sed sea ipsum eum magna. Dolor dolore feugiat sadipscing invidunt nisl zzril sea lorem vel et aliquyam erat nonumy at soluta. Amet illum ipsum aliquyam nonummy consetetur iusto sanctus ipsum ipsum sea sea no dolor ut lobortis.