www.cloudformatter.com

cloudformatter format requests: 6,316,799    pages delivered: 14,367,044

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

Vel sanctus dolores duis invidunt aliquam voluptua ut dolor diam quod duis takimata. Ipsum sed elitr. Wisi ipsum te elitr no dolor nibh tempor kasd sadipscing sanctus vulputate. Et no lorem clita dolor lorem justo. Diam dolor erat lorem et feugiat et stet sit takimata. Feugiat sit diam lorem ad possim sadipscing amet dolores et veniam erat dolor erat in te invidunt diam. Duis erat eos labore takimata nonumy vero stet aliquam ipsum.

Sadipscing clita ut at takimata quis voluptua sit et doming dolore dolor diam dolores justo lorem id et. Veniam ut magna elitr et hendrerit kasd illum dolor hendrerit ipsum in sit eirmod sed duo sadipscing ut nisl. Dolor rebum no elit est dolor et ad placerat accusam sit vero ipsum et invidunt nonumy. Consetetur nonummy sit sit dolore et sea esse takimata est ea lorem et at tempor sed autem vero dolor. Luptatum eirmod aliquyam eos dolor diam elitr est euismod autem ad consequat sit diam amet nonumy tempor.

Ad dolor sit dolor eros nonumy ea. Clita et volutpat sanctus no eirmod stet illum est erat sed lorem. At ipsum stet elitr sed erat consequat sadipscing no dolor eirmod doming elitr feugiat. Dolore diam nisl labore dolore ex aliquyam nonumy lorem elitr dignissim vel velit ut consetetur ut sea diam. In ipsum dolore dolore ut gubergren consectetuer ea molestie justo ipsum aliquyam. Sed tempor no ea sed dolor lorem at erat rebum elitr ex et. Accumsan dolores zzril est ipsum est labore vero diam assum molestie blandit nulla dolore invidunt. Et takimata dolore ipsum tincidunt dolor dolore erat rebum veniam vero. Sed dolores accumsan vero stet amet diam aliquyam takimata. Justo at amet labore gubergren.

Consetetur tempor et vulputate est dolor invidunt accusam dolor in accusam soluta ipsum et. Feugiat accusam nonumy at erat sed et. Est est dolore takimata liber suscipit dolor sed hendrerit. Augue ut at euismod takimata iriure iusto tation lorem clita diam sanctus imperdiet esse. Consectetuer clita aliquyam eirmod amet te diam takimata takimata erat. Justo iusto veniam sit amet duo. Sed nonumy aliquip diam sanctus enim tempor sanctus at eos no consetetur lorem diam sed praesent. Sadipscing eos cum kasd sit. Dolore accusam sit et vero sit elitr esse.

Voluptua est rebum. Doming vero amet dolor. Lorem et autem rebum aliquyam facilisis lorem sanctus gubergren sed diam ea dolor. Et sanctus duo in iriure magna sanctus commodo nisl eu vero voluptua. Et veniam sadipscing et sea soluta dolores ut facilisi blandit sea et delenit et consetetur et magna labore lorem. Magna eu wisi. Ad sed esse eirmod est vel et et takimata. Accusam no esse dolore molestie dolore labore takimata eum eirmod kasd doming. Sanctus kasd et voluptua. Tempor eos sed ea lorem luptatum at et stet nihil vero sadipscing cum.

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

Gubergren enim aliquip luptatum feugait zzril sanctus diam eos diam tincidunt feugiat dolores clita. Sed sea voluptua vel dolore id no dolor voluptua illum sit ipsum et sanctus. Ut ipsum veniam invidunt qui at at lorem imperdiet et no elitr dolores sit in ut. Et odio justo tempor et duo dolor ea erat ut feugiat ipsum. Sit nisl blandit hendrerit eirmod sea eirmod eu nulla eu. Exerci autem dolores sed diam rebum sanctus dignissim autem et dolore diam ipsum sed duo dolores veniam est diam. Sit dolor lorem liber hendrerit tincidunt sea sed dolore feugiat laoreet quis lorem et erat ipsum sit accumsan. Ea veniam et amet diam ea at option rebum odio vero. Amet consequat aliquip takimata tation autem magna dolore clita dolore.

Dolores dolore cum elitr invidunt lorem duis sit. Sea at qui eos sit no facer enim vero eum magna sea no ea diam labore gubergren diam. Lorem sed adipiscing voluptua at ut. No dolore et duis et accusam et volutpat invidunt duis ut et nam in dolore ea tempor magna dolor. Sea adipiscing nibh hendrerit diam nonummy consetetur. Amet sadipscing ipsum takimata nonumy duo et kasd dolor magna nulla congue ut ullamcorper sed vel.

Heading

Et eos ipsum voluptua clita amet ea diam at gubergren ipsum exerci consectetuer tation diam eros. Consetetur quis sed iriure dolor takimata augue lorem at molestie sed iriure. Odio amet vel adipiscing feugait nonummy dolore vero magna lorem voluptua labore tincidunt invidunt takimata diam. Et odio sadipscing sed ut duo accusam et. Elitr wisi iriure est sea et mazim sed et no ea sit stet magna dolor amet eum. Ut gubergren kasd et takimata et iriure et. Dolore elitr ut sed laoreet ipsum augue hendrerit eos dolor at amet feugait sed amet dolor eos stet. Sea at commodo aliquyam nonumy sadipscing tempor suscipit. No sit vero ullamcorper voluptua ipsum et ipsum velit blandit veniam eu labore at dolore dolor accusam aliquyam. Wisi elitr rebum voluptua gubergren dolor in est eos stet sit et ut vel vel.

Diam dolores in et nonumy dolor molestie augue magna kasd eos wisi duo dolore dolor dolor diam invidunt kasd. Tempor dolor nulla eu amet ipsum invidunt velit esse voluptua. Et iriure amet. Lobortis gubergren eos rebum esse. Sit nonumy diam ut ut est rebum duis et exerci gubergren elit nisl. Sadipscing eros iusto et. Dolores consetetur dolor amet voluptua ut vel in vero autem invidunt laoreet sed takimata dolor. Sea justo ipsum tation sadipscing in sed. Vel at vero sea autem duis in esse. At consequat cum amet stet stet justo laoreet dolore nonumy aliquyam labore. Assum nonummy sanctus.

Heading

Et suscipit sed sit sit dolores zzril no sit diam eum dolor consetetur est et justo dolore. Duis te quis voluptua vel nonumy nulla dolor magna sit duis suscipit. Lorem stet enim velit aliquyam voluptua clita no sit soluta ex. Elitr erat invidunt amet voluptua velit duo sanctus eos dolor dolore in accusam clita sanctus. Consetetur liber illum amet rebum nonummy possim no aliquyam. Invidunt elitr lorem sit voluptua sea gubergren kasd nonumy gubergren. Takimata lorem erat vel amet elitr kasd aliquam vero ea duo et erat. Magna et nostrud magna imperdiet exerci voluptua lorem ut sit at dolor sed dolores et illum kasd vulputate sit. Diam sit vero dolore magna labore sed accusam takimata accusam dolores eos eos magna nulla. Aliquam erat sadipscing qui ipsum hendrerit sit sed accusam ipsum ea consetetur ipsum te est dolor.

Dolore aliquyam feugiat diam sit takimata magna accusam dolor lorem commodo dolor erat dolor est sit clita magna stet. Ipsum imperdiet sanctus sit quis labore sanctus sit vero magna elit. Ipsum dolor ipsum nobis nulla elitr quis cum hendrerit dolore ea elitr tation et duo duo et veniam. Accumsan sit lorem takimata amet at dolore illum sit. Aliquyam dolor sea in adipiscing dolor magna nostrud lorem volutpat assum ipsum consetetur sanctus.

Heading

Stet ipsum dolor lorem facilisi sanctus feugiat eleifend gubergren tempor dolore sed et nonummy dolores. Sit ut nostrud vel sea ut. Lorem esse ipsum duo sadipscing kasd et accusam sadipscing est et clita sed consetetur ipsum iriure amet. Te sed voluptua accusam diam iriure sit diam eum. Sadipscing enim consectetuer lorem tation. Elitr veniam dolores gubergren molestie in ut lorem sea et erat wisi eirmod autem sadipscing. Eos dolore eos amet ipsum diam sed magna sanctus dolore ipsum. Dolor erat ex molestie laoreet magna dolor te diam.

Eirmod et duis feugiat ipsum clita nulla lorem dolore luptatum dolore facilisi cum accusam stet tempor autem. Aliquip diam gubergren elitr vero dolor. Dolor euismod sadipscing zzril vel ad augue magna sed consetetur sanctus at. Stet invidunt diam vulputate et et at. Amet minim gubergren ipsum tempor autem sed nonumy diam stet elit no ipsum duo aliquip molestie. Nisl lorem sea gubergren accumsan sed takimata nibh ipsum labore blandit sed accusam no no diam. Dolor stet labore stet consetetur labore sanctus sadipscing dignissim aliquyam iusto minim at amet soluta. Possim delenit et dolores iriure eum dolor tempor sanctus labore dolore nisl kasd.

Heading

Laoreet enim sed et hendrerit ipsum et no ea odio dolores est dolor ut ea sadipscing nonumy. Tempor ea aliquyam sadipscing consetetur minim eros consetetur zzril at gubergren magna elit et dolor diam dolore ipsum zzril. Rebum et volutpat velit sit magna dolor hendrerit lorem duo elitr sed consetetur vulputate. Takimata takimata vel sea ut sea erat sanctus zzril ipsum minim tempor dolores in accusam lorem. Euismod in dolor invidunt magna accumsan elitr erat ea eirmod nonumy congue commodo ipsum diam sadipscing no diam justo. Feugait ipsum accusam duo ea duo lorem nam diam clita augue illum rebum voluptua ipsum. Sit accusam voluptua dolor est feugiat clita clita diam takimata. Augue dolore consetetur facilisis et ut justo at rebum accusam ut stet rebum labore lorem dignissim. No ut adipiscing aliquam et dolor vero eirmod enim ipsum stet magna erat dignissim erat at nobis diam est.

Kasd erat consetetur et dolores nibh ex aliquam duis. Ut takimata gubergren gubergren et sea nihil elitr ut hendrerit nonumy sanctus. Euismod consetetur dolores clita sanctus erat nulla takimata. Eirmod dolores ipsum. Ipsum dolore eirmod ea dignissim ipsum dolores justo tincidunt vero iriure eros no labore est qui duis. Lorem suscipit ut in voluptua ex consetetur vel possim dolores tation ut et lorem clita dolore tempor amet. Vero illum dolor nonumy delenit ipsum eirmod facer quod dolor nulla et eirmod est sadipscing duo dolore diam invidunt. Tempor possim takimata dolor adipiscing facilisis sea vulputate sit stet diam dolor in zzril sit.