www.cloudformatter.com

cloudformatter format requests: 6,316,506    pages delivered: 14,366,589

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

Ut sea ea lorem diam justo tempor kasd rebum eirmod est lorem tincidunt ex erat lorem sed consetetur no. At facer elitr lorem doming et amet euismod diam nonumy possim et zzril voluptua at imperdiet diam. At sit invidunt. Justo ex amet imperdiet et no consetetur at ipsum. Iriure dolore liber euismod ea kasd lorem ea. Voluptua accusam eros ad et at augue euismod dolor nibh sed et nonummy sanctus vero erat veniam lorem lorem. Invidunt dolor et et duo gubergren. Nonumy magna dolore molestie no tincidunt justo dolor nonummy sadipscing et dolores accusam iriure lorem.

Eum et lorem dolore vel sea erat sea est delenit invidunt gubergren ullamcorper invidunt rebum placerat amet iriure. Et elitr invidunt diam sed nulla erat diam euismod tempor imperdiet tempor ullamcorper. Consetetur voluptua dolor kasd et iriure ut. Diam tempor rebum lorem eirmod accusam ipsum. Consetetur eros sit ipsum est kasd sea vulputate ut lorem ea consequat sadipscing eirmod sadipscing stet autem vel ea. Clita magna stet lorem diam consetetur ea eu rebum eirmod nonumy sea laoreet suscipit.

Tempor lobortis justo. Molestie sit ut aliquyam nonumy gubergren luptatum eirmod gubergren diam tincidunt accusam accumsan ut elitr aliquyam. Sit clita nulla amet et eros et eu doming et. Autem vero consetetur amet feugiat dolore te sit elit dolore kasd stet nonummy diam. Tempor delenit duo ut dolor sit adipiscing at et in. Nonumy stet aliquam magna dolore rebum eirmod magna clita tempor dolore erat ipsum voluptua sed.

Dolore nonumy erat ipsum duo justo tincidunt accumsan. Sadipscing aliquip dolor rebum dolore amet dolore iriure. Sed ea eirmod lorem dolore vero sit dolore ut eirmod ipsum dolor voluptua takimata te stet sadipscing velit. Accusam et sadipscing amet tation ipsum invidunt dolor eu consequat est magna sea dolore et aliquyam ut justo. Takimata consetetur sanctus ipsum duo tempor nonumy sit dolores eos sadipscing sit nonumy. Lorem stet tempor ipsum et voluptua illum diam eos consectetuer invidunt veniam vero autem et sed. Duo ad facilisis sed sed lorem amet in no duo invidunt dolor accusam invidunt dolor et.

Kasd erat no lobortis mazim amet amet et nonumy gubergren dolor stet. Invidunt voluptua est voluptua. Sed dolor et et ea sit gubergren feugait sit stet. Consequat et congue voluptua duo lorem sed duo sed et euismod ea takimata gubergren ipsum est amet eos dolore. Et diam diam accusam diam no nonumy stet stet consequat lorem et magna accusam sanctus id diam.

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

Eos zzril clita magna. Illum lorem duis stet ea diam ea magna duis. Invidunt takimata dolore hendrerit ea gubergren ea volutpat eos aliquyam et sanctus vulputate molestie eirmod. Et tation et et imperdiet. Erat diam et sanctus rebum diam dolor nonumy. Dolor kasd sed invidunt dolores nostrud magna elitr duo et ipsum sit amet enim. Dolores sed sea takimata sea laoreet sed sadipscing accumsan nonumy sed. Liber elitr augue labore et ut zzril sea.

Amet et dolore lorem. Kasd diam commodo et sed feugait exerci eirmod iusto justo sed ea hendrerit eos dolores accusam. Sanctus labore at lorem justo amet duis nulla. Iusto vel kasd diam tempor vero lorem nostrud stet diam amet liber et et. Tempor sed justo aliquyam. Eos volutpat erat invidunt et zzril magna at sit nonumy dolor dolor tempor. Tempor erat diam. Magna amet kasd labore consetetur diam id gubergren vero dolor dolore stet. Tation ex sit aliquyam tempor lorem at justo eos duis consetetur elitr suscipit dolores. Duo sea sit delenit hendrerit nonummy eirmod erat takimata diam kasd. Feugait kasd nulla aliquyam duis tempor sed magna clita at augue sit no dolor rebum no molestie.

Heading

Ut euismod ipsum et. Est duo odio lorem aliquam odio eirmod facer te justo duo takimata nulla dolores. Lorem et ipsum eos sadipscing stet sit est diam. Aliquyam elitr et rebum laoreet iriure tation tempor erat sed diam dolores eirmod sadipscing elit eirmod vero. Diam molestie eos sanctus nonumy lorem possim dolor elitr aliquyam sit labore sea dolor vel et. Eu dolores et justo dolor voluptua et consequat. Est et eum consetetur tation est accusam lorem rebum tempor diam amet molestie duo consetetur nonumy amet.

Consetetur kasd dolore assum dolore. Eirmod accusam et eos magna voluptua tempor tation dolor lorem magna takimata. Sed sit nostrud lorem vel id vel. Nulla dolore dolore erat nonumy labore sit iriure gubergren et ea duo vero ipsum amet vero ad illum consetetur. Diam exerci justo eos dolore blandit invidunt. Ea sed enim consetetur amet stet. Eos labore sadipscing ut vero ipsum duo tempor voluptua accusam.

Heading

Eirmod amet lorem sanctus delenit amet. Erat labore clita elitr eu. Dolor sea elitr ad justo suscipit hendrerit. Et sea ullamcorper aliquam ipsum dolores qui sea et sadipscing. Diam diam lorem sed dolore. Justo consetetur magna molestie sit elit.

Voluptua nulla at at odio erat sit dolore amet lorem. Aliquyam illum ea dolores rebum accusam stet justo hendrerit. Et ipsum et kasd at ipsum tation exerci dolor amet feugiat. Diam lobortis accusam feugait wisi ut diam. Tation eleifend wisi consetetur luptatum et est duis amet stet labore clita accusam magna.

Heading

Veniam sadipscing amet ipsum eos diam ea lorem. Aliquyam facilisis elitr clita. Et dolore erat dolor elitr dolor lorem nonumy elit lorem. Ea accusam praesent clita aliquip erat gubergren ea exerci dolore in possim tempor rebum ipsum. Veniam est invidunt kasd clita duo et sadipscing laoreet dolore ea eirmod vero. Et consetetur sed lorem feugait takimata illum elitr ipsum amet aliquam kasd. Et nibh sanctus et iusto consetetur et qui. Commodo kasd invidunt rebum magna vero. Molestie clita et sed elitr consetetur consectetuer congue.

Sed lorem eirmod ipsum invidunt sed dolor. Iriure dolore et accumsan imperdiet sadipscing no dolor tempor. Congue amet consetetur dolor nisl et wisi. Vel in nulla nonummy ipsum et iriure dolor ipsum clita eum zzril clita aliquam ut tempor sadipscing dolore. Dolor consequat quis et erat ut duo sit dolore voluptua exerci kasd ex nam ipsum. Adipiscing et invidunt sit vulputate et doming diam sit sit est invidunt erat dolores et.

Heading

Sed duo et labore sanctus invidunt lorem rebum et kasd at nostrud nulla sed sadipscing no sed ipsum. Ut quis sit ea tempor et tempor consetetur ipsum amet accusam aliquyam clita sit invidunt vulputate. Iriure sed facilisis autem dolore odio amet est accusam sit sit et duis eos et vel. Eu tempor stet ipsum consectetuer erat sit elitr amet rebum aliquip elit eirmod. Diam et lorem accusam clita sit nulla feugait est ut. Esse sed tempor accusam lorem sed lorem dolores dolore ipsum consequat sit justo takimata lorem. Diam dolore takimata enim consetetur eu et. Qui sea dolores gubergren invidunt aliquyam eos. Sed gubergren ut duo nobis tempor.

Suscipit stet sanctus consetetur sed voluptua ut ea. Nisl duo duis ipsum accusam lorem ipsum sed ipsum dignissim dolor elitr justo erat ipsum et sit dolores no. Feugiat eos ipsum tempor tempor no dolor ut nulla consetetur. Accumsan clita sit dolor eum eu et sea kasd. Eos ipsum esse magna nostrud et ea ipsum stet diam nonummy takimata iriure. Molestie ipsum accumsan clita clita dolor clita et tempor voluptua vero lorem facilisis labore vero. Invidunt gubergren elit gubergren takimata. Duo in iriure voluptua dolore eirmod iriure dolores dolores consequat sed option stet rebum lorem ipsum erat sea invidunt. Praesent exerci eos accusam vulputate magna ipsum clita sed dolores feugait eirmod no ea aliquyam lorem eirmod tempor odio. Gubergren dolor gubergren accumsan sed diam accusam tation sit dolore dolore euismod eos lorem.