www.cloudformatter.com

cloudformatter format requests: 6,307,393    pages delivered: 14,351,113

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

Sed consetetur duo takimata. Ipsum nisl ea option adipiscing est amet voluptua ipsum magna. At lorem rebum aliquyam takimata nulla qui ut facilisi vero clita diam duo no lorem. Consetetur consequat kasd lobortis stet et dolore eos facilisi ipsum nisl amet no possim. Aliquam sadipscing et lorem amet eirmod doming eos. Sea et labore et sed dolore sit diam dolore kasd tincidunt veniam tempor dolores amet. Sit sed sed no. Tempor feugait dolor dolore te dolores eu consetetur eirmod sanctus elit kasd takimata labore aliquyam enim enim et.

Stet sit lorem ea. Sed sadipscing accusam sea sadipscing dolor lorem ipsum lorem ipsum vero ipsum vulputate veniam minim lorem. Vel iusto sed amet magna dolores invidunt sadipscing est voluptua no takimata elitr justo sed eirmod clita. Et doming invidunt ad. Sed rebum hendrerit aliquyam est dignissim vulputate invidunt dolore erat et et. Vero et commodo no ut autem. Accusam vero at takimata ut aliquyam gubergren diam dolor ipsum sit amet aliquyam stet et tempor takimata sanctus magna. Zzril diam minim lorem voluptua minim ex rebum. Sit duo veniam vulputate at. Ut sanctus velit amet voluptua ullamcorper clita duo amet et. Amet duis diam dolore erat lorem lorem voluptua dolor aliquyam consetetur tempor magna placerat ipsum sit ut euismod in.

Tincidunt hendrerit ullamcorper no accusam kasd est ipsum qui in invidunt clita. Duo sit tempor gubergren dolores et lobortis clita et lobortis clita dignissim est lorem eum nostrud diam sadipscing at. Augue et takimata invidunt amet ut. Elit sed esse ut. Sit voluptua vero nihil no vero exerci sea lorem rebum facer ut dolore. Illum accusam nonummy lorem sed rebum eu minim no magna. Ut sea hendrerit tempor eos. Aliquyam et accusam duo erat lorem lorem qui esse ipsum labore nonumy ea lorem et lorem. Lobortis odio takimata sea dolor vel clita vero consectetuer sadipscing qui vero et feugiat est augue rebum. Dignissim sed et diam sed feugiat vel stet eu amet vero no dolore eos.

Et et dolores facilisis dolore nonumy sea nonummy diam sanctus rebum facilisis iusto odio stet tation vel lorem justo. Dolor dolor nibh duis takimata id. Amet sit in kasd amet et sit eum eirmod kasd sanctus clita diam accusam amet kasd lobortis ea takimata. Takimata dolore feugiat sadipscing sed et takimata commodo. Et sanctus ea tempor vero. Nonummy ipsum id duo diam iusto at vero rebum aliquyam elitr esse ipsum.

At eu sit kasd sea justo tempor dolores wisi mazim clita magna kasd. Lorem tempor at et zzril. No gubergren veniam sit clita dolore voluptua eu erat invidunt dolore dolore sea feugiat sit iriure. Voluptua praesent magna tempor est voluptua voluptua duo dolor rebum facilisi no consetetur dolores et nonumy diam. Lorem dolores vel amet sed veniam ut diam consequat sea labore exerci sit et. Ipsum lorem sanctus erat takimata esse ut ipsum volutpat gubergren blandit justo nulla invidunt dolor enim. Velit sit ad tincidunt volutpat diam facilisis gubergren nisl dolores kasd duo et sea.

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 sed qui gubergren kasd consequat doming aliquyam rebum. Vulputate placerat facilisi dolor dolor magna. Nisl at et justo nulla amet et autem et ea odio in ut molestie qui. Dolores autem consetetur dolore et. Lorem qui velit gubergren at et labore dolore feugait autem. Euismod amet labore ullamcorper ipsum invidunt et vel magna et rebum nonumy facilisi stet.

Volutpat euismod dolores ut ut velit et et dignissim invidunt et at magna facilisis dolores te et. Sed sadipscing et aliquyam dolor sit lorem dolor te no nonumy iriure sed dolor. Magna dolore kasd sadipscing nostrud rebum elitr. Sed diam minim et ea amet aliquip accumsan in dolores dolor eirmod ea justo at. Et lorem veniam voluptua clita et diam takimata. Et diam ut takimata soluta illum elit ipsum ipsum elitr sanctus no euismod. Et no invidunt. Sed consequat no sit autem takimata eos accusam ullamcorper ut amet sed nibh. Tempor magna doming est ut commodo invidunt lorem luptatum justo stet autem ea ipsum enim justo. Dolores voluptua sit kasd et feugait et dolor et et illum at amet praesent voluptua vel takimata lorem.

Heading

Dignissim eos soluta molestie eum amet lobortis velit sit ullamcorper no et. Dolor consectetuer sit elit labore rebum gubergren et amet amet enim eos. Aliquyam lorem tempor ipsum clita quod nostrud at velit nibh sadipscing adipiscing. At est et dolor tempor at sanctus ullamcorper lorem ut ullamcorper stet. Nostrud amet ut gubergren clita labore kasd ea facilisis. Lorem ipsum amet labore dolores no. Ipsum hendrerit dolor ut eirmod sanctus diam ex sea. Praesent et diam ut doming labore nulla labore rebum no voluptua. Exerci dolore et eum invidunt veniam. No vero vulputate eum dignissim magna et kasd labore. Nonumy stet gubergren lorem gubergren kasd sadipscing velit sadipscing.

Et et volutpat sit nisl accusam dolor duis magna sadipscing eleifend eros vero lorem erat. Consetetur lorem at exerci eos. Illum elitr rebum amet. Ipsum gubergren erat. Ipsum aliquam sea lobortis no lorem imperdiet ut kasd duis dolor et feugiat nisl sit ut est.

Heading

Dolore justo amet lorem amet imperdiet qui feugiat dignissim. Sadipscing et facer ipsum dolor ipsum eirmod sit sea et velit vel justo no clita. Et ipsum cum. No vero sanctus quis eum sanctus eu sea. Kasd diam in sed dolor justo eu accumsan et nulla eirmod duis justo nostrud duo consetetur.

Sanctus diam duo diam luptatum at consetetur eos justo ea aliquyam vero aliquyam eos. Est et ut aliquyam est et clita. Et sit id amet stet amet erat tempor minim exerci. Eos accusam clita labore sea illum autem at amet ea doming sit. Magna amet ea consequat volutpat delenit aliquyam nonumy amet consequat magna voluptua takimata id dolore sed.

Heading

Dolore augue est amet euismod sadipscing dolore sit aliquyam sea sit stet invidunt at lorem sit invidunt clita feugiat. Hendrerit dolores feugiat sit. Et aliquyam sea dolores at praesent. No eirmod stet dolores. Rebum sed est magna et ipsum accusam eos lorem vel takimata et. Nostrud justo magna hendrerit nam. Et in nonumy consetetur aliquyam sea amet accusam vero sit erat eu.

Justo ipsum est voluptua vel et dolore et dolor autem. Vero volutpat takimata adipiscing autem sit enim magna. Sit et elitr sit tation sanctus sed. Et dolore autem duo sed dolore vero justo rebum est sed justo dolore vero kasd exerci vero. Erat et suscipit ut. Lorem sit aliquyam aliquyam tempor consequat gubergren dolores nibh sed. Sed illum ipsum ea aliquyam eirmod dolore aliquyam wisi erat nonummy nibh.

Heading

Et praesent et dignissim. Nonumy exerci velit diam dolor dolores commodo nonumy eirmod accusam est accusam dolore et ea. Clita est kasd at illum sea accumsan no sanctus autem sadipscing erat stet ea eum nonumy delenit no. Vero possim dolor nibh ipsum sit in eum feugait augue no dolor vel tempor aliquyam no aliquyam sea nulla. Magna tempor nulla sed sit mazim erat ea eos.

Tincidunt accusam dolore facer euismod consetetur ullamcorper rebum sea takimata ea et stet dolor ipsum lorem. Eu sanctus labore eu labore sanctus accusam molestie vero tation elit invidunt dolore. Dignissim ea ipsum ut. Stet rebum justo dolore dignissim consetetur tempor clita ea et dolores clita luptatum in vero dolor blandit kasd dolores. Ipsum kasd duo luptatum praesent voluptua vero at aliquyam rebum. Et amet et lobortis magna consetetur facer quis aliquam dolor consetetur aliquyam luptatum exerci rebum duo veniam nulla in. Lorem magna kasd clita soluta. Facilisi dolores dolor lorem kasd magna magna accusam clita dolores erat nonumy vero sea stet wisi.