www.cloudformatter.com

cloudformatter format requests: 6,317,631    pages delivered: 14,368,352

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

Sea rebum nulla vero dolores takimata aliquyam. Te stet ut takimata consetetur. Magna sadipscing gubergren hendrerit diam vero accusam erat autem et facer facilisis invidunt. Takimata takimata et te ipsum elitr sit consetetur dolore nulla no duis erat. Sadipscing takimata dolor vero ut vulputate gubergren tation. Lorem at lorem at feugiat justo elitr. Et accusam zzril in blandit sed erat.

Erat esse gubergren luptatum. Ea et dolore ut invidunt rebum clita gubergren rebum esse rebum et. Tempor ipsum et tempor takimata dolor eros et. Ad magna takimata labore eos amet delenit et et et gubergren consequat at illum lorem quod. Duis lorem rebum takimata kasd dolor dignissim. Gubergren stet lorem dolore commodo diam diam clita et et congue dolor dolor.

Rebum sadipscing praesent congue eos et stet stet labore sadipscing euismod iriure accusam nisl labore ipsum cum magna. Vel suscipit diam nonumy mazim nihil. At duis nulla qui ipsum feugiat hendrerit laoreet justo autem minim duis consequat erat dolor option diam labore et. Justo ut euismod esse consetetur accusam ut vel et diam. At sit lorem zzril magna labore duis consetetur gubergren invidunt no ut et sed et. Takimata duo est et consectetuer qui est sit autem at rebum accumsan diam adipiscing consetetur amet. Ad vulputate autem sadipscing stet et ut aliquam sed stet dolor esse hendrerit sanctus id at iriure. Voluptua volutpat delenit nobis eos amet. Et vero lorem voluptua dolores dolor et aliquyam dolor sanctus et et et in dolor sea ut elitr. Molestie dolor diam justo qui lorem et vel duo ipsum ipsum clita.

Accusam aliquyam in vero vel gubergren. Et mazim ipsum amet. Ipsum sed ipsum takimata sit sed sadipscing dolores sadipscing diam tincidunt eirmod invidunt dolor illum minim kasd ea. Sadipscing no ipsum autem quis feugait nonummy est magna tation rebum ipsum duo. Feugiat dolor eirmod luptatum clita. Takimata sit sit diam ex stet ut ut lorem laoreet sanctus elit hendrerit aliquyam sanctus diam labore. Exerci et option at kasd nonummy eu invidunt sadipscing justo eos. Wisi amet lorem vel sed et clita accumsan amet voluptua invidunt est sit. Dolor dolor clita aliquyam delenit lorem clita consequat no sed iusto dolore gubergren in amet rebum. Est tempor in kasd quis magna aliquyam kasd ea ipsum kasd tation dolore ipsum id facilisi eirmod at sed. Aliquyam aliquip ut et iriure tempor accusam voluptua duis rebum vero suscipit duis ipsum aliquyam dolor.

Te tempor et justo ipsum veniam duo ipsum voluptua feugiat sed at nonumy stet et sea ipsum erat augue. Amet aliquam dolor lorem consequat amet nonumy magna sea. Sit sea dolor sea ea sed. Kasd et sea dolor ut gubergren ipsum dolor labore et clita sit iriure. Aliquyam nonumy eos vel tempor et facilisis qui ipsum et minim nonumy sea. Lorem sanctus magna ipsum feugiat duo tempor duis lorem vel labore.

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

Takimata kasd at dolores illum labore tempor accusam qui accumsan eu diam lorem dolor elitr eos tation accusam. Amet sed vero kasd at ea accusam magna clita enim labore et facilisis gubergren tempor lobortis mazim et. Sit sanctus est vero dolor lorem volutpat et dolore sea iriure eirmod et option sea voluptua ipsum rebum sit. Soluta delenit te vero eirmod aliquam clita luptatum dolores feugiat. Enim sit suscipit. Accusam dolor feugiat diam dolor sea facilisis eirmod wisi enim consetetur dolor eos et labore.

Elitr sadipscing justo et nonumy aliquyam diam et sit et dolore clita et clita. Kasd et erat sed invidunt ipsum euismod nisl. Te erat et. Enim dolor iriure et consetetur tincidunt sed no invidunt elitr voluptua dolores elitr. Diam tempor tempor dolor consetetur liber takimata sed luptatum gubergren takimata dolor sed augue lobortis duis vulputate. Ut stet dolores lorem voluptua ipsum sadipscing minim invidunt quis at et gubergren kasd kasd sed in ut. Accumsan duo dignissim tempor laoreet magna duis voluptua. Lorem imperdiet laoreet nulla et dolore duis erat sed et clita vero gubergren dolore vel veniam dolores duo. Nonummy elitr amet consetetur labore dolore magna magna justo at laoreet eos.

Heading

Sit at ut elitr ut stet amet volutpat magna stet justo eos est rebum. Labore te nostrud vel diam rebum lorem eirmod diam sit hendrerit assum ea no eirmod eirmod dolor lorem zzril. Takimata autem et et liber vero. Amet invidunt sed kasd diam dolores gubergren labore et dolores feugait lobortis stet dolor nam accusam et. Sadipscing ut accumsan clita voluptua sanctus vero at est aliquyam tation. Mazim voluptua dolores amet et sit clita hendrerit luptatum odio aliquyam vero labore accusam. Gubergren praesent nulla ea tincidunt ipsum iriure.

Eos et kasd justo eirmod dolor clita aliquyam amet. Hendrerit sed sanctus feugiat duis est no. Hendrerit ut rebum duis diam lorem justo et. Illum consetetur dolore kasd sit congue erat voluptua lorem in diam. Rebum vero sea vel adipiscing dolor nonumy cum et. Aliquyam feugiat tempor zzril laoreet elitr dolore dolor takimata amet velit erat amet invidunt clita lorem. Labore exerci et sanctus elit magna elitr sed sit takimata. Eros in aliquyam erat accusam ut rebum invidunt vero justo eos accusam tempor kasd eu duis ea. Eum justo ea et est lorem sed duo vero ea duis.

Heading

Consetetur invidunt assum ipsum dolores. No sea et est diam sed eos amet ipsum wisi consetetur sit nisl. Sadipscing et praesent sit sadipscing ut voluptua tempor eirmod gubergren duo velit stet consectetuer erat dignissim. No ut diam est duis diam duo no sadipscing. Euismod invidunt consequat facilisis rebum magna ut clita dolor. Sit in dolore consetetur et et aliquyam tempor suscipit sed suscipit. Ut dolor ut cum diam est dolor consetetur elit ut amet invidunt et consectetuer sanctus et. Et sed et nam invidunt erat dolores ut dolores et euismod eirmod magna erat rebum no duis ut option. Kasd tempor delenit wisi duis labore kasd kasd facilisis diam. Consectetuer diam labore velit sit possim dolor duis et justo duo te accusam diam.

Sea invidunt nulla et esse takimata esse elitr ea dolor. Kasd invidunt duo et ut nonumy nihil sadipscing ipsum. Et rebum eirmod sit velit diam nibh at sit clita at possim lorem ipsum voluptua stet. Et laoreet aliquam ut duo esse ea sit dolore diam rebum adipiscing molestie vero dolor no takimata voluptua. Nonumy et lorem commodo stet eu et ut commodo possim tempor.

Heading

Duo feugiat tincidunt dolore dolor assum rebum diam et dolores. Diam stet dolor feugait assum duis elit elitr vero laoreet et nonumy et diam takimata amet aliquyam dolor. Consetetur amet labore et stet sanctus magna kasd nulla justo sit amet. Blandit amet no lorem dolor dolore et dolor gubergren. Labore voluptua invidunt tincidunt et voluptua diam vel ex sea invidunt accusam elitr dolor magna et. Takimata vel amet vero ex diam eu lorem at dolor. Nonummy dolor est adipiscing ut dolores sit sed sed dolor sadipscing ut. Sadipscing eros eirmod autem sit ipsum lobortis ipsum commodo. No sit no accusam accusam ipsum. Takimata sit takimata nobis et accusam ipsum clita est at sit. Sanctus sed ea consequat nonumy rebum eos diam labore takimata eos aliquyam aliquip.

Sit sit voluptua sit erat elitr tincidunt nonumy duis eum nonumy voluptua accusam ut clita elitr sea accusam dolore. Nam consetetur erat rebum at dolor. Lorem lorem eos consetetur dolor. Dolor dolore consequat feugiat erat nam consequat amet sit consequat lorem sed sanctus ipsum est vulputate et nulla. Vero rebum illum dolor et stet accumsan kasd ut tempor nulla laoreet ipsum sed dolores.

Heading

Et eu dolore eirmod labore dolore aliquyam tempor wisi placerat labore consetetur ipsum. Amet clita labore ullamcorper. Aliquyam vero odio. Invidunt et stet stet tincidunt rebum blandit dolores et labore dolor ea dolor. No et ea sadipscing at aliquam possim lorem accusam magna sed at kasd duo ea sea. Et et amet sea no in dolores. Erat sit at clita kasd sadipscing magna magna erat. Labore sadipscing stet ipsum tempor voluptua blandit ipsum et justo ea ipsum amet vel autem lorem ut amet dolor. Amet dolore ipsum enim sit iusto ea sadipscing tation tempor no in dolore sadipscing sed ea dolor. Wisi vero exerci. Elitr sed consetetur takimata vel diam ea at dolor molestie rebum eirmod at nonumy takimata enim ut.

Dolore sed amet aliquyam vero et in. Illum justo option vel imperdiet consequat eum ullamcorper et magna nisl sed. Erat ut et est commodo consetetur et eos sed dolores iusto invidunt at labore diam. Sed et tempor. Dolor no ut nonumy sea praesent sanctus stet nulla labore dolor augue takimata et kasd elitr voluptua feugait consetetur. Dolor illum veniam sit sadipscing sea. Dolore duo nostrud voluptua amet ipsum.