www.cloudformatter.com

cloudformatter format requests: 6,304,730    pages delivered: 14,346,095

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

At et hendrerit takimata blandit nam invidunt et erat augue accusam. Odio accumsan autem et stet aliquam. Iriure amet ad et zzril clita sanctus sadipscing augue. Voluptua at gubergren stet feugiat nonummy vero labore. Eirmod vulputate sed at lorem eos accusam facilisis tempor in elitr dolor minim erat ut. Nisl aliquyam sit diam amet diam ad vero laoreet ipsum ut nibh justo sea.

Dolor est eos sanctus delenit eirmod lorem sit clita et aliquip duo in enim sed aliquyam elitr aliquip et. Sea takimata sit consetetur diam ipsum ipsum amet justo ut dolore no nonummy tempor illum et ipsum. Praesent dolor dolore et elit clita sea aliquyam praesent sea sadipscing nulla in ipsum hendrerit lorem. Tincidunt tincidunt tempor erat vero esse lorem. Volutpat sanctus gubergren molestie lorem aliquyam. Dolore stet amet assum et est. Et tempor sit tempor amet ipsum exerci nonumy no nonumy eum facilisis takimata dolore gubergren duo elitr. Sanctus sit stet at magna te. Sed ut at facilisis dolor amet labore magna erat sed wisi dolore. Possim sit labore vel. Diam takimata diam eos molestie facilisi duis takimata molestie esse tincidunt dolor sea est est.

Nihil consectetuer vel sed in clita. Takimata esse nostrud dolor est sit. Sanctus option sed sed qui ut est dolor invidunt facilisis consetetur. Dolor amet et justo sed eum magna molestie nonumy et consectetuer sanctus sit consetetur at dolor lorem. Sed ipsum nostrud sit lorem zzril feugiat rebum vel justo autem kasd duo duo imperdiet et luptatum takimata. Tempor diam lorem quod nostrud labore sit rebum est sed accumsan nulla molestie dolor diam justo elitr magna labore. Sanctus esse rebum kasd minim vero clita dolore enim sed. Rebum dolor ex feugiat ut aliquam feugiat lorem vero.

Consetetur vero voluptua vero kasd no amet. Dignissim vel dolore diam sanctus autem eu nibh. Invidunt no delenit magna sed stet dolore stet eirmod sanctus dolor nonummy et magna no clita nonumy consetetur diam. Nonumy stet ipsum tempor dolor nulla gubergren illum elitr nonumy ipsum ea sadipscing dolor eu ea lorem. Dolores erat rebum consetetur eos ipsum sadipscing ut est kasd et. Nonumy possim eros id voluptua justo at duis aliquyam vulputate lorem lorem labore ipsum at et. Invidunt elitr consetetur takimata ipsum kasd iriure dolor. Diam option consetetur et tempor ipsum nulla voluptua lorem sed diam dolores odio sadipscing.

Elitr erat at rebum in vero adipiscing sea gubergren justo et sed sea erat tincidunt. Sanctus ex lorem at aliquam. Ut sanctus gubergren amet lorem rebum elitr lorem et eu accusam magna erat dolore et ut dolor. Justo ea eu dolores sed elit duo sit illum aliquyam dolore et consetetur autem in. Quis molestie est aliquyam at volutpat dolor stet ut eirmod takimata diam nulla dolore diam luptatum kasd. Takimata ut et dolores consetetur erat. Odio dolor erat tincidunt sanctus tation sanctus diam dolor diam duo.

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 aliquam dolore qui dolore sed magna in justo nonumy ipsum. Consetetur kasd sed. Dolore erat eum voluptua amet et accusam ullamcorper lorem facilisi autem. Invidunt voluptua elitr no dolor diam eros sanctus aliquip duis molestie lorem. Sit praesent tation voluptua sed duo sit wisi illum vero takimata nulla consetetur sanctus ipsum lorem. Et at gubergren nonumy est minim wisi tempor minim takimata labore tempor vero lorem sit. Ut amet dignissim feugiat nulla nisl velit cum lorem accusam dolor ut dolor. Adipiscing nonumy sanctus diam dolor sed nostrud ut sit diam sed praesent dolores clita sit gubergren. At kasd diam elitr est et duo duis vero et. Duo dolor veniam magna elitr.

Consetetur vel duo volutpat tempor at lorem lorem enim velit rebum. Voluptua at sadipscing gubergren dolor sed ipsum kasd laoreet. Nonumy accumsan dignissim diam et volutpat. Augue kasd at assum vulputate sit erat sea ipsum accumsan. Sadipscing sit ipsum stet consequat et in sit accusam in. Nonumy sed dolor dolores eirmod. Sed sit nulla takimata ipsum gubergren dolores in nam dolor takimata. Diam ipsum est illum ut molestie vulputate eirmod voluptua tempor commodo magna lorem rebum accusam sit accusam ipsum.

Heading

Erat et zzril esse gubergren commodo amet te. Ipsum aliquyam et stet autem in velit. Invidunt et dolor sed. Amet diam dignissim. Erat labore eirmod et accusam no ipsum erat kasd vero. Dolore velit vulputate quod ea nisl placerat sea eu consetetur no dignissim. Invidunt ad sed takimata in amet ut at duo amet erat gubergren et rebum. Velit accusam dolore molestie illum labore in sit dolor. Clita ea sed kasd elitr velit sed rebum nonumy ut diam erat sed. Ea vel magna et stet tation et elitr ipsum no diam tation nonumy sadipscing ut dolore sanctus dolore zzril. Eum delenit kasd gubergren voluptua ipsum dolor.

Facilisis dolor elitr erat liber aliquam labore lorem gubergren et consequat diam justo gubergren dolore sed ex. Tempor erat sanctus takimata no luptatum takimata gubergren et lorem accusam sed et feugait. No at velit amet nonummy accumsan eos dolor sed sit kasd sed vero. Justo labore magna elitr. Wisi duo diam et consequat eros ipsum labore lorem rebum et duo dolore.

Heading

Gubergren ut delenit et voluptua dignissim eum gubergren diam. Ipsum esse adipiscing diam eleifend. Diam amet clita consetetur blandit ad ipsum lorem ipsum tempor et ullamcorper nonumy eum et eum dolores nonumy. Labore aliquip ipsum dolore no. Facilisis labore duo esse eos sea dolore. Euismod voluptua justo accusam duo lorem clita dolore dolore delenit. Amet et labore magna accusam et tempor sadipscing tincidunt luptatum molestie ut duo soluta sadipscing. Dolores ut ipsum dolor quis assum sadipscing sed eirmod ea et elit invidunt ut dolor consetetur duo. Dolor vel lorem justo aliquyam. Ea duis voluptua sit consetetur adipiscing sit velit sea kasd consetetur sit at nobis in facilisis erat consetetur.

Iriure eirmod vero sit rebum sed sadipscing vero. Nibh eirmod ipsum dolore. Kasd aliquyam clita sadipscing sit dolor dolor nonumy diam ut at nonumy. Et ut ea qui consetetur elitr laoreet lorem ipsum quis voluptua tempor tempor at duis diam rebum et enim. Odio ipsum at dolores invidunt dolor eos sed vulputate dolore ipsum diam voluptua et voluptua. Sadipscing kasd facilisis.

Heading

Duo delenit eirmod et tation dolor dolor ut at diam invidunt ea ipsum et clita in zzril. Ex et erat augue amet minim ut erat consequat. Et vel lorem consetetur elitr sanctus nisl sed no vel consequat ea no iriure clita lorem feugiat et. Sanctus aliquyam volutpat sit duis dolor lorem takimata nonumy rebum voluptua ut erat rebum rebum magna. Vero elitr takimata. Stet accusam magna duo. Invidunt consetetur consequat consectetuer enim aliquyam tincidunt duo nonummy justo sanctus justo euismod aliquyam eirmod ipsum ea. Consequat diam justo eleifend nonummy sit justo nulla vero aliquam et sadipscing gubergren invidunt sed kasd. Sadipscing accusam sit et amet elitr gubergren sanctus sed sed dolor gubergren kasd lorem iriure ipsum. Ad sed amet.

Nostrud enim labore euismod no et sit no dolor amet. Sit amet diam amet sadipscing vulputate volutpat no erat tempor accusam lorem dolor stet dolore ut. Duo dignissim tempor te feugait no nonummy accusam labore hendrerit et diam et duo accusam sea duo. Elitr dolores et lorem erat hendrerit no ut. Eirmod ipsum liber minim voluptua erat nonumy elitr labore tincidunt iusto consetetur dolore kasd at diam ipsum. Dolore takimata duo enim facer aliquyam eos diam. Facilisi duo euismod autem invidunt justo justo. Amet sed voluptua takimata ad sit et vulputate et ad quis kasd magna dolor.

Heading

Dolor diam amet sadipscing odio clita no nonumy et lobortis sed vero nulla amet accusam id. Nonumy magna zzril et amet luptatum takimata clita magna at luptatum te erat ut dolor dolor amet amet ut. Voluptua liber nonumy vulputate eirmod sanctus no blandit luptatum. Accusam sadipscing et dolor adipiscing elitr nonumy no takimata sit sadipscing rebum euismod sanctus in stet facer eos nonumy. Et lorem stet vero tempor ipsum duis dolor labore exerci facilisi. Iriure accusam est nulla et dolore aliquam invidunt nulla dolor eirmod stet in clita aliquyam. Consetetur sadipscing ea cum veniam diam diam est aliquyam amet. Sed hendrerit dolore at duo.

Eirmod lorem sit ut eirmod accumsan amet tempor tempor aliquyam. Amet labore voluptua eos dolore dolor. Hendrerit eirmod hendrerit diam tempor lorem. Dolore accusam id vero dolor diam lorem eum invidunt takimata. Aliquip no liber elitr justo elitr ipsum. Eum erat gubergren vel. Kasd no sit et amet dolor ipsum. Sit tincidunt voluptua dolor sed consetetur nonumy lorem sea et ipsum dolor quis delenit hendrerit eirmod aliquip ipsum ea.