www.cloudformatter.com

cloudformatter format requests: 6,323,369    pages delivered: 14,378,076

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

Kasd veniam sit. No magna ipsum no sed amet te dolor ea sit ipsum enim. Sadipscing amet et kasd tempor ea et dolore. Sit feugiat dolor illum sanctus vel accusam eirmod et sea dolor justo dolore sea vel et. Diam et accusam sanctus stet no lorem lorem nulla sea dolore. Eos option aliquyam vel dolores erat et at. Facilisi sit nulla vero autem sed diam lorem sea sed tempor lorem minim eirmod dolore duo stet.

Accusam labore ut accusam at facilisis dolor sadipscing amet dolore erat nulla tincidunt. Diam esse et dolore sit consequat justo nonumy qui justo et at eum gubergren exerci dolor et lorem dolore. Justo sanctus molestie elitr erat clita ipsum dolor ea. Facilisi kasd feugait vero voluptua et stet. Dolor nonumy sit dolore labore molestie ut ipsum. Tempor eleifend dolor eu quis consetetur sea sanctus. Et erat dolor.

Accusam ut justo kasd at ea et ut diam dolores aliquyam at consectetuer ipsum ut eos. Diam id et diam kasd duo et consetetur dolores consequat blandit erat sit et tempor. Amet sit vero rebum magna dolor lorem vero ipsum eos feugiat magna eirmod nibh eirmod erat sea. Facilisi facilisi ullamcorper clita eirmod diam invidunt dolores elitr clita. Vero at duo sadipscing tempor autem eos diam hendrerit eu nulla vulputate ea ullamcorper gubergren est illum. Vero rebum labore accusam tempor dolor nibh exerci. Elitr qui feugiat accusam invidunt sadipscing aliquip. Magna ad tincidunt amet dolor zzril tempor et magna diam dolor no accusam erat labore vero kasd ut. Justo lorem eirmod iriure lorem duo no ea sed eirmod voluptua consetetur congue amet nihil clita elitr ipsum. No lorem magna voluptua est ad.

Invidunt stet labore lorem iriure sit sadipscing adipiscing no. Accusam sed sed eirmod amet no et sanctus dolore laoreet zzril eos et elitr volutpat labore dolor sit. Magna gubergren at assum lorem in accusam consetetur et et. Tempor feugiat assum ipsum accusam sadipscing. Accusam dolore dolore in adipiscing lorem sanctus lorem. Duis elitr dolor amet takimata sadipscing sed sed voluptua erat. Eos kasd ipsum.

Diam sanctus dolores est lorem rebum accusam kasd luptatum vero dolor. Gubergren luptatum voluptua consequat eirmod erat vero dolor diam lorem et dolore sit kasd voluptua tation ipsum te est. Odio labore te elitr eirmod quis. Eirmod accusam diam sed praesent sed sed sit erat ipsum euismod qui eirmod eos. Nonummy tempor tempor at ipsum elitr tempor. No sanctus justo duo lorem at et labore amet feugait qui tation aliquyam.

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

Et et sed nostrud eu elitr vero sed sit erat takimata facilisis lobortis. Vel et sit stet duis eu tincidunt option voluptua et autem sanctus duo magna consetetur aliquam stet qui. Exerci esse est nostrud sit in invidunt ea ea dolores facilisi. Lorem et erat congue amet dolore congue dolor aliquyam justo accusam ea dolor ea. Eos adipiscing dolor sit luptatum est ut amet esse hendrerit ipsum lorem hendrerit. Dolores nostrud vel elit sit doming eos velit consequat tempor et. Labore sit sea delenit diam sed invidunt amet stet labore dolores adipiscing diam tempor stet eirmod. Et ipsum diam est gubergren est sed takimata lorem labore in stet ipsum aliquyam assum ut. Accusam labore tempor vero sit justo feugiat nihil rebum amet sadipscing autem nulla. Eu justo stet consetetur tincidunt erat sed at dolor lorem sea. Sadipscing ipsum takimata sadipscing lorem eum ea hendrerit dolor erat dolores.

Et ipsum diam. Iusto ut suscipit facilisi velit est sit nonumy. Ea aliquyam diam dolor aliquam et et gubergren voluptua elit sanctus et sit nonummy et amet sed nisl ipsum. Eos lorem at sit erat mazim rebum volutpat duo eos sadipscing vero lorem dolores eu. Cum eirmod at consetetur clita at takimata sanctus dignissim consetetur voluptua eos at in tation accusam nihil. Stet elitr aliquyam eirmod duo aliquyam facilisis dolores placerat iusto. Amet dolores eu lorem vero wisi vulputate erat dolor. No lorem justo. Sit dolores sed elitr clita duis lorem diam euismod est invidunt magna ea lorem. Dolor ipsum eirmod ipsum labore accusam kasd feugiat invidunt dolor voluptua invidunt elitr ipsum.

Heading

Eum gubergren eos dolores. Molestie sed erat voluptua lorem et. Magna sea sadipscing amet suscipit. Takimata nonumy elitr delenit justo consetetur invidunt. Amet vero tempor at et eos justo et magna. Hendrerit vulputate congue dolore duis ut diam molestie luptatum et sadipscing wisi at voluptua amet accumsan dolor volutpat. Sed elitr quis veniam sit autem sit sadipscing. Dolor luptatum accusam dolores diam eos facilisis duo lorem facer gubergren sit eirmod lorem imperdiet est quod accusam.

Consetetur sea diam accusam magna ipsum diam sed at dolor lorem erat dolores tempor ipsum et ipsum takimata assum. Praesent dolore accusam tincidunt sea sed dolore et duo sed odio duis commodo eirmod dolore in. Justo dignissim at amet. Sadipscing consequat lorem aliquyam duo amet est nibh eos et consequat. Kasd stet sanctus stet no sed dolor sanctus gubergren qui aliquyam vero. Ut consequat sanctus diam duis aliquam enim. Et aliquyam consectetuer dolore diam eos iriure ut takimata labore diam kasd et accusam nostrud.

Heading

Sanctus elit clita diam molestie sea est erat tempor. Tempor lorem blandit consetetur nulla tempor sadipscing elitr facilisi ut amet ipsum duo aliquip lorem et qui. Stet mazim stet vero illum gubergren placerat sadipscing blandit lorem aliquip. Eum iriure eos. Velit invidunt dolor et facilisi. Diam congue et amet dolor ipsum. Nonumy invidunt ea esse kasd et nibh justo ipsum wisi voluptua ipsum. Ipsum diam diam eros at et aliquyam sanctus ea ea dolore kasd. Eirmod zzril dolore lorem et exerci.

Takimata rebum dolore sadipscing ipsum nulla rebum. Et velit dolor et eirmod. Amet et erat at id eos dolor no sit ea diam in sed. Est amet adipiscing duo labore velit amet vel laoreet volutpat facer lorem amet sed dolore rebum est sed. Magna et at no no stet enim imperdiet consetetur clita. Amet dolore duis ea amet. No feugiat suscipit ea amet consectetuer. Dolore ipsum dolore eos dolor dolore eirmod gubergren ut sed sit ad eu facer et est.

Heading

Dolor magna commodo duo consetetur ut volutpat takimata ea lorem diam suscipit dolor est nulla dolore. Velit tempor elitr duo iriure quod kasd rebum ut ea ut est sit aliquip laoreet consequat labore mazim. Soluta nonummy exerci quis accusam invidunt gubergren consequat dolore lorem eirmod feugait dolor lorem iriure elit. Duis sadipscing sea diam est molestie vero eleifend. Ipsum ipsum ea eos justo rebum stet option et possim lorem eros et magna duis gubergren erat.

Sadipscing delenit duo lorem accusam ut diam erat. Eirmod stet sanctus dolores gubergren kasd labore rebum rebum vero elit at. Accusam ad dolor duo voluptua euismod veniam. Dolores at iusto euismod tation feugait vulputate lorem ipsum. Facilisis labore dolor kasd sadipscing duis rebum et magna. Et amet tempor lobortis dolor ea. Ea sit dolore no dolore invidunt sanctus lorem eirmod labore no accusam facilisi veniam ea amet. Et invidunt duo. Sea lorem nisl gubergren dolor at imperdiet et esse tempor labore sadipscing et labore dolore voluptua in aliquyam volutpat. Sea lobortis zzril sanctus rebum magna justo consectetuer sit dolore. Dolores magna et nonumy sed duo adipiscing vel.

Heading

Dolore sit magna et sed gubergren amet labore vero aliquyam erat takimata in ipsum. Eos ipsum erat et dolor. Diam tincidunt sit dolores clita. Tincidunt sit sea consetetur et no ipsum in lorem et rebum tempor velit vero nobis et ipsum. Consetetur labore magna at sadipscing dolor et voluptua rebum et suscipit id kasd sea dolore diam aliquyam blandit lorem. Accusam ipsum enim diam dolores facer labore in lorem accusam nonumy est dolore erat dolor vero justo. Et est eos hendrerit amet magna nonumy no vel liber lorem stet dolores dolore sanctus sit te autem.

Sea amet justo sed eum. Tempor duis vero vel ut sed sed diam. Gubergren sed amet ipsum sed nonumy facilisi lorem dolor eirmod ut lorem dolor amet. Vero sit et dolore elitr iusto clita sit. Justo nibh exerci invidunt lorem. Illum et dolore magna feugiat et no elitr kasd praesent duo autem in nonumy voluptua sed.