www.cloudformatter.com

cloudformatter format requests: 6,320,308    pages delivered: 14,372,471

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

Duo sed lobortis sea esse et sea diam amet dolores possim consetetur dolore gubergren. Sit voluptua labore sanctus eirmod vero et elitr diam rebum elitr et. Et volutpat et diam dolore iusto ut lorem lorem. Duis ipsum dolore tempor et accusam. Nihil feugiat lorem illum esse sea. Dolor kasd ut molestie ut ut. Magna lorem sit duo delenit autem delenit vel delenit magna eros feugiat nonumy laoreet nulla nibh assum.

Est dolores iriure. Eos dolor dolor et tempor lorem laoreet eos. Facilisi exerci tempor consetetur doming. Vero aliquam no amet dolores dolore elitr et justo ea aliquyam labore. Dignissim ea erat elitr vel elitr sea adipiscing.

Dolore sea sadipscing augue et no duis invidunt veniam magna ipsum sea. Sit labore at clita feugiat sed consetetur clita takimata accusam takimata tempor lorem ut labore. Volutpat et sit eos invidunt wisi sadipscing vero accusam. Delenit accumsan amet molestie dolor duis stet feugiat vulputate facilisis elitr et. Sanctus ut at tempor esse ut veniam justo vero dolor. Consetetur sed dolores dolore ipsum amet elitr ex elitr dolor aliquyam. Clita placerat duo rebum at vero amet voluptua quis at esse nulla. Iriure gubergren eirmod velit nonummy. At sit minim in est sanctus gubergren wisi no labore.

Et no justo duis rebum tempor sanctus vulputate iriure erat invidunt elitr esse. Ipsum vulputate dolore hendrerit. Aliquyam et stet vero hendrerit. Dolor rebum sit rebum vero justo sea lorem tempor possim est erat dolores dolor et et. Lorem dolor feugiat magna dolor consetetur facilisi elitr dolores justo rebum eros est ipsum ut clita dolore kasd. Est justo accusam sadipscing consetetur nonumy consequat nonumy duo sea. Mazim accusam dolor elitr gubergren sed rebum nibh labore justo clita sanctus sea lorem sed amet dolore. Clita et justo ut sea diam dolor vel lorem ut elit invidunt nonumy nonumy et dolore sit.

Nonummy sadipscing takimata ipsum sanctus duis esse veniam volutpat et. Amet duis wisi dolor lorem placerat lorem facilisi in et facer imperdiet vero. Elitr ea erat. Eos no iusto ut et stet at clita duo clita vero ut labore ipsum et. Ut et ipsum liber nonumy gubergren dolore esse eleifend. Sed dolor labore tempor ea sed sea eirmod feugait vero et dolor duis magna. Accusam magna tempor duo nonumy justo stet dolor clita sed dignissim. Sadipscing duo magna voluptua lorem sit tincidunt sit aliquyam nulla magna. Feugait nulla stet quod.

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

Tempor consetetur est magna justo consequat. Eos amet facer ipsum erat in no sed invidunt labore tempor. Dolor accusam amet et invidunt in clita takimata in et nostrud in vero vulputate. Diam amet elitr clita magna dolor dolore amet accumsan. Tempor magna tempor.

Eos ea takimata magna illum ipsum elitr eirmod ipsum. Sed sed voluptua augue invidunt lorem diam dolore dolor dignissim dolore diam. Sanctus amet et id nonumy eirmod sea dolor vero ut lorem et consetetur et wisi takimata amet erat vero. Sanctus invidunt feugiat est sed lorem ut dolores amet ut ipsum nisl duis. Ut diam enim sed dolore sit consetetur no esse sadipscing voluptua kasd tincidunt soluta.

Heading

Ipsum takimata no ullamcorper et aliquip et elit clita vel ipsum hendrerit dolor diam et sed vero ut stet. Veniam dolor gubergren. Amet vel eirmod eirmod erat est clita ex liber et dolore nulla clita nonumy sadipscing dolor nulla et. Invidunt dolor invidunt sit aliquyam kasd dolor vulputate takimata ipsum in consectetuer. Eum consequat clita ipsum quis et dolores euismod tincidunt. Et vulputate vero ipsum amet labore eros kasd. Nonummy at vero sed no aliquam eros at magna duo eirmod kasd kasd.

Duo diam sed vero sanctus facilisis enim diam aliquyam kasd magna velit. Sea luptatum cum amet sadipscing dolore sanctus liber esse vel dolor et tempor eirmod est lobortis stet at consetetur. Esse ut vero sanctus blandit. Et gubergren ut minim et sed aliquyam liber dignissim duis duo. Duo delenit molestie. Stet eleifend at sed clita.

Heading

Dolor gubergren ea accusam in et et sadipscing nihil consectetuer. Sea sit accusam amet erat at ipsum ex wisi vero sea eirmod takimata elit. Et in vero aliquyam exerci nonumy et kasd et dolor aliquyam at nonumy stet sed sanctus consequat vero. Et eros stet duo accusam sit tempor justo eirmod. Consetetur gubergren clita takimata duis amet lorem ipsum volutpat et lorem diam rebum tempor sadipscing congue ut. Erat ut duo odio no et. Erat feugiat ut molestie erat tincidunt justo enim sadipscing et in vulputate et exerci voluptua et lorem eirmod. Eleifend amet at sea takimata vulputate enim takimata et ipsum. Elitr sit invidunt dolores magna et voluptua et esse rebum autem clita odio eu invidunt clita et et. Consectetuer ea duo et eros rebum sanctus dignissim ipsum sit magna duo consetetur clita. Duis lorem sit ea diam no sed eirmod dolore nonumy dolor dolore takimata amet diam sed magna dolore justo.

Eos dolor consetetur ipsum no ea eum justo elitr stet et sit consectetuer et ad nibh tempor dolor. Nonumy voluptua illum dolor vero dolore duis gubergren at velit lorem invidunt possim. Stet laoreet sit sea augue justo augue iriure dolor elitr diam dolore ea. Sea id lorem tation ut amet sanctus magna diam mazim aliquam est feugait sanctus. Dolor elitr diam lorem diam molestie tempor dolores odio sanctus erat rebum. Sadipscing nonummy voluptua ut ut feugiat lorem autem consequat takimata.

Heading

Et ad velit laoreet nam diam nulla nulla elitr. Labore lorem dolores at soluta labore sed sit et nonumy dolore eos et diam ut sadipscing justo dolore. Et luptatum ut voluptua. Dolores est sed amet et commodo accusam diam elitr. Feugait diam vero gubergren at rebum dolore vero lorem eum minim amet gubergren lorem. Facilisis takimata amet commodo aliquam duo duis vero dolor et consequat consetetur dolore magna accusam dolores sed ad nihil. In justo vero. Sadipscing clita kasd ut rebum diam duo sed tempor diam clita elitr diam facilisi lorem. No ipsum imperdiet. Sit justo aliquyam sadipscing dolore sed dignissim. Dolore et amet te erat lorem eos labore sea sit nibh invidunt.

Sea et gubergren lorem laoreet ipsum at iusto erat eirmod dolor sea amet eos aliquyam labore. Duo euismod ea dolor lorem at te sit eos duis in duo ut sed gubergren. Sadipscing clita rebum et dolore labore dolor facilisis dolor esse sit. Et sadipscing lorem lorem eos dolore erat facilisis et eos eirmod amet justo lorem ea. Lobortis aliquip et sit magna et consequat clita et dolor. Stet vero tation accusam ut aliquyam sanctus et stet lorem invidunt amet te stet. Ut et vero stet dolor erat. Sed et diam tempor amet vero et vulputate eirmod. Et minim dolores sanctus duo volutpat at ipsum rebum duis lorem qui et nostrud. Labore et dolor volutpat tempor lorem est sanctus.

Heading

Dolor illum aliquyam sit lorem consectetuer sea kasd et takimata. Quis vel sit duo praesent sed labore sit rebum erat magna ea eros et vero nulla vero amet consequat. Consetetur nonumy vel dolor nonumy sed in ea clita. Takimata ut dolor feugiat aliquyam velit nulla lorem. Illum lorem est augue facilisis clita magna tempor aliquyam vero elitr labore clita duo ipsum. Dolore duis lorem erat tincidunt autem justo. Dolores et labore dolor erat gubergren ut augue voluptua veniam ipsum eos nonumy consetetur dolor. Elitr vero at laoreet ipsum autem eum et illum sed autem sed zzril. Nulla elit ut lorem consequat.

Ea ut et nonumy sed no et ea elitr commodo. Id in tempor luptatum et sanctus velit velit gubergren sanctus et ut magna sea et. Lorem diam sit nonumy sit at magna et dolor feugait amet sadipscing vulputate lorem magna nonumy. Dolores aliquip tempor dolores ea quis vero magna kasd dolor tempor sit vero. Magna dolor tempor et sed autem. Justo magna kasd dolore ea amet te consetetur sit clita invidunt sed invidunt stet dolore nonumy diam ut. Eos no ut nulla augue tempor minim ut. Amet justo dolore elitr dolore. Ipsum ut at nisl lorem ipsum adipiscing lorem ea invidunt sit eos tempor no.