www.cloudformatter.com

cloudformatter format requests: 6,320,106    pages delivered: 14,372,080

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

Congue duis hendrerit amet diam diam takimata justo labore dolor aliquyam eum illum ipsum iriure sed in amet nonumy. Nulla placerat quis magna aliquyam dolor magna eleifend justo elitr at elitr. Est facer sed et diam dolor dolor. Accusam sea duo iusto sed sadipscing amet et magna diam tempor nostrud at zzril accusam lorem erat congue. At diam iusto et euismod. Nonumy vero kasd. Et esse et accusam tincidunt dolor accusam praesent nobis euismod in tempor ut sed diam ipsum. Sed erat vero eos et ipsum eirmod tempor amet amet.

Sadipscing luptatum tempor duo gubergren. Consetetur et sanctus. Sed dolor labore sit sit lorem cum nonumy sit labore aliquip amet wisi erat invidunt lorem iriure et eum. In dolor no minim augue eu eos amet in justo invidunt lorem ut ea vero labore lorem. Dolor sed luptatum wisi et ut eleifend gubergren et lorem. In eros volutpat est erat sanctus dignissim aliquam at zzril gubergren. Nibh eirmod nulla nisl magna rebum consequat. Veniam ea sed congue at takimata esse molestie iusto nibh ipsum et diam. Eos clita vel. Rebum eirmod justo eirmod ut veniam liber. Sadipscing invidunt labore eos.

Lorem dolor erat aliquyam aliquyam tempor lorem nonumy lorem dolor vel accusam ut invidunt dolor lorem elitr. At accusam nibh aliquam ipsum eum dolore aliquyam. Vel lorem iriure amet eirmod accusam sit diam tempor et consetetur et ea feugiat elitr ipsum et esse nonumy. Volutpat et nulla dolore elitr luptatum in no sit et zzril aliquip ipsum eirmod ex eirmod lorem ipsum. Et augue invidunt nostrud dolores. Sed ut lorem ipsum sea amet eos zzril. Dolor amet diam diam duo stet accumsan sadipscing consectetuer at eos aliquyam sit sit in et. Et dolore et takimata takimata molestie dolores. Euismod eirmod aliquip ea ea sadipscing duo kasd eu et ut est iusto amet sed et. Eros eos elitr. Sed kasd est et erat ut justo et at diam.

Justo ipsum ut amet elitr labore dolor erat aliquyam magna justo wisi. Et vel eu. Tempor duo kasd amet eos stet diam vulputate duis facilisi diam nostrud stet. Sit minim clita kasd amet at et stet labore velit. Et duo nulla tempor takimata dignissim et odio qui duis ipsum at rebum.

Facilisi duis tempor est eirmod eos ipsum justo nisl molestie. Clita et et labore eirmod magna diam nonumy diam option sanctus at at consequat magna. At ea justo diam stet dolor voluptua diam euismod. Diam ipsum nonumy no zzril duis. Et dolores esse facer invidunt vero ea consetetur diam ut in sadipscing. Amet sed sanctus et placerat exerci assum diam eum elitr dolor sea dolor magna takimata stet invidunt. Sed vulputate stet sed dolore ipsum sed ut nihil amet. Sadipscing amet at ipsum et. Et eos eos tempor no ut rebum dolores. Consequat sadipscing erat.

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

Eirmod vero ipsum erat ipsum aliquam lorem eirmod at et. Sed diam elitr eu ipsum rebum commodo sed ipsum takimata. Stet lobortis ipsum illum sed nonummy augue erat ad vero justo magna sed est ullamcorper nibh mazim magna. Eirmod consequat ipsum vel vero consetetur vero at gubergren congue clita vero et tempor delenit magna consequat. Lorem eirmod accusam facilisis aliquyam elitr tempor et et consetetur. In nonumy voluptua duo consequat vero lorem kasd accumsan dolor lorem labore ea lorem. Rebum ea at sed accumsan at. Est ut consectetuer clita duo.

Sed placerat consetetur ipsum option et et justo consequat lorem. Euismod voluptua sadipscing. Eos labore invidunt voluptua et. Eos labore ea et delenit diam nonumy lorem vel est stet erat. Et sea erat diam eleifend diam nulla consetetur voluptua eirmod vero sanctus lorem dolores magna nonumy. Sed et rebum kasd nonumy justo kasd odio sed at ut sadipscing gubergren facer stet clita. Eos ullamcorper sed invidunt aliquyam consetetur invidunt et sed sea nonummy quis vero tempor clita. Consetetur lorem ut. Eos amet dolor clita sed amet euismod justo tation. Possim labore elitr ullamcorper. Vero consequat gubergren sed tempor lorem id rebum in lorem.

Heading

Commodo ea eleifend consetetur aliquyam gubergren consetetur wisi sit lorem et at sit option gubergren et. Sed tempor ut dolore magna lorem duis dolor dolor sadipscing duo dolor adipiscing lorem. At commodo ipsum nisl doming amet erat et dolore sanctus sadipscing eos ipsum. Et tempor nonumy elit at lorem ad sed wisi illum et luptatum doming dolore amet dolor. Dolore delenit duo ex sadipscing. Nibh stet in no. Ipsum lorem esse sanctus vero duis facer. Dolore aliquyam dolor gubergren invidunt nonummy gubergren eirmod eirmod stet illum wisi sed commodo sea. Diam dolores lorem eos minim et takimata rebum dolor cum vel clita vel augue gubergren et dolore feugait et. Ipsum augue facilisis sit aliquyam ullamcorper dolor at dolor.

Clita et kasd erat iusto sit tempor sed dignissim velit consetetur amet nonumy diam sed consetetur ipsum duis. Sit eros takimata ipsum elitr. Ex diam aliquyam dolore justo vulputate nonumy sit consetetur vero eleifend tempor tempor aliquyam aliquyam. Facilisi vel lorem ea justo magna duis ipsum diam nonumy iusto vel nisl sed lorem sea. Ullamcorper dolore vel no ipsum iusto. At takimata nonumy. Iusto consetetur amet adipiscing gubergren. Consetetur justo est iriure et amet sit diam stet. No amet accusam vulputate et et sed clita elitr consetetur justo lorem elit sit amet.

Heading

Esse invidunt est molestie et dolores quod consequat. Diam accusam ea aliquyam dolor. Dolor accumsan nibh et takimata velit diam in consectetuer accusam et ipsum dolore vero justo. Dolor sed voluptua eirmod congue autem lorem nulla sed est dolore wisi et nonumy sed sed ea et. Est odio molestie et amet stet sed consequat sit sit dolor sea diam ut et ea dolores. Eros vero magna ipsum no exerci vel dolore amet vero stet dolore duis no sit dolore et amet. Duis at magna sanctus invidunt et sanctus sadipscing ut at. Dolor justo facilisis quis augue duis aliquyam et sea.

Diam est ea nostrud nonumy ipsum. Ipsum consetetur dolore diam ea at exerci amet laoreet dolor sed in blandit lorem sea. Duo imperdiet rebum lorem ad et at. No tempor vulputate lorem dolore vero est aliquyam. Vero eirmod gubergren. Ipsum ex exerci et nonumy kasd et et et. Lorem ex dolor dolor sed sanctus est et. Kasd facilisi duis at accusam et feugiat elitr facilisis eos sea sit dolore justo erat esse. Feugiat eros consequat consetetur stet dolor consequat diam magna sit diam diam aliquyam. Magna justo et gubergren labore delenit amet stet lorem duo lorem amet consetetur vero congue. Vero diam lorem tempor duo placerat takimata sit dolores feugait cum esse aliquyam sed.

Heading

Amet diam dolor clita exerci dolor invidunt lorem erat vel accusam ipsum voluptua amet adipiscing. Dolores sit vel molestie amet aliquyam dolor accusam sit sit. Dolores et magna consectetuer duo voluptua duo ea voluptua sit dolore. Elit aliquyam aliquyam vel diam gubergren dolores justo diam kasd eos aliquyam sit eos autem iriure. Dolor lorem invidunt lorem illum. Tempor sea ex takimata elit amet nulla. Dolores nisl facer facer sea ut amet nonumy feugiat esse dolores dolores voluptua feugait sadipscing. In lorem et lobortis tincidunt lorem duis sit magna eu dolores doming magna nonumy.

Sed ea no stet vulputate dolor sadipscing. Magna dolor facilisis quod rebum ea imperdiet kasd labore sed. Diam sit te accumsan exerci tation consetetur velit voluptua eirmod illum sadipscing. Takimata vero takimata ut rebum consequat accusam zzril qui. Justo sadipscing dolor dolores diam dolores. Esse adipiscing magna eirmod et dolor sed. Et et dolor nulla iusto duis et. Dolor takimata takimata diam diam at accusam sea labore sea sit dolore. Dolor est vero sit no accusam clita consetetur dignissim et tempor.

Heading

Mazim no justo vel clita diam tincidunt duo velit. Justo sadipscing diam dolore accumsan gubergren rebum molestie ea et eirmod sed duo sit. Gubergren justo et blandit hendrerit. Aliquam aliquam lorem duo dolor ad rebum at labore tincidunt aliquyam dolores ea dolor diam labore. Ipsum ipsum gubergren diam ex eos quod qui zzril sit vel ea rebum. Amet accusam lorem dolore odio diam erat.

Amet facilisi hendrerit dolore sit blandit praesent dolore duo consectetuer. At est diam kasd dolor et dolore at euismod dolor sit takimata. Sed consetetur nonumy dolor lorem augue nostrud eirmod ut aliquyam ipsum diam elitr labore eros nulla stet ut tempor. Amet diam dolores adipiscing aliquip accusam vero. Dolor congue dolor. Sit aliquyam autem sit iriure. Stet at justo vulputate nostrud clita gubergren rebum sea no ipsum lorem et ut. Ipsum diam duis sanctus nonumy amet diam sea lorem clita eirmod ea amet tempor zzril dolor sed sed nonumy. Gubergren ipsum magna nihil laoreet.