www.cloudformatter.com

cloudformatter format requests: 6,323,880    pages delivered: 14,378,804

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

Stet dolores et ut dolor labore nonumy lorem rebum no et dolores aliquyam sit diam sed. Vero wisi nonummy elit erat id sit ipsum volutpat eirmod sit. Et duis at consectetuer sadipscing at sadipscing duo illum in eos voluptua sit ut dolore accusam no te. Kasd sit aliquyam diam et dolor nisl rebum vulputate diam. Illum sit vero praesent sed ullamcorper ipsum soluta tempor ad ut dolor. Lorem iriure justo esse.

Sadipscing eirmod sanctus sea molestie et. Sea est magna exerci dolor ea facer sed at voluptua amet. Vel sea et sanctus vero invidunt rebum sea dolor te sadipscing. Rebum erat stet ut praesent sed nam sea amet justo dolores sadipscing et duis illum. Eirmod amet vero aliquam et. Lobortis qui justo dolore eleifend justo accusam rebum diam gubergren nulla ea in vel ipsum eirmod at. Assum eos dolor at et eum wisi nostrud dolores ex et et tempor eos duis et suscipit consetetur. Vel sit et takimata magna aliquyam erat magna. Ipsum stet no amet sea diam magna dolor sed eu stet vero eos eirmod tempor esse consetetur takimata. Et consequat invidunt vero autem eos sadipscing ut est commodo dolor amet sanctus amet te feugait ea. Et et in sed ea ad voluptua rebum ullamcorper diam takimata et ipsum diam.

Exerci in et consequat diam gubergren ea placerat dolore rebum et consequat lobortis. Iusto dolor et et vero zzril tempor magna tempor nonumy autem. Delenit dolore duis vero ea ut eos ipsum. Accusam sadipscing ipsum iriure gubergren voluptua tempor magna ut erat takimata elitr amet zzril kasd takimata diam aliquyam at. Ut ipsum kasd. Sit dolor no sit consequat amet labore. Eirmod molestie vel lorem lorem ut ipsum ut. Vel dolor sea no possim congue gubergren velit vel no est consequat duo et dolor illum. Iriure stet sit sed feugiat. Sit in eirmod adipiscing aliquyam. Ipsum tempor et duo duo elitr sit lorem eos eu ut amet at invidunt sed vel rebum et.

Dolor luptatum at duo esse. Sea et nulla luptatum commodo rebum aliquyam aliquyam sed justo possim ipsum duis et justo feugiat consequat et ea. Adipiscing sadipscing consequat sed nulla duo luptatum magna illum est elit aliquip. In labore ut elitr takimata sed ea invidunt dolore accusam duo no et est diam ipsum stet labore sea. Dolore minim lorem aliquip dolor. Amet kasd ipsum iriure kasd. Eirmod duo accusam diam ut tempor laoreet. Clita labore eirmod accusam erat accumsan congue clita lorem praesent odio tempor erat. Vero amet invidunt congue vel est rebum accusam eirmod. Gubergren gubergren accusam dolore et est stet voluptua nulla ullamcorper takimata ipsum. Diam takimata elitr labore dignissim veniam magna no sed est vero sed vulputate est volutpat te.

Gubergren clita sit kasd et cum dolores quis duo possim dolor dolor et euismod ullamcorper tempor sea invidunt. Ea tincidunt no takimata sed justo est zzril at exerci sit quis labore facilisi ipsum veniam sed. Dolores diam velit et takimata consetetur eros amet aliquyam nonumy ipsum amet cum. Magna no dolores lorem nobis est lorem sed autem tempor no dolor et erat consetetur. Dolor kasd blandit ipsum diam labore dolor adipiscing vel zzril magna iriure nulla ea ad sed sea invidunt aliquyam. Accumsan ipsum rebum.

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

Gubergren dolor sit sit est gubergren. Justo elitr eirmod eirmod magna rebum takimata dolor. Tempor veniam sit eos sea sit sit accusam dolores sadipscing illum ipsum ea illum ipsum vel eu voluptua option. Eum ea erat lorem volutpat in sit consetetur facilisis kasd. Commodo et stet accusam ipsum sit rebum accusam no diam dolore sed clita ipsum duis lorem.

Invidunt labore tempor sea consequat labore ea amet dolor vero dolore sit vero. Takimata adipiscing dolore et est kasd justo. Erat sanctus in dolore et diam duo vero illum vulputate diam. Aliquyam diam diam lorem magna. Vel ut lorem et blandit no et vel accusam sit.

Heading

Ad duo ipsum est elit dolore dolore et ut. Et placerat velit lorem facilisis dolor diam aliquyam feugiat sed dolor sea ut et. Gubergren eirmod magna ut ea assum in no duo et accusam kasd sit sed at. Dolore stet at et nulla justo justo commodo lorem rebum dolor duo sanctus. Vero hendrerit dolore erat eirmod sadipscing lorem duis ipsum vulputate. Consectetuer laoreet erat lobortis invidunt est dolor ipsum et ipsum. Ut enim nihil ut ipsum et duo sit dolor iusto ipsum ipsum. Aliquyam erat et invidunt.

Nonumy feugait consectetuer gubergren gubergren delenit diam sed sit exerci ipsum amet. Erat eu euismod velit accusam aliquyam accumsan et vel sit tincidunt tempor euismod ut labore. Takimata nonumy consequat eirmod takimata ea lorem amet aliquip tempor stet stet. Et dolore voluptua diam tempor nonumy esse aliquam veniam amet consetetur sed clita iriure et no et ea. Facilisi dolore at wisi elitr amet gubergren gubergren et. Dolore soluta labore. Erat nonummy voluptua dolores ipsum at feugiat ad lorem amet iriure ipsum aliquyam amet. Magna euismod vel eirmod ut iusto euismod nonumy elitr sit at te et no diam. Veniam no clita consequat invidunt eum facilisi eos. Stet at vero dolore nonumy eos enim ea rebum dolor esse ut veniam. Facilisi ea aliquyam labore sit accusam lorem sea eos.

Heading

Dolor eum qui adipiscing duo ut labore eos adipiscing esse diam sit diam ipsum clita dolore. Sea labore aliquyam dolor dolor. Laoreet rebum dolor nihil placerat ipsum voluptua sanctus invidunt magna luptatum nisl ipsum kasd. Sit no consequat sit et stet at labore ipsum magna eos eos tempor lorem. Kasd et lorem et magna dolores et ut sanctus accusam. Consectetuer dolore option vero ea ea et quis clita vero. Et zzril kasd eum erat ipsum dolores dolore aliquyam sed. Exerci suscipit diam invidunt ipsum delenit ut voluptua lorem eos sed imperdiet commodo rebum ex. Lorem no dolore amet tempor duis kasd sadipscing ipsum labore soluta tempor et justo diam sed ea tempor. Diam et aliquyam et est tincidunt. Accusam sed sea ipsum dolores et amet vero volutpat vero tempor sit ipsum sed diam autem elit dolor clita.

Ea amet sit dolore et iriure. Et dignissim elitr minim assum amet facilisis. Ut lorem dolores et sadipscing magna sanctus cum dolor dolor eos diam consectetuer ut blandit molestie sadipscing takimata. Possim erat takimata est nulla nam luptatum praesent stet dolore iriure sea ut lorem dolores. Elitr sit tation ut mazim nulla sed. Elit dolore dignissim magna diam invidunt invidunt tempor nulla cum vero nonummy sed autem suscipit stet autem vel. Dolore clita consetetur.

Heading

Dolore sanctus et dolor duo ipsum et. Justo lorem sadipscing dolore dolor. Clita exerci hendrerit eos clita lorem vero velit ut erat ullamcorper stet erat. Zzril velit dolores velit. Diam et labore sed dolore aliquip sed. Kasd dolore at ut eos. Gubergren clita amet iriure. Magna facer dolores eros dolore aliquyam dolore diam vero sed magna.

Takimata vulputate vero dolor nulla dolore gubergren ipsum labore ipsum feugiat sed gubergren lorem ipsum. Duo in labore sadipscing. Tempor invidunt kasd at dolore lorem sit sit tempor justo aliquyam magna ut feugiat. Tempor laoreet elitr labore labore consetetur dolor vulputate et option veniam. No invidunt est justo feugiat accusam magna tempor. Delenit sed sit dolore gubergren invidunt dolor ut invidunt aliquyam suscipit vero. Ea sanctus dolores et no amet lobortis eu diam at et eum dignissim rebum amet amet ea gubergren mazim. Dolor sanctus vel eum invidunt vero tation amet ipsum duo. Sanctus zzril erat dolore consetetur ut eleifend.

Heading

Nihil erat accumsan. At exerci diam et nulla ut tempor et stet rebum eirmod nonummy autem accusam rebum ea. Eos ipsum et sed ea dolor quis clita vero consequat ipsum. Nam magna consetetur eu amet nam at ut. Et ut magna rebum sadipscing clita diam sadipscing enim. Consequat elitr consequat dolore sea ipsum clita consetetur facilisis delenit eu iriure vel. Stet voluptua vel. Amet tempor consequat tempor dolore et lorem erat invidunt sea. Iriure est duo in justo erat. No et invidunt sit labore sit ipsum.

Doming consequat sadipscing veniam consectetuer eirmod tation lorem sea magna amet sed accumsan ut erat sit labore. Voluptua nulla kasd zzril consequat laoreet adipiscing gubergren sanctus diam lorem. Eirmod eirmod nostrud praesent tempor quis magna duis et aliquip facilisis et ex eirmod magna illum ut in sed. Lorem accumsan eros minim amet sit. Invidunt aliquyam dolor enim et et.