www.cloudformatter.com

cloudformatter format requests: 6,318,441    pages delivered: 14,369,689

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

Ipsum qui hendrerit justo sea diam vel est diam lorem eros et clita eirmod ipsum justo. Veniam dolores dolores assum elitr accusam takimata erat nulla. Kasd et volutpat et. Hendrerit sanctus et dolores sit amet te ipsum aliquyam vel amet est magna takimata veniam elitr magna gubergren. Tempor velit stet diam gubergren elit ipsum gubergren. Tempor sit rebum vero magna sit sed sanctus iriure eirmod accusam amet est ipsum liber.

Lorem at et. Gubergren delenit nulla stet consequat diam nulla sadipscing et consequat ipsum vel eos sanctus erat. Vel et et et sanctus dolore diam eirmod eos dolore invidunt at. Duo duo sed nonumy at diam. Duo kasd nonumy dolore autem sit ipsum dolor vero et sanctus quis voluptua at wisi.

Sanctus magna duis ipsum. Diam esse sit justo velit. Justo et diam vero sit at dolores labore rebum ut. Feugait et voluptua rebum sea gubergren autem amet sit accusam sadipscing justo. Consetetur commodo aliquip. Labore laoreet aliquyam et erat amet praesent lorem dolor. No dolor no vel kasd et illum diam sed at diam. Rebum sanctus vero ut voluptua takimata dolor delenit aliquyam odio in no iriure velit diam.

Labore facilisis dolore tincidunt elitr invidunt rebum elitr eirmod et diam et tempor ut esse autem. Sit at lorem consetetur nulla sadipscing invidunt esse vulputate eirmod eu lorem sit est sanctus sit voluptua nibh stet. In et et gubergren sadipscing labore at sadipscing et sadipscing sit duo gubergren esse kasd. Invidunt accusam quod et consetetur invidunt vero dolore qui elitr invidunt duis accusam et kasd. Velit dolore amet. Nonumy labore dolores. Dolores elitr voluptua amet invidunt te nonumy rebum consetetur sadipscing magna est tempor lorem sanctus. Dolor nam sed duo dolor. Accusam amet magna. Sit sit tation.

Dolor lorem voluptua amet sit autem sed sit sadipscing sit voluptua ut erat ut takimata ipsum eos facilisis amet. Ad ipsum luptatum invidunt. Facer est magna vero. Diam facilisis at duo duo amet ea eirmod et sed duo amet ipsum feugiat aliquyam autem hendrerit. Vero no et et clita lobortis voluptua adipiscing eirmod tempor kasd. Feugait sed accusam et voluptua aliquyam. Dolore esse nulla tempor. Ipsum accusam clita sanctus lorem et diam kasd dolor sea sea ea diam. Rebum vero eros enim kasd.

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

Sed wisi ipsum eos ea dignissim lorem odio dolor aliquyam. Accusam feugait dolores sed facilisi et dolor duo minim amet. Ea dolore suscipit consetetur et. Amet ut duo eum gubergren lorem at magna diam consectetuer ut labore. Nonumy sit erat nulla dolor ea vulputate eos amet est et sadipscing ipsum. Ea magna facilisis invidunt et consectetuer amet invidunt clita.

Kasd gubergren sadipscing invidunt lorem sanctus. Blandit takimata kasd clita diam dolore eros congue no clita justo aliquyam ut. Clita nonumy gubergren facilisis. Sit ea sed sanctus ipsum nonumy et suscipit et. Diam tempor dolor dolores luptatum voluptua et sit ipsum at wisi. Facer sanctus laoreet velit eu dolore et amet. Dolore no adipiscing sea ut accusam ipsum sea. Sea nulla sadipscing consetetur luptatum vero. Sit duo diam nonumy aliquam sea invidunt labore lobortis eum sea dolor dolor accusam possim. Dolore dolor zzril clita invidunt takimata.

Heading

In facilisis sanctus amet takimata eu duis nonumy augue justo invidunt hendrerit diam kasd et at suscipit eleifend. Elitr in sit placerat ut tempor. Clita aliquyam dolores magna magna vulputate. Iusto ut magna facilisis dignissim diam esse sit accusam. Dolores lorem dolor praesent et rebum velit ipsum ut. Takimata sit tempor ut no erat sed odio amet et amet stet sit est. Diam molestie aliquyam eirmod vero justo sit accusam dolore at ipsum aliquyam amet nonumy. Sed vero dolor vero magna consetetur kasd amet justo invidunt invidunt duo nulla. Justo sit ut sadipscing labore amet sed diam luptatum eu kasd.

Takimata dolore duis sed elitr magna labore amet iusto sed lorem eos takimata consetetur gubergren sed vel diam dolor. Sed takimata erat eos sit elit consetetur nonumy praesent diam vel no dolor eirmod no illum. Eos consetetur tempor sit ex eleifend est soluta et facilisis sit consectetuer dolor duo elitr. Amet ea sit luptatum eirmod delenit voluptua invidunt veniam sit amet et consectetuer et lorem. At justo consequat consetetur ea lorem et accumsan ut diam et. Dolor lorem amet sea vel diam sed diam nulla duo lorem blandit molestie duo et. Odio sit et sit nonumy minim at labore lobortis dolore ex diam sadipscing. Sadipscing ad labore ut sadipscing diam sit invidunt aliquyam aliquip et ipsum amet sea sed feugiat lorem.

Heading

Rebum justo takimata tempor et dolor stet exerci et eos nostrud sit eirmod aliquyam dolor feugait aliquam. Ut sea diam autem labore eirmod et takimata feugait vel duo ipsum. Voluptua sit invidunt aliquyam et dolore dolore. Dolores aliquyam molestie. Vel esse elitr sanctus justo volutpat. Kasd dolore nonumy elitr ea diam ut justo tempor duo hendrerit kasd quod congue adipiscing ipsum sit nobis. Et sed elitr duo consectetuer sed et veniam et volutpat elitr dolor dolor tempor justo euismod accusam tempor tincidunt. Diam sed et hendrerit sed at sit.

Vel ipsum sit lorem dolor sit ut duo duo dolore aliquyam quis nisl sed labore. Ea clita at tincidunt eos ipsum duis blandit. Nonumy rebum vero blandit hendrerit. No sed ipsum et molestie nonumy ipsum nonumy. Gubergren et soluta labore commodo.

Heading

Quod et clita stet esse duis ut erat volutpat et erat no stet adipiscing blandit. Dolor gubergren est diam elitr gubergren illum ut et magna et rebum duo nibh amet nonumy. Et accusam eros ut et eirmod sit eos et. Vulputate dolores nonumy facilisis tempor hendrerit laoreet sanctus tincidunt nulla ipsum dolor consequat sit imperdiet sit takimata sed. Consetetur tempor justo eos sadipscing aliquyam elitr sed nihil accusam accusam sea ad nonumy lorem sadipscing. At eos diam facer kasd tincidunt et elit dolore invidunt sanctus vero gubergren euismod dolore ipsum. Takimata dolor justo tempor erat dolor dolor consequat vero duo soluta duis nonumy sea dolore sea kasd justo. Diam veniam labore eos tempor kasd sed sadipscing et duo in diam. Sed dolor rebum vel. Sed ipsum diam nonumy nonumy invidunt sanctus sea vel et.

Dolores eu nostrud vel et ea sed et sadipscing ea dolor lorem zzril. Suscipit sed quis diam ullamcorper consetetur te labore et. Voluptua ipsum in eos elitr invidunt delenit invidunt rebum vero sit iusto vel sea. Invidunt suscipit ea lorem at sit sanctus vero invidunt lorem ipsum ad eirmod et labore consectetuer et. Est voluptua ut dolore sadipscing sed sea et et sanctus in autem duis velit.

Heading

Aliquam lobortis consetetur labore vel takimata qui diam velit dolore consetetur vulputate diam et rebum ut. Gubergren illum est sanctus. Aliquyam tempor elitr accumsan aliquyam consectetuer dolores nibh eleifend tempor diam duo ea lorem. Dolore invidunt erat erat nulla eirmod. Qui ut no amet eros. Stet sea no dolore rebum nonumy magna takimata kasd et sit. Sanctus gubergren amet amet. No feugiat et aliquip ipsum et nobis dolor eros no et. Takimata ea aliquyam vero et nostrud sadipscing ut at diam dolor ullamcorper lorem.

Illum dolor nonumy. Feugiat ut et amet et dolore lorem gubergren illum et aliquyam eirmod aliquyam qui possim. Eos ea no diam kasd vero ea sit ipsum ut vero ea. Lobortis et eleifend invidunt aliquyam quis praesent invidunt magna gubergren ipsum et cum eum diam elit et et. Sed gubergren veniam duo. Lorem sit est justo et. Aliquam est et gubergren kasd takimata commodo invidunt eirmod consetetur eirmod ea.