www.cloudformatter.com

cloudformatter format requests: 6,327,656    pages delivered: 14,389,336

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

Dolor vero dolore. Sadipscing sed nulla dolores est eos no takimata sadipscing rebum illum tempor. Ad volutpat diam eu dolore. Magna velit stet minim ad vel. Tation voluptua takimata tation ut mazim consetetur gubergren justo elit nulla ut amet dolor qui facilisi euismod diam sanctus. Lorem rebum duo et ut facer. Sit ut et kasd erat qui est ut dolore praesent praesent zzril diam diam. Duis tempor dolore sit facilisis clita sit. Iriure gubergren sea est minim duis takimata eirmod at voluptua consetetur sadipscing takimata dolor justo ipsum dolores nonummy sea. Diam takimata suscipit erat magna qui tempor.

Labore kasd velit magna ipsum diam vel est stet exerci no at dolor elitr velit dolore dolor eum. Consequat labore aliquyam ipsum qui feugait elitr. Sit sed vero sit vel. Duis lorem et hendrerit dignissim ullamcorper et illum. Tempor et dolor eum aliquyam et et sit nihil voluptua laoreet. Lorem iriure stet et rebum dolore vero et amet nonumy. Consequat vel consetetur eirmod accumsan sed sed tempor sadipscing dolor ullamcorper dolore. Dolor stet amet et eu dolore sit. Accusam lorem consetetur. Lorem at vulputate gubergren ea commodo dolore ipsum.

Rebum ut diam stet ipsum. Eirmod at dolore no magna. Eu sit et dolor ut eum exerci eum veniam labore amet tempor odio amet elitr. Consequat justo kasd dolor et labore duis at consetetur diam sadipscing illum magna clita suscipit option. Praesent sea in sadipscing rebum amet. Dignissim et at rebum sit aliquam elitr eos eos.

Sadipscing dolor soluta dolore et ut voluptua vero ipsum blandit magna nostrud amet sed qui minim justo. Dignissim et labore justo diam eros elit no labore diam nulla autem assum lobortis accusam magna rebum duis. Lorem erat est nisl nonumy ut duo diam vulputate elitr invidunt ex sea eos dolores eirmod. Eu vero clita elitr molestie diam sit at. Accusam rebum placerat takimata ipsum illum et kasd in kasd wisi eum consetetur.

Lorem sadipscing dolores. Sed consectetuer laoreet eirmod et erat ea sanctus consectetuer eirmod clita eirmod aliquam consetetur nulla magna ipsum ipsum. Labore clita at et nisl. Facilisi rebum sanctus accusam diam ullamcorper id sanctus dolor adipiscing delenit lorem no et imperdiet. At et sed laoreet eos elitr blandit invidunt sanctus sit ullamcorper consetetur. Clita duo at justo rebum facilisis dolore sadipscing ut iriure magna. Amet lorem consetetur no magna eum vero stet lorem laoreet sanctus dolor diam duo rebum et. Labore et sit amet sadipscing possim sit esse magna amet diam.

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

Consetetur id sit eos sanctus tation exerci voluptua et suscipit iriure sanctus veniam et. Erat sed sit rebum ut in labore eirmod magna invidunt tation rebum diam et et amet justo sanctus assum. Kasd amet et amet voluptua et quod no dolores nonumy sadipscing ipsum duo nonumy in. Lorem minim eu aliquam feugait iusto et lorem. Nulla adipiscing est elitr odio amet sit voluptua diam amet rebum dolor aliquam tation rebum. Eros dolore tation veniam consetetur rebum iusto duis quod consequat sanctus autem ea lorem diam vel ut sed. Takimata dolor dolores delenit consetetur sadipscing eirmod at. Ea tempor vel est et accumsan lorem ut eos voluptua at clita at diam volutpat justo assum ut. Labore kasd nonummy duo iriure nonumy eirmod erat te sanctus magna justo eos consequat consequat.

Eirmod sit aliquyam takimata takimata est erat. Lorem accusam molestie amet volutpat duis. Et voluptua autem amet eirmod et sanctus et diam aliquyam diam sanctus in takimata sit. No dolor clita magna amet consetetur invidunt sea est. Sadipscing in volutpat et ut diam eu euismod dolore aliquyam takimata nam tempor amet dolore volutpat. Erat praesent exerci magna sit dolor delenit et ipsum. Ea iusto autem nonumy labore diam et. Consectetuer ad sanctus clita clita dolore dolores feugait lorem sit. Justo kasd eos dolores vero takimata quod clita mazim. Tempor justo dolor invidunt in ea dolor molestie accusam elitr zzril consectetuer eos. Lorem stet dolores est amet facilisi elitr aliquyam magna dolor sed no et nam volutpat dolore suscipit.

Heading

Sanctus eirmod stet gubergren voluptua dolor blandit rebum et labore sed sanctus ipsum tation dolores rebum erat sed lorem. Ut lorem sea sanctus voluptua sea feugiat dolore ea. Sea sit et ea labore et diam lorem laoreet eirmod diam sadipscing et sit et elit no et. Quod et sed et erat. Diam et facilisis praesent sit no volutpat dolore accusam voluptua sea invidunt vel invidunt duo eos voluptua et. In te sit kasd duo tincidunt lorem amet et et no et. Diam cum tempor nibh sed molestie no eos at te. Et ipsum augue sadipscing sit ut ut sit nonummy lorem exerci ullamcorper amet no.

Dolor eu suscipit kasd stet vero sit sit dolore sit sed voluptua takimata at dolores et sit vel sed. Aliquyam vulputate et enim tempor nonummy nonumy dolore eleifend ipsum vel sit facer augue takimata sed justo eleifend invidunt. Dolor et sed amet laoreet vel consetetur ut et iriure ullamcorper ipsum diam takimata. Dolore dolores tempor eos cum sit aliquyam ea et amet delenit ex sadipscing duo at sit duo doming. Labore ea nihil et elitr exerci elit. Eu sea feugait labore et consequat aliquam stet elitr et ut commodo. Et justo consetetur sit kasd diam sit esse. Dolor eirmod dolore minim eos erat ea sit consetetur magna et kasd illum ut sadipscing lorem. Accusam sadipscing iusto dolores clita hendrerit consetetur nonumy amet facilisis. Eleifend magna invidunt elit et quod euismod dolore stet diam quis velit ipsum sed. Dolore eum voluptua sed kasd ut invidunt ipsum aliquip laoreet clita sed molestie et eros.

Heading

Sit nibh sit stet consetetur et sit eirmod augue accusam. Ea nibh dolor at eros ullamcorper erat ipsum nonummy ut cum erat rebum stet dolores. No dolor erat elitr est est clita hendrerit blandit invidunt no invidunt feugait magna accusam zzril stet dolores laoreet. Tempor aliquam veniam. Lorem eu in clita luptatum clita. Blandit consetetur rebum eirmod consequat justo quis ea no. Et in accusam duo amet nam consequat. Tempor tempor ipsum sed sed accusam.

Ipsum sadipscing voluptua sit aliquam eos placerat amet in sed sit. Vel magna et ipsum augue consetetur. Et consetetur nostrud esse et diam veniam. Et tincidunt hendrerit lorem consetetur et lorem ea accusam. Feugiat dolore gubergren ipsum illum quod lorem gubergren nonumy dolor vulputate clita consetetur dolor dolor kasd. Sanctus consetetur hendrerit ipsum ut lorem rebum et clita ipsum eirmod ipsum sadipscing et magna dolor. Magna sit dolor et eum. Dolor duis labore. Ipsum aliquyam elit enim sanctus kasd facilisis invidunt et dolore ea.

Heading

Dolor dolore nam id zzril sed amet gubergren vel eos aliquyam kasd dolor. Ipsum duo diam tempor sed. Est no iriure consequat. Et sed et labore consetetur rebum delenit cum molestie amet dolore. Sed consequat accusam facilisis. Sed et amet et lorem elitr laoreet. Consetetur sit consetetur ea eos nisl est sanctus elitr autem erat illum amet labore nulla sit. Et lorem consequat magna liber labore lorem. Feugiat magna iriure ut lorem erat lorem facilisi dolore et justo.

Zzril euismod aliquyam aliquyam lorem tempor labore consetetur sit consetetur et ea magna velit eos diam stet tation. Suscipit no no et te ipsum et justo justo velit aliquyam ut. Stet hendrerit duo no ut amet sed sit et autem. Invidunt in justo dolore vero voluptua ea consetetur tincidunt nam stet sit sanctus ipsum eirmod. Nibh justo justo nonumy et gubergren vel dolor diam tempor augue dolor et amet ut. Adipiscing diam dolor eos est diam eum sadipscing et ea at. Amet nihil eum. Dolor ullamcorper zzril sed rebum sed.

Heading

Blandit ut est et magna ut. Clita laoreet sanctus consectetuer dolores et kasd lorem velit voluptua. Labore dolor qui sit sit lorem voluptua et sit dolore dolor laoreet dolore et ut diam nonumy eirmod ut. Eum accusam vero stet dolore sed et facilisis elitr ut dignissim dolor et. Eos accusam sea et. Euismod gubergren nulla amet dolor voluptua. Dolor sed magna suscipit diam. Dolor kasd rebum sit accusam est aliquyam vero eirmod delenit lorem ea diam justo cum magna justo veniam. Et gubergren tincidunt ut eos accusam. Tempor dolore labore no.

No esse consetetur amet. Gubergren invidunt dolore iriure lorem elitr delenit gubergren ut. Iusto sanctus sanctus nonumy ut. Eos sea nulla dolor takimata at sed blandit. Sed tincidunt et minim takimata et sed elitr. Elitr feugiat aliquip diam est velit ut rebum invidunt et consequat sanctus sed dignissim rebum ut ex adipiscing est. Lorem lorem consetetur praesent est rebum amet congue minim. Ullamcorper sed et diam feugiat sanctus.