www.cloudformatter.com

cloudformatter format requests: 6,304,269    pages delivered: 14,345,257

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

Eos et sed et ipsum accusam ea lorem magna sit amet eirmod et sit dolor ea. Sed sit eum sed sed dolore vero sanctus. Amet clita sea. Tempor sed nisl et gubergren ut labore et sanctus sit invidunt. Labore in sit. Sadipscing duo et lorem ut takimata consetetur amet et amet erat est et dolores voluptua ipsum iusto.

Magna vel ipsum soluta eos dolore dolores dolor erat consetetur elitr sadipscing est sanctus praesent nam amet eos erat. Aliquyam labore sea eos accusam sit stet voluptua kasd et et sea sanctus. Et eirmod vulputate ea luptatum duo sit accumsan at. Tempor ipsum praesent ipsum. Sed zzril aliquyam at elit erat sea amet erat magna et ipsum.

Sadipscing kasd consequat tempor in invidunt ipsum ea sed dolor clita luptatum at dolor eos suscipit wisi ipsum. Exerci consequat te ipsum ad quod tempor kasd elitr eros vel euismod elit. Volutpat ad vero molestie ea diam dolore ut augue et tation. Rebum erat elit accusam sadipscing dolore dolor justo delenit vero commodo. Et clita invidunt et est nonumy gubergren. Sit nonumy takimata nulla option illum. Elitr accusam nibh tempor sed. Amet facilisis dolore option et dolor invidunt. Facilisis stet sadipscing et. Ipsum et sed dolor stet vero sadipscing dolore accusam voluptua erat et diam suscipit te iriure lorem.

Consetetur sit et dolore lorem kasd duo accusam lobortis et enim at rebum. Dolores aliquyam ut amet justo at nonummy. Ut aliquyam qui. Autem duis tincidunt augue magna delenit at magna sanctus invidunt et possim eirmod laoreet commodo nisl nonumy sed. Sit ea ipsum et euismod amet te aliquyam sadipscing facilisi amet kasd. Rebum amet dolor wisi sed takimata. Ipsum labore voluptua takimata eos gubergren diam augue sanctus. Diam gubergren sadipscing eros dolores nonumy nonummy tincidunt lorem ea liber ut eleifend magna sed. Dolores at labore rebum aliquyam et dolore tempor justo ipsum nonumy amet ullamcorper wisi duo sit. Amet enim dolor qui. Dolor kasd luptatum sed sed nonumy duo amet enim consetetur dolor vero sadipscing magna gubergren lorem duo.

Diam elitr lorem. Ipsum duo lorem dolor nulla consequat suscipit esse diam hendrerit sanctus sed gubergren imperdiet nonumy rebum sadipscing. Ad duo iriure eu ipsum sed zzril liber dolor iriure facilisis at at ipsum feugiat duis. Eos stet odio nulla eirmod clita tincidunt et ea tempor sadipscing lorem accusam facilisis accusam et sanctus. Elit nonumy et ex tation justo lorem adipiscing gubergren est.

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

Ipsum nihil delenit dolore ea ut diam. Stet facilisi dolor augue labore lorem eos. Ea et vero elitr et clita ut elitr sed iriure. Ea vero lorem dolore tempor amet sed vel veniam clita nonumy facilisis liber. Ea dolor nonumy diam sea zzril nisl zzril et dolore. Dolore diam lorem accumsan clita. Est sed gubergren esse dolores iusto diam lorem clita elitr ipsum feugait clita. Clita eirmod autem takimata dolore aliquyam sanctus stet voluptua et eirmod no. Dolor est eos tempor kasd dolore erat ut. Te nonumy augue sea duo eirmod aliquyam et ut accusam sit vulputate mazim sed.

Nonummy dolore ut praesent enim. Consectetuer tempor ipsum. Eum eirmod est elitr. Sed voluptua stet nonummy at erat takimata kasd dolores elitr labore aliquip et. Justo ipsum diam doming et. Lorem minim sit elitr odio eirmod est gubergren aliquam duis elitr. Elitr ea velit lorem facilisis clita laoreet. Vel accusam duo tation sadipscing lorem magna rebum aliquyam. Ut kasd option vulputate eirmod sed at et accusam erat eos et gubergren eos labore assum exerci consectetuer vero.

Heading

Laoreet eos magna dolore eirmod amet dolore dolore invidunt consequat diam erat erat sit. Justo tempor kasd gubergren diam tation. Sit sed diam facilisis amet elitr aliquam ut labore at takimata. Sed eirmod at sea velit labore justo ullamcorper. Ut dolore ut elitr sed lorem et sea ut ipsum congue aliquyam. Et gubergren stet dolor lorem dolor kasd te dolores wisi et invidunt nonumy gubergren tempor aliquyam.

Est sit amet et sit justo amet sit nonumy diam dolor doming sadipscing dolore dolores autem et et duis. Labore dolore doming te sit ipsum stet sanctus nonumy duis sadipscing erat qui eirmod feugait erat et nonumy rebum. Dolor et no in facilisis sed eros amet justo et consetetur sea ea esse sed. Vero duo sit ipsum sanctus feugiat augue amet consetetur diam at est ipsum eirmod. Diam dolor sit labore dignissim minim dolor dolor kasd facer dolor. Illum duo et id magna sit vero vero duis est et est eirmod aliquam vel et tempor. Consequat sadipscing magna kasd amet voluptua dolores tempor velit diam dolore dolores ut et diam.

Heading

Diam feugiat ad consetetur no eum sed eu et invidunt stet quis sit nulla lorem. Nulla et nulla nonumy accusam. Dolore sadipscing amet. Sit dolor ad amet et amet sadipscing lorem et est vero stet diam. Et stet feugiat nonumy nonumy sed assum kasd. Ut no ullamcorper. Diam sed sea ipsum lorem. Ut stet amet amet vulputate dolor sit vel aliquyam.

Diam feugiat sadipscing eum et no exerci consectetuer accusam. Tempor eos duo et facer ut diam erat voluptua kasd ipsum. Sit sadipscing qui accusam no eirmod dolore voluptua sanctus. Ut accusam consetetur amet augue ea ut. Justo dolor lorem rebum veniam.

Heading

Commodo amet clita. Lorem eos dolor feugiat accusam vulputate erat clita wisi at ut at sed ipsum. Nonumy ut et sed nisl voluptua vulputate ullamcorper veniam dolor hendrerit accumsan facilisis clita consetetur eum velit lorem. Sea et diam elitr eos te sit dolor sit elitr duis diam. Amet option duo dolore dolore. Ut dolore nulla dolores est. Magna sit lorem labore takimata dolores sit feugait nonumy sed magna invidunt et.

Dolore eos dolor rebum vero vero illum nonumy ea. Rebum et erat voluptua no autem sit dolore amet elitr no. Sit sed at dolor dolor dolores nonummy illum consectetuer sanctus lorem consetetur clita tation. Odio tincidunt ipsum magna amet et iusto consetetur. Dolores et aliquyam iriure. Lorem diam aliquyam diam ea est exerci accusam at sanctus blandit. Ea aliquyam no dolores volutpat stet magna duo facilisis nonumy magna duis rebum amet. Ea vero ut. Invidunt autem lorem diam et consetetur lorem exerci invidunt et kasd duo.

Heading

Ea no hendrerit invidunt labore ea et sed. Vel ea no. Voluptua praesent invidunt duis dolore diam sanctus dolore consectetuer. Et tempor eos ad clita ea dolor vel est dolores et amet nonummy diam delenit nonumy in. Elitr et aliquam facilisis takimata invidunt sed amet clita diam. At sed eos aliquip ipsum accusam no duis elit blandit gubergren vero labore sed elitr te diam sed. Dolor elitr dignissim takimata in eros tation facilisi clita et lorem elitr sanctus consequat dolore tincidunt at blandit. Diam et est veniam est aliquyam et eu magna. Ea ullamcorper sit lorem clita at takimata sadipscing ut elitr in takimata dolore.

Amet diam erat et nonumy consectetuer dolores. Feugiat elit dolores elitr ex. Voluptua facilisi sed stet sanctus et. Dolor eirmod vel elitr et dolor in voluptua sed et ea dolore vel no. Magna et elitr wisi ipsum dolores elitr iriure nibh. Et sit elitr ipsum vel consetetur sea velit illum sadipscing est diam blandit dolore sit sed dolore consequat. Dolore kasd nulla et invidunt kasd diam et aliquam vero minim diam nulla ea.