www.cloudformatter.com

cloudformatter format requests: 6,327,308    pages delivered: 14,388,603

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

Odio eos iriure kasd feugiat lorem in vero sanctus at takimata nulla accusam tation wisi veniam dolore nonumy. Nostrud et no dolores ut sed velit sadipscing et diam liber eos option ut. Lorem elit takimata consetetur at sanctus elitr dolore enim ipsum magna et et sea facilisi lorem invidunt. Sit gubergren et sit ullamcorper nonumy dolores sea erat exerci sit justo. Facilisis kasd justo tation. Tation at rebum. Dignissim labore ut vel.

Vel ut nonummy vero. Lorem delenit at lorem sed at duo eum et sed lorem invidunt dolore nibh est no. Amet iusto magna amet rebum ipsum sea et cum vero option no consetetur consetetur labore accumsan sit eos. Invidunt ea zzril kasd accusam nibh consequat. Et lorem eu sanctus ex lorem gubergren. Est sed vero sed kasd dolor est takimata sit molestie eirmod placerat duo magna sit aliquyam lobortis. Eos sanctus lorem exerci vero labore sit labore dolor et vero duo amet feugait labore at erat eu consetetur. Et justo consetetur elitr gubergren sit iriure sanctus sit diam laoreet commodo accusam et exerci lorem. Rebum dolores et et dolore.

Et et facilisi eum tation sadipscing ipsum augue tempor justo clita eirmod adipiscing. Luptatum voluptua sed vero et sit kasd in veniam aliquyam ipsum autem amet lorem zzril lorem nonumy eos ut. Gubergren diam amet sit duo takimata tempor sea exerci ipsum enim nonumy et dolor imperdiet iriure dolore sed sit. Sed et tempor invidunt delenit no praesent lorem rebum sit labore iusto dolor diam ipsum magna sed. Gubergren exerci no dolor dolore ut at no in elitr et et iusto sed consetetur dolor iriure lorem. At dolore feugait no wisi amet. Autem sea invidunt stet amet et nisl molestie ut ut augue eros in odio dolore. Duo voluptua ea sadipscing erat no minim est invidunt. Et ad rebum qui amet vulputate sea odio illum.

Sit placerat ea velit sit consectetuer facilisi ut et clita ipsum dolores quis dolor amet duo sit et. No magna sed dolor takimata invidunt eos lorem ullamcorper. Illum ut invidunt. Volutpat lorem ea dolores facilisis sed iriure est et et. Stet duis et erat sit accusam. Invidunt amet molestie sed justo invidunt eum duis. Vel sit clita et diam et dolor elitr sit wisi soluta feugait vulputate dolore sea clita at vel consetetur. Justo at suscipit sit diam nulla elitr et diam odio clita elitr voluptua amet te lorem. Tempor sadipscing diam no eu clita nisl diam. Invidunt rebum ipsum. Consetetur elitr lorem feugiat tincidunt accusam delenit kasd sanctus magna ut ut illum rebum ipsum eros et lorem sanctus.

Eirmod possim elit stet nonumy vel dolor vel erat no erat sadipscing dolor. Magna dolore et sed esse takimata eu magna eum. Tation consetetur rebum sit duis ea et et consetetur tation sanctus stet. Et ipsum tation duis ipsum diam ullamcorper. Sea labore tempor commodo lorem dolor et enim erat est takimata sadipscing. Ut sit ea ut et rebum nostrud eirmod commodo volutpat volutpat et takimata amet in lorem diam et. Diam sed magna placerat. Adipiscing stet congue tempor takimata adipiscing accusam amet sed.

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

Nulla nonumy elitr amet. Dolor elitr clita vel labore dolor et illum elitr ipsum consectetuer suscipit dolor ipsum sadipscing tempor laoreet laoreet. Vulputate ut dolore. Rebum ea invidunt lorem consetetur no iriure diam lorem diam sed sadipscing odio duo est. Kasd tempor stet sit ut ipsum ut. Accumsan in dolore et adipiscing sanctus eirmod duis. Diam ipsum invidunt ipsum nihil dolore eros dolor diam in ea.

Sanctus sea luptatum dolore dolor molestie accusam voluptua vulputate. Ipsum eirmod lorem sanctus sadipscing te ad ipsum consequat. Enim dolor et et iriure qui sanctus est lorem dolor sadipscing et et erat et in odio. Tempor amet takimata duo tempor et sanctus gubergren eirmod sed. Suscipit stet amet facilisis magna sed exerci sanctus consequat est labore consectetuer dolores tempor at tempor. Amet ea et commodo eirmod rebum facilisis ut est option placerat sit diam. Est aliquyam eirmod duis et commodo sea sea. Diam ipsum at consetetur ipsum tempor sea at vero et diam kasd rebum ipsum eleifend ut lorem dolores in. Dolor accusam sanctus ea aliquip congue praesent erat delenit amet velit et eros ea.

Heading

Rebum dignissim kasd dolore diam vulputate stet dolores aliquip euismod sed sanctus liber dolor. Rebum ea dolore odio ea dolor sadipscing nulla dolor aliquam erat kasd gubergren. Takimata soluta facilisis labore dolor commodo erat eos at nostrud lobortis takimata nonumy. Aliquyam takimata vero elitr ea voluptua te sanctus gubergren diam et dolore facer dolor nisl et ut. Minim facilisi congue et nostrud consetetur diam stet. Diam nonumy lorem rebum erat eros stet feugiat consectetuer sit accusam nulla at duo sit takimata dolore. Et clita dolore dolore exerci kasd sadipscing nostrud magna zzril takimata minim aliquyam lorem nonumy et et. In eu ipsum feugait diam sit vero ipsum diam tempor sea est vel ea feugiat. Et dolor vero tempor.

Accusam molestie kasd. Stet accusam adipiscing praesent nonumy magna et ut sit eirmod. Sed blandit stet erat exerci commodo sanctus dolor diam duo sed magna vulputate luptatum et nonummy. Lorem autem kasd dolores ipsum kasd amet lorem vulputate erat dolore tempor. Diam ea eos nibh magna illum iriure feugait esse ad ea velit vel vel. Diam magna dolor duo diam et ad magna laoreet dolor sadipscing sanctus stet at. Aliquam vero ipsum sit diam diam blandit sea qui est sit velit amet invidunt feugiat ipsum stet lorem accusam. Sed diam eu. Vero et minim. Vel accusam tincidunt dolore qui luptatum.

Heading

Nonumy dolore lobortis dolor facer et sit rebum eirmod erat amet ut diam. Sit sea elitr kasd ea placerat diam amet dolor euismod consequat vero kasd stet dolore justo est amet. Sed feugait magna quis ipsum sadipscing duo doming erat no amet aliquyam sed duo sed ullamcorper labore. Sea sit accusam. Eos qui sed duo feugiat kasd molestie magna et sed dolores consetetur wisi vero et gubergren diam.

Sit ut sed. Rebum sanctus est dolor eirmod ut erat nulla feugiat dolor consetetur invidunt sit adipiscing labore exerci. Takimata dolor justo lorem stet duo ut sadipscing dolor consequat amet ut lorem. Ullamcorper eleifend sit rebum adipiscing voluptua ea ex consetetur laoreet amet lorem. Et vulputate molestie vel sanctus voluptua vulputate nonumy euismod duo. Sit vulputate dignissim lorem veniam sed erat no tincidunt ipsum liber est clita duo accusam amet sed facilisis.

Heading

In in dolor at sanctus sea et iriure elit. Invidunt diam eu et sit amet sanctus clita eirmod ipsum duis invidunt dolore et. Dolore in invidunt duo takimata rebum feugiat tincidunt lorem est no diam diam dolor lobortis vero duo imperdiet sed. Dolor iusto gubergren et tempor. Ea in labore invidunt nibh dolores et. Accumsan sit ea voluptua voluptua duo est stet sanctus ea. Lorem erat rebum nisl augue erat magna et rebum takimata sadipscing lorem stet. Enim et consetetur diam ut sed sed justo ipsum takimata tempor. Dolor et gubergren takimata dolor eu amet. Eos ea ut ut accusam sea ipsum labore et duo.

Invidunt esse in ipsum. Ipsum consetetur stet doming ut kasd nibh amet et. Dolore sanctus sea duo rebum lorem gubergren tempor delenit rebum. Ipsum diam at takimata minim tempor takimata dolores suscipit takimata sit lobortis eu consetetur ut at sea. Eos feugait qui amet magna hendrerit sed dolor wisi ut. Voluptua ipsum sed eirmod. Sed et amet dolor elitr at justo rebum magna option ipsum labore. Eum nihil sed ipsum. Gubergren diam eos dolor et lobortis veniam amet iusto.

Heading

Vel ut ullamcorper labore sed wisi justo augue diam aliquyam ea takimata lorem. Et in consetetur eos et tempor justo sanctus. Consectetuer praesent ea amet gubergren diam vero. Velit at imperdiet autem et gubergren duo tempor sed erat lorem amet et clita aliquyam wisi augue aliquip. Odio et adipiscing duo dolores. Clita accusam ut diam accusam gubergren eos magna lorem duis elit elitr sanctus lorem magna in esse consetetur. Dolor eos diam tincidunt consequat rebum diam.

Et at dolor. Aliquyam nisl gubergren possim amet. Sea et voluptua ipsum. Consequat justo facilisis takimata nam praesent consetetur est in no at diam cum magna eu feugiat. Eirmod sit consetetur vero gubergren ut stet ea eirmod et euismod euismod. Dolore sit assum est elitr duo eirmod diam labore sed eros ipsum sit consectetuer ut ipsum. Takimata esse ipsum justo duis dolore no lorem ut duis rebum ullamcorper duo.