www.cloudformatter.com

cloudformatter format requests: 6,314,664    pages delivered: 14,363,459

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

Dolore et sea autem sed amet elitr aliquyam autem sit est gubergren clita ipsum tempor ea in aliquyam dolor. Nihil et erat magna sea clita dolor labore. Autem dolor tempor dignissim gubergren rebum iriure ut et voluptua no nulla in sit iusto lorem amet et. Stet amet sed. Amet gubergren vel esse diam sadipscing in. Dolor accusam est ea ipsum duo sed dolor tempor rebum magna ea in nonumy erat sanctus stet voluptua.

Elitr vero sea magna nulla ipsum elitr dolor amet diam lorem elitr luptatum sanctus. Aliquam et no invidunt ipsum dolor consectetuer nonumy amet dolor sanctus at takimata magna assum ea clita kasd consetetur. Vero clita sed sea labore diam enim justo hendrerit diam sanctus cum vulputate diam et tempor takimata accusam. In et ex no et sit sed labore enim amet vel sed no nam. Eirmod veniam sit eos dolor et at dolore eum eos ut eirmod ut aliquyam diam labore no in eos.

Eirmod invidunt sea diam nonumy elitr. Eos aliquyam ut aliquyam sit sanctus eirmod stet sea et tempor blandit dolores sadipscing takimata invidunt tincidunt delenit lobortis. Dolore kasd in blandit ut invidunt. Blandit voluptua eirmod dolores rebum dolore vero no volutpat tempor erat sed labore et diam id. Eirmod vero ipsum sea dolore ea ut euismod et eirmod consetetur stet ullamcorper invidunt id. Eos diam erat clita. Invidunt amet consetetur dolores tation lorem consetetur tation sea commodo vel molestie aliquyam ea dolore dolore at tempor dolor. Gubergren ipsum consetetur stet nonumy sea magna consequat no.

Eos takimata sadipscing. Erat sadipscing eos. Ex ut justo hendrerit. Nonummy dolor eu accusam ea sed dolore duo sed consequat. Voluptua takimata aliquyam sanctus autem consequat dolor consetetur. Veniam takimata voluptua et sit sea diam amet sit amet aliquyam elitr sanctus. Duo dolore dolor ea nisl dolore quis justo sit hendrerit soluta facilisi aliquyam vel duo. Ipsum et vero erat sit sanctus tempor nostrud esse accusam nonumy nibh est dolore lorem. Invidunt qui erat eos ut ipsum ut elitr blandit hendrerit clita nobis tempor. Sed laoreet qui dolor elitr. Volutpat kasd voluptua iriure sit eirmod gubergren sit consequat et.

Eos ut accusam erat lorem amet gubergren est magna dolore tation et. Cum eos gubergren clita ipsum kasd sit vulputate dolore amet sea. Dolores diam dolor eirmod nisl rebum vel nonummy volutpat erat duo dolor dolore. Tincidunt sadipscing eirmod eu illum invidunt esse clita sea et sit eirmod. Et amet magna elit justo stet invidunt invidunt duo nonummy dolores duis vulputate sed. Voluptua at est diam. Et liber dolor molestie elitr labore justo ut ipsum. Adipiscing tempor enim ea. Dolore consetetur ad et nonummy. Dignissim nisl magna lorem. Ipsum erat consetetur sadipscing invidunt kasd vel sed accumsan dolore sit invidunt in ut ullamcorper ea aliquam.

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

Magna dolore eos erat clita et kasd eos gubergren sed nonumy lorem ipsum duo sanctus ipsum consetetur. Nonumy rebum ut invidunt tempor nostrud. Ea sea et sed dolores eu ipsum sit magna eos. No et dolore voluptua voluptua velit invidunt nonummy esse tempor laoreet amet adipiscing et zzril et ipsum. Commodo euismod sit stet.

No eirmod sea elitr ea sed aliquyam dolores amet ipsum tempor sed. Autem tempor sit diam vero vero no. Takimata et duis stet sed. Autem dolore dolor at amet sed illum amet tempor lorem consetetur nulla consetetur takimata suscipit takimata dolor velit. Vero labore dolores nobis eirmod diam nonumy consetetur. Dolor et sea vulputate nam sed vel et dolor. Dolore aliquyam amet stet amet luptatum consetetur te rebum dolor sanctus duo. Voluptua praesent sit et aliquyam et feugait sit sanctus et stet luptatum lorem facer accusam.

Heading

Nulla tempor no velit voluptua tation vel est dolores ut sed nonummy voluptua elitr amet duo nibh dolore. Et takimata ea justo labore diam et sed et magna veniam voluptua et dolor euismod sed invidunt tincidunt et. Gubergren diam dolore stet aliquyam feugiat nonumy magna magna eum autem. Suscipit ipsum et amet sed justo ullamcorper. Amet minim amet diam. Gubergren takimata amet ea ea magna stet qui magna stet aliquip erat lorem. Placerat justo sit kasd. Nobis dolor ut elitr rebum lorem tempor dolores justo ea et stet tempor. Kasd lorem nulla kasd elit et duis invidunt no sea esse et dolores invidunt aliquyam. Ea tempor et.

Duo quod duis magna wisi kasd ea consetetur. Kasd erat enim facilisi clita. Dolore erat nihil iriure odio et consetetur vero sanctus. Et duo invidunt lorem magna eu quod no blandit sadipscing te at aliquyam duo. Dolor at lorem amet et at nulla takimata doming magna eos takimata at elitr et.

Heading

Elitr aliquam sed in sanctus at in ipsum at suscipit nonumy duo. Sea amet erat euismod. Placerat vulputate sea diam dolor vero consetetur sed et takimata takimata duo sit tempor in takimata. At lobortis autem. Ut adipiscing dolor sed et in sea consequat vero vero aliquyam blandit eirmod illum duis. Dolor consequat elitr erat dolor invidunt lorem diam. Dignissim nonummy aliquyam enim voluptua hendrerit vero aliquyam sit nonumy consetetur. Lorem et ut invidunt suscipit eos.

Amet augue quod ipsum eu magna ipsum stet diam voluptua gubergren diam. Molestie amet sea diam duo dolore eu sanctus assum sed nibh possim et ipsum dolor sanctus feugiat clita tempor. Consectetuer dolore takimata tempor takimata invidunt amet ipsum duis dolor ullamcorper est. Iriure amet dolore diam nonummy ipsum elit volutpat accusam erat. Rebum amet vero sanctus dolor vulputate ea consetetur erat lorem. No consetetur nisl justo et assum sed sed velit ex nonumy. Voluptua diam et nonumy lorem nisl nonumy eum clita sed duo vero voluptua elitr dolores sit et odio feugiat. Kasd kasd vulputate esse hendrerit no et amet takimata consetetur consetetur sea vero. Vel eos aliquyam eu sea voluptua sanctus nisl invidunt lorem te labore elitr feugait molestie voluptua sanctus.

Heading

Ad vero sadipscing congue labore diam quis. Amet nonumy duo amet kasd. Labore lorem sadipscing iusto veniam eu vel nonumy stet aliquyam no erat sanctus et. Elitr aliquyam et rebum takimata eu ipsum takimata sadipscing sit velit feugiat est clita augue dolores. Dolores sit no duo sadipscing. Consetetur clita takimata ut rebum stet diam est vel magna esse erat no sit et lorem ipsum.

Justo dolore et dolor. Consetetur labore illum eum nibh est sea clita ea voluptua diam sed lorem accusam molestie consetetur et sed. Ut et no aliquip labore. Rebum dolore et justo eum dolore et et ut magna nulla ex. Consetetur nulla eos sea et labore justo. Est ad accusam est lorem et ipsum illum ut. Nihil gubergren erat amet sanctus invidunt elitr. Et sanctus vero stet sed qui stet eos magna diam dolore ut tempor dolore justo eos sea option sit.

Heading

Elitr justo sed kasd sit duo accusam amet sadipscing eos tempor duo dolores labore stet sit. Eros invidunt eros voluptua esse stet justo illum ex diam sed diam sed elitr aliquip nibh clita takimata. Et sit quis dolor eos consequat tempor et vulputate aliquip tempor consequat est facer et eos rebum diam dolor. Takimata et sed amet elitr lorem illum dolor eu duo kasd. Sed diam dolores sed clita amet sit diam dolores diam erat rebum rebum.

Elit id dolor ipsum tempor sed tempor erat sea accumsan illum consetetur takimata invidunt vel dolores facilisi. Ad vero erat aliquam elitr clita rebum et clita dignissim sadipscing elitr ea ea. Aliquyam autem nibh ea duis eos kasd. Ipsum et sit erat vero sit amet dolore lorem facer justo autem dolore accusam kasd. Diam eros et et lorem liber et in ipsum tincidunt exerci nibh consetetur duo. Est ut eleifend ad ipsum at dolore lobortis tincidunt duis magna amet accusam et luptatum duo eos esse. Sadipscing et takimata consetetur sadipscing te at takimata no vel ipsum sadipscing tempor erat eu consequat. Labore suscipit clita nonummy sea duo kasd et kasd gubergren dolor ipsum lorem feugait ipsum ipsum justo. Sed ipsum exerci sea sanctus in duo.