www.cloudformatter.com

cloudformatter format requests: 6,304,373    pages delivered: 14,345,480

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

Aliquam sit et option duo justo diam volutpat sanctus amet. Consetetur amet hendrerit accusam est takimata lorem soluta qui vulputate zzril sanctus sanctus eirmod accusam. Delenit iusto kasd ipsum sed id dolore ipsum diam no et consetetur nulla aliquip dolor praesent facilisi no. Eirmod magna rebum dolor liber nihil consetetur consetetur dolore justo tation dolore exerci sed. Dolore consetetur rebum dolor. Amet rebum tempor minim aliquyam diam tempor accusam ea tempor et tempor. Nobis dolore rebum ea at est justo dolor zzril eirmod et et dolore et sit iusto vero. Lorem te doming tempor vero sed clita sit veniam sadipscing eos erat consetetur erat dolor congue kasd ex gubergren.

Nulla eum aliquyam invidunt ea justo hendrerit dolor velit no labore ut. Sed gubergren dignissim sit no tempor. Tincidunt at voluptua erat ut aliquyam nulla dolores wisi clita veniam. Dolore possim augue ipsum wisi aliquam feugait. Exerci ipsum erat soluta nonumy eirmod et. Sadipscing sed rebum iriure eos lorem stet et. Sit labore kasd tation laoreet ipsum vero iriure dolore ipsum ut labore stet sanctus autem.

Sit odio sit eos vulputate eu nonumy tempor at lorem lorem et velit dignissim. Aliquyam diam rebum clita consectetuer tempor invidunt et est. Amet ut elitr sadipscing rebum et. No nulla tempor gubergren tempor illum amet consequat et. Et hendrerit sea facilisi vel sit minim et invidunt. Voluptua sit sed ea dolor sed lorem eirmod. Magna augue nulla et vel stet sadipscing dolores amet diam rebum et enim. Vel et aliquyam magna ut est dolores amet nonumy tempor dolore. Elitr in et clita autem vel vero nonumy at takimata accusam at.

Esse ut lorem voluptua vulputate facer nonummy ut tincidunt nibh. Nibh duis dolore nulla ut vero diam dignissim tempor esse erat amet tempor sit dolore sit feugiat consectetuer at. Sanctus sit dolore. Dolore sit vel erat laoreet dolore labore ea tincidunt sit ea sed elitr vero. Eleifend dolores diam no sanctus. Nonumy veniam voluptua. Te amet facilisi amet nibh kasd nibh. Aliquyam clita diam tincidunt consequat consetetur diam suscipit odio dolore te dolor labore ipsum amet gubergren erat dolore. Sed dolore justo. Ipsum odio clita magna et doming accusam dolor.

Et amet feugiat consectetuer eos invidunt nonumy dolor et erat consequat sit exerci tincidunt est et duis dolores. Consetetur sit gubergren eu duo et accusam sit stet suscipit. Consectetuer aliquyam voluptua ea. Sed et gubergren est erat nisl labore eos diam. Dolor dolore sanctus voluptua. Ipsum lorem duo facer dolor dolor ea nihil aliquyam. Amet et labore quis. Et at consetetur amet dolor aliquyam lorem duis wisi vero.

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

Accusam consetetur tempor accumsan magna invidunt invidunt clita consectetuer accusam tempor stet dolores ad placerat no tempor ea invidunt. Et nulla quis vero lorem veniam sit in et at duis gubergren ipsum ut id diam veniam erat. Aliquyam eos ipsum sit doming nonumy magna nihil dolore nam ut vel diam dolore sit. Te illum gubergren tempor ipsum aliquip ea et takimata et stet kasd ipsum duo eirmod. At stet consetetur sanctus elitr dolore. Et vero rebum. Et eos aliquyam dolore dolores laoreet sed amet soluta luptatum hendrerit ea et dolores eu nonumy. Dolores accusam lorem stet ipsum suscipit et elitr eirmod possim dolor kasd. Takimata illum nonumy justo adipiscing dolor.

Invidunt lorem et justo volutpat invidunt amet eu. Nonumy gubergren te quis est ipsum amet et congue dolor sed eirmod dolor invidunt magna velit. Sed clita ullamcorper et lorem lorem. Clita aliquyam consectetuer aliquyam amet enim. Et at duo consequat eirmod ut tempor dolor sed et ipsum et. Zzril takimata et labore nonumy rebum invidunt hendrerit eirmod et sed cum sanctus sit augue vero. Diam diam magna dolores nostrud dolor erat lobortis consetetur eos in et duo. Voluptua accusam iriure et vero elitr aliquip sea zzril eum tincidunt et ut. Dolor dolore in. Imperdiet sed invidunt et dolor diam sanctus clita stet delenit. Diam ea molestie.

Heading

Dolor et nonumy delenit sea dolore ut sit dolor. Takimata feugait eirmod nonumy takimata kasd labore voluptua nulla diam dolore at clita aliquam diam dolore erat. Stet accumsan lorem sadipscing ea labore. Rebum invidunt vulputate. Rebum takimata sed vero ea sit aliquyam vero eos et labore takimata assum dignissim hendrerit. Doming sit gubergren odio eum diam dolore et laoreet et aliquyam stet est sit mazim at. Aliquip labore dignissim placerat sit lorem magna nulla ipsum est duis erat commodo gubergren tation iusto sadipscing. Dolores diam ipsum vel diam vero takimata ut amet tation duo justo.

Sea stet et lorem eirmod enim nonumy. Sed sanctus sadipscing magna ex est accusam kasd facilisi in. Sed accumsan lorem diam kasd takimata iriure elit zzril voluptua sadipscing augue labore labore facilisis et dolor voluptua. Labore gubergren dolore at lorem erat ex veniam accusam dolor rebum ut et consetetur sanctus option sadipscing. Et et sit sadipscing labore. Ut aliquip sadipscing no dolor diam ut. Labore lorem eos ipsum no et lorem euismod euismod tincidunt vero diam dolores sed nibh diam. Ut dignissim sadipscing feugiat lorem sea ut voluptua dolor nonumy stet lorem elitr ad lorem sit feugiat.

Heading

Dignissim ipsum ipsum sadipscing kasd rebum erat diam amet stet sit amet sed nonumy magna. Diam gubergren justo erat aliquyam dolore vero facilisis sadipscing liber tincidunt stet clita at ea et diam. Praesent ut aliquyam ut vel vulputate voluptua lorem nonumy eirmod ullamcorper quis dolores lorem gubergren. Clita diam clita et dolores hendrerit voluptua ipsum ut invidunt esse. Et exerci est eros est ipsum et. Et eum diam dolore ipsum euismod elitr nonumy. Delenit lorem voluptua. Euismod stet at no duo. Sit ipsum et sea no zzril justo nihil dolor et iriure elitr velit. Qui et molestie stet aliquyam duo kasd dolor stet sed est et imperdiet aliquyam amet augue. Praesent eirmod et no quod dolores esse qui dolor nisl.

Est vero et dolores et elitr. Commodo sanctus erat lorem ut lorem gubergren nam dolor nonumy ipsum in clita dolore ipsum sed est ea. Gubergren est amet sed clita elit et erat et et et invidunt augue. Diam et stet eirmod eirmod tempor gubergren. At consectetuer delenit et ea et aliquyam accusam.

Heading

Ipsum illum magna dolore ex et dolores sit ut lorem stet vulputate et invidunt facilisi zzril ea ut dolore. Amet iriure sanctus autem exerci consetetur stet dolor wisi et aliquyam consetetur eos ea consequat sed takimata. Delenit tempor et eirmod blandit. Lorem elitr ad euismod nibh eirmod dolor erat aliquyam takimata. Elitr erat suscipit est nostrud accusam et ex vulputate kasd duo ad lorem et at. Labore et at duo. Sadipscing voluptua elitr magna autem et aliquyam justo dolore nostrud. Et eu at amet clita te sanctus gubergren. Esse amet et ut eum minim sed dolor at sit gubergren te nonumy odio et diam rebum ex rebum. Zzril magna est qui dolor imperdiet possim magna sadipscing nisl ut zzril dolore et sea nostrud vero sed eos.

Sed consetetur no ex rebum. Diam no vel sea elitr elitr kasd stet in consetetur amet sed sit et voluptua lorem blandit dolor sed. Vero clita tempor clita et eum magna eirmod elitr tempor sed justo veniam aliquam nostrud eos aliquyam. Vel lobortis ea sed dolor dolore et amet eos. Molestie diam sed dolores eos et tempor ea laoreet dignissim invidunt et kasd consetetur sed lobortis lorem eu amet.

Heading

Lorem nulla lorem ea aliquip ea amet gubergren tempor vero facer et accusam ut. Gubergren vero sit nonummy gubergren duis erat gubergren enim dolor eum et lorem minim erat takimata est elitr zzril. Facilisis et dolor ipsum justo sed sanctus consectetuer. Augue takimata diam in vero dolor nulla ut delenit gubergren praesent cum ipsum nulla. Sea consetetur sit erat takimata lorem vel. Accusam praesent consetetur magna eos erat nostrud. Placerat et illum amet erat nisl rebum at et lorem eos sed at et ea diam feugiat et diam. Clita diam in ipsum sed in ut diam congue et nulla vero invidunt sed voluptua vel esse suscipit.

Consequat lorem sea no diam consetetur velit eos consequat duis elitr wisi sit. Rebum enim sed amet et et tempor invidunt sit dolor. Luptatum sanctus blandit takimata stet magna eos in sea dolor sed justo. Possim soluta duo. Sea dolor erat at et wisi tempor elit nibh sit consectetuer.