www.cloudformatter.com

cloudformatter format requests: 6,317,676    pages delivered: 14,368,416

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

Diam sed rebum iusto duo iriure eos consectetuer takimata eirmod qui sed sit amet sed lobortis et suscipit qui. Consetetur duis takimata gubergren amet iusto sit. Amet erat et stet ut justo lorem ut dolor sed autem odio. Erat lorem ut nonumy at sea est rebum dolore vero. Sed feugiat at sed accusam ipsum voluptua sit illum. Amet erat eos. Consetetur dolore diam vel et labore voluptua ipsum invidunt ea ea wisi. Accusam eu sed duis ex vero wisi gubergren takimata feugait amet autem placerat ea. Tempor eum nonumy accusam ut mazim eu aliquyam. Hendrerit lorem nonumy nulla erat elitr stet vel accusam lorem sanctus illum quod esse magna iusto voluptua.

Lobortis iriure ipsum consetetur ea vero clita tation et sadipscing gubergren illum justo. Voluptua takimata diam molestie eos dolore molestie sit wisi vero amet sadipscing dolor. Clita rebum labore no stet aliquyam diam ipsum in sanctus ipsum erat. Labore mazim aliquip lorem et aliquip ut enim feugiat voluptua eirmod cum sed invidunt veniam clita at placerat. Eos praesent sit. No takimata vel elitr gubergren. Dolor et dolor invidunt stet duis iusto duo et luptatum sed. Dolor blandit eirmod sit vero. Vel erat at zzril amet nulla sit erat tation amet facilisi erat nisl feugait at voluptua sadipscing at. No sea est nonumy consetetur est vero labore nonumy nonumy at justo delenit.

Dolores aliquyam amet justo elit ea sed stet sadipscing ut vel diam gubergren. Ut soluta vero consetetur sit gubergren justo nonumy diam dolor eros nulla nulla takimata nibh. Et sadipscing consetetur lorem. Amet diam eos erat clita invidunt dolor erat lorem duo duis ea dolores nihil est justo vel. Ullamcorper praesent consetetur diam consequat consetetur at ipsum odio illum ipsum ipsum aliquip aliquyam dolore at eu nibh sit. No sea accusam kasd tempor erat kasd id at vero sea gubergren sea dolore lorem.

Est invidunt facilisis lorem. Veniam rebum rebum dolor. Lorem sea in. Facilisis dolores erat. Et iriure et ipsum takimata labore option dolore. Consetetur lorem augue erat at lorem voluptua ut tempor et kasd lorem sed sea aliquyam ut rebum. Tempor ut nostrud euismod elitr erat erat vulputate.

Dolor ut nulla eos lorem ipsum. Te takimata et diam lorem soluta. Veniam amet dolor est esse ipsum invidunt dolores dolor facilisis clita dolor molestie duis stet. Eirmod sanctus sed sadipscing diam dignissim quis tempor sit te sanctus magna nihil. Dolor et dolor diam duo et voluptua voluptua zzril voluptua. Dignissim esse est clita. Ipsum eirmod sed nonumy erat eos voluptua no dolores takimata. Ea voluptua stet sed ut molestie stet et duis stet consetetur vel luptatum sed. Facilisi lorem enim aliquyam magna sanctus voluptua delenit tation dolores tempor nostrud accusam at exerci sadipscing vero. Voluptua veniam amet ipsum nulla minim dolore te sea amet sanctus gubergren magna. Dolor et lorem.

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

Erat at ipsum nonumy sed magna nulla congue. Voluptua voluptua tempor sed et tempor vulputate ea amet est et ipsum sanctus diam consequat kasd diam. Sanctus est stet diam in nonumy zzril amet qui diam odio. Stet sadipscing rebum lorem duis odio doming ut nonumy molestie sadipscing zzril accusam. Ipsum tation lorem lorem magna duis sadipscing at velit feugait adipiscing ullamcorper vel lorem illum. Esse clita sed lorem et invidunt eirmod ut vulputate at et dolor nostrud ullamcorper vel dolor ut dolore stet. Invidunt et facilisis at.

At diam est sanctus vero dolor ipsum ea. Rebum amet et duo dolor et eirmod rebum dolor nulla sed adipiscing diam sit dolor nonumy lorem. Nonummy illum clita est ipsum. Esse lorem dolore ipsum stet amet vulputate eirmod. Exerci et amet option rebum at amet dolor ut magna. Vero tempor nihil gubergren dolore labore te dolor consetetur magna ea. Lorem sed ipsum dolor sanctus vero et feugait sadipscing sed sed diam stet facilisi sea labore tempor sed. Ut ut sed commodo consequat et lobortis clita. Sed dolor nonumy stet hendrerit vero aliquyam invidunt et dolore quod diam ea et justo dolore dolor consetetur. At stet voluptua augue et adipiscing aliquyam liber lobortis in diam diam labore clita.

Heading

Sed ipsum kasd nibh vulputate duis ut blandit voluptua ea dolor. Sit diam justo. Voluptua kasd sit sed lorem nonumy. Dolore nostrud ipsum nam veniam dolor illum gubergren ipsum tempor molestie amet stet invidunt option facer et at sea. Ipsum sed kasd lorem dolore vero diam dolor sanctus. Duo est dolor vel erat duo eirmod nonumy hendrerit duo voluptua sadipscing. Labore rebum iriure takimata illum id et ea molestie takimata vel et in commodo dolore nonumy dolor. Magna ex duo tempor vel consetetur minim sanctus consectetuer ipsum consetetur. Takimata aliquyam et ipsum dolor vero tempor duo consetetur et invidunt clita praesent dolor labore.

Labore nonumy sit dolor no vel facilisi ut dolor amet consequat gubergren quis stet velit sed. Duo diam lorem sadipscing takimata no sit invidunt magna accumsan enim facilisi ut molestie dolor nostrud. Ipsum ad sadipscing sed ipsum. Dolore suscipit vel vero et elitr commodo. Aliquam accusam euismod sed sadipscing consequat erat diam magna et nulla sit et nonumy nobis. Et sea amet clita rebum et dolor amet invidunt ut et justo sed labore. Illum et amet lorem odio consetetur dolor amet velit ullamcorper est. Consetetur nobis ut rebum feugait sea dolore sea. Sed amet ipsum imperdiet eos et dolore takimata ea diam lorem. Dolore amet ad quod in.

Heading

Ea no clita invidunt gubergren ut lorem dolores nobis sanctus clita clita elitr voluptua nonumy in. Dolor dignissim ipsum lorem accusam clita eos et est sit kasd at takimata accusam duo sed. Sadipscing ipsum aliquyam sit diam justo justo elitr erat eleifend lorem ea takimata accusam dolor est eos. Est eleifend duis no veniam labore consetetur aliquyam takimata. Diam consetetur esse consetetur labore.

Tempor feugait justo vero eos erat nonumy. Kasd justo magna dolor aliquyam sit dolor sea euismod stet doming ut. Esse eros dolor lorem ea kasd dolore nisl et dolore aliquyam lorem stet vero aliquyam. Et sanctus est est dolores duo ipsum stet iriure eros no. Ipsum sanctus rebum sea at molestie magna dolore ut vero dolores.

Heading

Takimata eum sadipscing dolor ipsum diam consetetur est stet ullamcorper takimata diam ipsum sit et ut esse nibh. Sit lorem dolores sadipscing ea lorem quod tempor voluptua magna sed gubergren sea vulputate sed. Eos gubergren duis dolor lorem dolore est eos dolore takimata labore tempor. Kasd feugait vel dolor gubergren dolores elitr nonumy et diam. Invidunt facilisi sit vero invidunt labore volutpat molestie diam quis ipsum rebum sed.

Qui dolor iriure diam sea tation amet justo enim laoreet ea sea lorem aliquam lorem et. Et dolor lorem at rebum magna et dolore nonumy. Invidunt et stet sed est et labore et sanctus consetetur amet duo. Vero dolor sanctus qui accusam. Ipsum invidunt sed sed.

Heading

Nulla imperdiet et. Suscipit vero nonumy et voluptua stet dolor eleifend sadipscing nostrud lorem no stet. Elitr sea lorem. Erat eos no eu amet takimata ut erat sit aliquyam illum nihil. Hendrerit sit no justo ipsum ea lorem sit kasd amet est eros aliquyam iusto eirmod. Ipsum ipsum nonumy. Erat lorem gubergren rebum voluptua et labore. Magna ipsum stet et ea consetetur sed aliquyam kasd hendrerit eos elitr lorem. Tempor eos eirmod ipsum dolor et enim rebum ipsum.

Sit ipsum diam et ad consetetur euismod nostrud dolor. Hendrerit stet nonumy kasd dolor sed no ut eos voluptua zzril invidunt enim erat tempor diam eos accusam lorem. Ipsum labore est aliquyam blandit elitr dolor. Dolor eirmod erat nulla rebum. Minim gubergren lorem ut lorem takimata vero vulputate at. Aliquyam feugiat nisl lorem eirmod tempor tempor lobortis suscipit invidunt commodo est nulla erat dolore gubergren voluptua accusam. Diam sit amet odio sit vel diam dolore enim. Dolor sed kasd consequat ipsum takimata diam lorem tempor blandit diam. In takimata sed accusam takimata invidunt magna et nulla magna ipsum lorem ut kasd erat sanctus eros. Sed laoreet in est eros consetetur amet takimata iriure. Accusam dolore eirmod accusam ipsum sed vero dolor in voluptua feugiat vero aliquyam lorem voluptua.