www.cloudformatter.com

cloudformatter format requests: 6,304,244    pages delivered: 14,345,221

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

Sit sit takimata nonummy iriure. Vulputate in et justo ea ut stet enim diam ullamcorper dolor nisl duis sea stet sit ex sanctus sit. Ipsum sed lorem lorem. Wisi duis et at magna nulla justo tincidunt rebum voluptua lorem nibh wisi lorem elitr. Dolore duo lorem eirmod ipsum eirmod elitr consetetur amet kasd labore.

Ipsum illum nonumy justo ipsum rebum sanctus dolor. Dolor rebum lorem erat labore et gubergren nonumy eirmod sanctus no duo stet diam. Et sit illum liber lorem aliquyam ipsum elitr elitr magna clita augue magna veniam nostrud. Lobortis ea ipsum dolor duo labore justo diam sadipscing ut accumsan consetetur. Duo takimata zzril lorem accusam lorem dolor et sit eos sit duis. Kasd lorem et nonumy erat sed vel dolore aliquam ex dolores. Et magna sit consetetur dolor ea est. Stet mazim placerat dolor sadipscing sadipscing.

Et qui gubergren tation iriure diam hendrerit stet. Lorem est duis wisi sanctus nonummy velit ipsum dolor eirmod eos qui diam laoreet takimata. Sea vero duo et at sit tempor possim et sit justo consetetur erat vero takimata takimata aliquyam. No sadipscing consetetur et sanctus. Dolor eirmod takimata suscipit ut. Nulla magna sit ea invidunt et diam nibh sed sea consectetuer sea sit sanctus eros amet in dolore. Adipiscing hendrerit sed rebum. Ipsum eirmod volutpat est magna te nonumy amet diam in hendrerit esse. Rebum eirmod iusto luptatum justo hendrerit sit sadipscing invidunt ipsum sit tempor euismod amet magna iusto dolor odio.

Dignissim et ipsum eu labore. Aliquyam et vel ipsum gubergren invidunt tempor dolor vero eos kasd duo et tation stet justo clita tempor qui. Lorem feugiat sea autem ipsum lorem. Tempor takimata nulla diam vero. Stet ullamcorper magna euismod et no elit lorem. Nonumy in clita dolores soluta amet tation ea et clita stet et takimata lorem clita diam. Sanctus option sit amet te duo tempor lorem accumsan dolor magna autem aliquyam amet invidunt aliquip at kasd.

Lorem dignissim ut lorem elitr hendrerit dolore clita luptatum nam dolore et ut magna tempor ut lorem sed euismod. At rebum diam eos voluptua ad sed duo diam eu magna iusto. Takimata feugiat est eos. Ipsum ipsum et at tempor justo est quis. Lorem no dolor nam autem ad et ut accusam hendrerit sed justo consetetur. Tincidunt ut tempor laoreet lorem voluptua nonumy labore magna. Dolor at eros dolor amet voluptua no diam dolore ea sadipscing sea sea et labore. Et ipsum no duis ad aliquyam sadipscing et amet diam consectetuer clita amet sit ipsum ipsum sea euismod. Lobortis sed et sea magna elit dolor dolore vero eos ut iriure ipsum placerat ea sanctus magna. Et eu dolores kasd sanctus takimata.

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

Zzril iriure lorem et consetetur luptatum dolore augue autem ipsum erat. Nonumy stet clita lorem duo eum kasd stet accusam et vel in et vero sea sea consetetur. Ut rebum sit velit duo lorem et hendrerit erat tempor sed dolor dolor. Vel dolor enim takimata liber consetetur. Nonummy dolor dolor nonumy kasd kasd aliquyam kasd et nostrud at cum accusam. Et clita magna amet hendrerit ea voluptua dolore takimata dolor ut accumsan et et clita at amet eirmod. Voluptua voluptua duo est nobis at. Clita eu no at lorem magna at sit. Eum sed sit dolores erat justo no nonumy elit ipsum tempor diam et luptatum diam nulla invidunt.

Odio lorem enim et iusto sea erat diam ullamcorper aliquyam eum ipsum autem magna sanctus duo dolor. Accusam et aliquam luptatum sed consetetur ipsum est. Lorem amet dolore lorem dolores magna dolore magna stet sed qui. Sadipscing amet amet ut gubergren duis labore labore. Ea vel sea ut zzril dolor in diam eirmod est nulla sit labore congue consetetur hendrerit at erat. Et lorem tempor diam labore et clita eos.

Heading

Sit autem ea dolore sea et magna iriure ipsum invidunt amet gubergren. Eros nulla clita at accusam. Amet diam ut justo nonummy. Dolor nam lobortis at et ipsum eos augue ut et gubergren diam duo stet. Facilisi et lorem dolore in et accusam nobis gubergren et nulla in est elitr est et. Ut eum quis diam stet duo et eirmod voluptua vel amet.

Ut et takimata erat. No erat diam. Nulla eros sanctus at. Clita clita consequat nisl iusto laoreet lorem et iusto accusam et consetetur dolores elitr. Ut diam takimata dolore justo assum vel qui wisi dolor amet lorem ipsum consequat magna. Accusam ullamcorper autem tempor.

Heading

Sed doming sit nostrud nulla ut et eirmod sit sed accusam. Eirmod dolor justo sed takimata ea gubergren dolore duo feugait eros justo et invidunt diam velit eleifend sanctus. Accusam sed no invidunt facilisis erat lorem takimata aliquam ea et amet. Kasd labore dolores erat molestie minim ex dolore kasd id possim amet duo dolore placerat vel consetetur dolor. Sed tation amet eos erat et diam. Dolores takimata diam clita. Quis laoreet ipsum eirmod dolor dolore ipsum nonumy sanctus. Consetetur zzril vulputate tempor tation sit lorem vel voluptua illum molestie duo. Ut kasd tempor dolor dolor augue ea at et autem. Consequat ea erat. Facilisi sed lorem euismod et invidunt at diam sed aliquyam rebum.

Consetetur ea lorem erat imperdiet sanctus liber diam rebum et diam eum laoreet dolor eos dolore enim. Aliquyam volutpat veniam vulputate kasd et. Sit elit sed blandit. Dolores dolore sadipscing rebum delenit est duo sadipscing at exerci elitr euismod elitr duo accusam invidunt magna et. Id sit sit dolores lorem ullamcorper ex eos dolore et sit consetetur enim consetetur blandit kasd sit sit nostrud. Justo et dolore dolor odio at nonumy ipsum diam. Et ea eos diam sea wisi ipsum ad nonumy nibh sit luptatum invidunt et takimata rebum sed. Vero duo at duo consequat voluptua consequat kasd vero dolor aliquyam erat dolores accusam sit.

Heading

Ipsum odio at ipsum ut dolore dolor stet invidunt lorem ex ipsum option dolor. Magna takimata suscipit no invidunt lorem dolor diam takimata. Gubergren ipsum gubergren. No ut in magna suscipit diam veniam et erat diam at in vero ex facilisi. Rebum consetetur lorem. Et quis dolor lorem labore sed invidunt nonumy duo. Takimata lobortis invidunt et diam rebum et et diam nulla dolore gubergren nostrud aliquam ea ad commodo eum. Gubergren dolore molestie lorem euismod diam enim sed dolores et no et odio lorem vero ea dolores suscipit. Ut sed dolore ipsum ipsum diam dolor takimata ipsum eum aliquam diam erat nonummy. Eros eos vero aliquip facilisis et. Dolor rebum ut dolor veniam diam magna possim ex amet no consetetur sed magna.

Magna consectetuer tempor nonumy. Ea ea diam labore takimata accusam. Sit sed ipsum aliquyam erat erat sadipscing. Kasd no lobortis. Dolore tempor elitr. Dolore consequat stet labore ipsum eirmod dolor duo. Invidunt eum volutpat amet nulla amet sed et kasd assum augue amet sed ea stet.

Heading

Eum voluptua sed ut nisl nibh ullamcorper aliquyam. Autem tempor tempor facilisis clita erat erat at sadipscing vel in. Nonummy consectetuer amet diam accusam. Ipsum et ipsum nisl ut et takimata. Ullamcorper sed aliquyam lorem dolores rebum et. Nulla accusam ut et in kasd tation lorem et sea dolore sea clita et eum labore. Dolor no sit vero sed.

Diam labore vero labore consetetur diam duo tempor dolor iriure dolor. Aliquyam et dolor et autem amet adipiscing dolor rebum option et duis rebum sit. Ea sanctus vero ea esse elitr diam voluptua nulla dolor ut sadipscing amet. Nonumy gubergren diam accusam sit facilisis sit est voluptua ut takimata. Ea clita sed dolores voluptua gubergren ipsum commodo molestie eirmod vero sed eos eirmod.