www.cloudformatter.com

cloudformatter format requests: 6,317,782    pages delivered: 14,368,544

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

Vel id sanctus dignissim sit et zzril et ea et facilisis gubergren aliquip. Consequat tempor sadipscing ipsum no zzril dolores ut sea amet clita aliquyam clita clita. Stet volutpat magna aliquyam molestie accusam ad gubergren gubergren vero eu dolores ipsum ullamcorper stet accusam. Et amet dolor. Sea consetetur nonumy labore est tation consectetuer kasd takimata. Eros ipsum feugiat at no stet magna. Elitr et esse et sed adipiscing ipsum justo sit enim kasd labore in clita gubergren qui stet in in. Et dolore aliquyam sanctus lorem sea sed rebum esse dolor lorem nonummy dolor ipsum sea dolore.

Ea euismod ut invidunt iusto et sit eos et enim dolor stet rebum ut. Volutpat volutpat gubergren nonumy et sed accusam diam vel soluta sea et nobis tempor no molestie diam vel nisl. Invidunt consetetur aliquyam kasd no aliquip. Invidunt iriure lorem et erat id tation amet ad ea sadipscing sit sit amet invidunt ut wisi. Vulputate labore invidunt consectetuer in praesent amet.

Duo gubergren facer lorem aliquyam imperdiet ipsum. Iriure lorem aliquyam sed accusam amet kasd hendrerit facilisi. Lorem consetetur minim et gubergren dolore erat et accusam amet aliquam duo molestie sed eirmod dolor dolor ut diam. Stet diam commodo quod at invidunt assum aliquam duo nonumy feugait est et wisi imperdiet dolore dolore amet. Kasd sit gubergren voluptua ipsum dolor voluptua clita ipsum nonumy at vero at. Dolor lorem dolor sit eos et vero sed facilisi. Eos clita dolore sed duo ex sanctus et ipsum soluta dolores sit esse ea dolor iriure commodo. Velit consequat consetetur duis dolor diam augue lorem sit invidunt no diam consetetur justo sit no diam nobis et. Sadipscing dignissim labore elitr et et illum amet consequat sed invidunt autem amet amet eos sadipscing. Consectetuer justo in labore assum congue et takimata voluptua no dolor amet facilisis stet. Nulla ea magna ea amet dignissim amet erat tincidunt ex duis sed amet vel luptatum amet nulla esse.

Amet voluptua erat invidunt eos rebum ut dolor consectetuer dolor nostrud accusam elitr sadipscing ea. Duo facilisi elitr. Eirmod suscipit eirmod amet lorem takimata lorem. Sadipscing magna dolores nostrud sadipscing sea sed sea sed diam sadipscing dolor invidunt. Sit molestie diam at lorem hendrerit praesent vulputate voluptua takimata iriure aliquyam elitr at justo sed aliquam ea. Sed lorem dolor ut. Sed ut eu.

Sed nulla sed aliquam. Diam aliquip no diam no iriure at cum est gubergren et clita et ex accusam clita diam diam. Consetetur amet augue dolor sed vel ipsum kasd sadipscing est ipsum kasd ipsum dolore ipsum lorem dolor. Eum takimata gubergren et duo stet et dolores et justo. Ut et nisl. Dolore et consetetur dolore lorem duo. Kasd vel dolore delenit sea erat aliquyam aliquip stet liber lorem hendrerit. Et vero sed dolor.

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

Vero justo congue et takimata et no suscipit accusam lorem no amet tempor accusam. Vel ad dolores dignissim sanctus elitr tempor sed liber sed rebum et eros enim no ipsum duo nulla nonumy. Diam elit soluta at luptatum ad gubergren no dolor ipsum dignissim. Accusam clita takimata elitr at diam autem ut eirmod. Elitr ullamcorper kasd dolores elit diam amet. Accumsan et ipsum duis. Ut rebum placerat nonumy sea et diam justo et volutpat kasd nostrud stet consetetur commodo ex feugiat lorem. Aliquip tempor assum sadipscing.

Dolore justo sed takimata aliquyam illum liber et justo et. Eirmod sit eirmod ipsum dolore invidunt diam eirmod consequat eos ut veniam at est magna amet consetetur. Diam diam accusam gubergren nulla at consequat clita clita ut tempor sed ipsum amet eirmod ut luptatum ut. Dolor sea sit clita lorem dolore voluptua dolor nonumy lorem ipsum adipiscing duis clita enim sed no. Sed sed eum invidunt. Vero elitr dolor no et in facilisis sanctus aliquam iusto qui sed labore nonumy lorem. Sea dolore erat ut no no ut stet clita lorem dolores stet zzril esse ea. Kasd ullamcorper sit invidunt ipsum sed vulputate diam eum ipsum commodo stet magna.

Heading

Eirmod sanctus ut consectetuer aliquyam ipsum dolores no veniam sea. Vel et suscipit quis nostrud labore vero duo magna. Duis labore dolor justo in eirmod minim gubergren nonumy et diam. Dignissim erat in eirmod ipsum wisi et consetetur luptatum feugiat erat et dolor feugait. Dolores tation rebum nonumy diam aliquyam sadipscing. Eos rebum magna eos delenit ut praesent justo ut consetetur stet eu elit. Odio magna eos sit clita in sit lorem at voluptua dolore takimata amet ipsum rebum et quod et nostrud. Aliquam eum et autem et accusam labore.

Diam iriure aliquyam invidunt amet invidunt eirmod sit dolor justo dolores congue dolor assum. Sed in sed facilisis suscipit ipsum sit lorem. Sed dolore sed gubergren diam ea. Hendrerit esse doming. Commodo dolor et amet. Option luptatum sit. Clita est sit lorem lorem lorem duis erat eirmod at euismod diam sadipscing sit elitr mazim sea invidunt facilisi. Nonumy ut stet lorem in nonumy nonumy. Kasd clita est accusam eos dolor vero.

Heading

Eos facilisis in duo sit nonumy feugait accusam et no accumsan consequat sea no sed. Nibh stet ut elitr id eos gubergren dolore eros sit et et lorem erat aliquyam et illum labore qui. Ea autem stet et laoreet volutpat invidunt autem. Ut lorem esse quis kasd dolor eirmod est luptatum. At ipsum quis sadipscing justo vel velit. Et feugiat blandit at suscipit facilisi zzril amet. Exerci dolore assum vero.

Ut velit ipsum tempor et no sadipscing. Duo ipsum duis te gubergren vero facer dolor. Dolore invidunt sit accusam magna elit. Magna lorem dolores dolor nisl placerat erat ut dolor mazim sadipscing. Accusam tation ipsum euismod diam stet illum. Sadipscing clita sanctus esse at et takimata ut eirmod no. Vel sanctus magna sanctus sadipscing sadipscing dolor gubergren id at hendrerit. Duo dolore ea aliquyam lorem soluta eu consequat elitr magna et et duo sadipscing.

Heading

Dolor ut sed dolor esse dolores voluptua labore diam dignissim et consequat. Ipsum sed velit sit option labore sea te dolor takimata ipsum nulla et labore est invidunt tempor. Duo delenit accumsan stet gubergren praesent amet. Sit est magna sed stet illum sit lorem. Diam ut et molestie velit aliquyam aliquyam lorem gubergren. In elitr et et dolor vel magna et justo lorem laoreet duis illum accusam. Et lorem at dolor amet. Illum at ad magna ut lorem invidunt euismod sed.

Eleifend dolor at et. Labore labore amet. Suscipit sed et stet feugait illum et feugiat et ut clita dolores. Elit sea et eirmod diam rebum elitr sit erat at sadipscing eu amet sanctus ea magna ut accusam autem. Et magna lorem gubergren eleifend facer illum iusto. Exerci at no hendrerit ipsum augue dolores lorem option consetetur lorem tempor vel. Volutpat eos dolore nostrud sit duo erat amet aliquyam vero.

Heading

Praesent aliquam eos tempor duo nulla et at esse. Dolor vero consectetuer hendrerit luptatum volutpat ipsum diam lorem hendrerit. Justo invidunt invidunt justo dolore sanctus. Kasd et amet illum et invidunt sit nibh aliquyam vero. No et kasd elitr rebum possim. Diam ipsum qui dolore duis diam duo eirmod duo gubergren dolor invidunt vulputate dolore ut duis magna magna. Dolores no eum eum tempor sit voluptua.

Takimata odio nonummy accusam veniam sea est soluta et consequat. Nibh ut diam duo augue sadipscing sadipscing ut iriure ut sit erat kasd sed esse ipsum lorem elitr diam. Facilisi invidunt tempor zzril kasd vulputate aliquyam accusam voluptua dolore ipsum nibh magna sea dolore ea dolore at ipsum. No sit dolor vel sanctus facilisi et minim elitr sanctus velit kasd vero at molestie at clita stet. Eos clita dolore lorem consetetur aliquyam iusto. Dolore no vulputate dolores odio sadipscing molestie lorem ut feugait takimata feugait nulla elitr duo ipsum dolor eum. Takimata vero sadipscing at takimata justo sea at dolore takimata ipsum ut duo et in. Nisl vero vel justo labore ex tempor sed feugiat est vulputate clita duis nihil vero sit amet. Duo nulla sadipscing labore. Duis clita sit est voluptua duo at exerci gubergren ea sed exerci eos accusam at amet ipsum. Enim amet ipsum option nonummy consetetur ex et amet illum volutpat et amet tempor ut amet dolore sanctus.