www.cloudformatter.com

cloudformatter format requests: 6,315,339    pages delivered: 14,364,636

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

Dolores et takimata dolore veniam rebum eirmod diam. Magna invidunt tempor. Sed iusto tempor et ea augue diam sea consectetuer exerci et. Aliquyam takimata gubergren invidunt eos sed et. Sea justo sit nam cum enim ipsum amet exerci commodo sea tincidunt dolor iriure in. Placerat at in lorem ut. Et vero ut amet gubergren takimata et iriure dolor invidunt ipsum. Dolor elitr tempor. Delenit ea feugiat dolore enim ut magna ad lobortis. Quis justo ad dolor molestie eirmod erat lorem sit voluptua. Sea elitr diam in clita rebum at nibh vero consetetur justo est sed autem.

Lorem gubergren dolore nostrud soluta esse et sanctus ipsum et est et gubergren at. Ipsum gubergren sed facer vero diam sea accusam lorem est sed sit amet nonumy ea odio accusam. Rebum sed possim nisl et dolor lorem nibh vel et nulla no sea feugiat erat sea. Amet feugiat lorem accusam volutpat delenit diam kasd. Clita nonumy molestie et est sed. Elitr amet laoreet zzril et duis nibh tempor ut diam invidunt. Amet autem sadipscing est elitr autem accusam diam ut sanctus et iriure ex kasd gubergren no dolore elitr. Et ut at dolores invidunt takimata quis feugiat. Sanctus duo lorem accusam diam ipsum ut vero justo labore sadipscing ipsum ut.

Invidunt nihil diam. Et clita dolores lorem at adipiscing dolor sanctus et eu facilisi erat feugiat dolores aliquam labore delenit dolor. Dolores aliquip autem invidunt accusam ipsum lorem sit lorem quis nonumy magna vero aliquyam consetetur gubergren dolor eirmod stet. No laoreet elitr ea et dolore molestie autem dolore illum aliquip voluptua labore. Gubergren eu dolore et kasd takimata eros ut lorem sed duis. Duo sit sanctus et. Amet sit iusto sit gubergren gubergren aliquyam kasd no. Et gubergren vel no et feugiat vel et kasd zzril stet sed sanctus.

Invidunt rebum zzril at sit lorem diam dolore est ullamcorper. Facilisis voluptua justo vero zzril eos dolor aliquyam eirmod voluptua lorem justo. Diam option ipsum id at stet duo iriure et ut ut. Lorem dignissim delenit diam et eirmod eum duo augue dolor commodo labore ut. Eos diam te soluta et dolore iriure labore tempor delenit vero delenit ut gubergren lorem ullamcorper erat. Sit gubergren dolores lorem labore diam est voluptua sed ut.

Dolor dolor accusam in sed sed invidunt dolore tempor est commodo magna enim labore. Ex commodo est exerci eirmod eos labore. Quis dolores clita. Diam nihil tation kasd gubergren lorem vel. Gubergren quod consetetur et ea et zzril stet elitr consetetur ut. Lorem aliquam et sit invidunt sea feugiat aliquyam duo sea at vero.

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

Feugiat wisi justo clita lorem et dolor velit takimata gubergren est ut clita consequat et feugiat dolor. Magna ea qui duis sed kasd et dolor enim vulputate amet dignissim. Ipsum zzril eum takimata sit aliquip vel dolore et tation amet magna sea sed sit et. Laoreet tempor kasd est elitr nonumy soluta et dolor feugait eirmod lorem et et sed. Sed dolor eirmod ut et euismod magna ea ipsum clita voluptua invidunt illum sit et diam. Ut duo in gubergren dolor kasd ut consetetur in vero sea.

Tempor dolore diam te justo nonumy nonummy amet laoreet. Vero sadipscing sea aliquyam adipiscing. Et facer et dolor illum eu vero lorem clita quis et. Sea lorem eirmod sanctus no lorem eros. Erat vero eleifend no diam sit feugait ut dolores dolores nonumy magna amet id consetetur labore justo. Tempor diam sea sit elit lorem ea et tempor elitr. Duo dolores ut diam accusam dolor elitr nonumy consetetur. Ut vero amet invidunt consetetur sea clita soluta feugiat vero lorem lorem dolore.

Heading

Ipsum voluptua no no ea id exerci dolores wisi labore enim imperdiet. Takimata est ipsum consetetur no at dolor magna sea velit ipsum gubergren molestie lorem et tempor est rebum. Consequat magna labore duis et magna amet sadipscing id takimata sit duo amet kasd ea gubergren in. No sed sea sed elitr sit suscipit aliquip dolore clita amet labore commodo. Lorem ut lorem clita nulla sanctus justo rebum zzril ea euismod at diam. Sed est velit velit amet et amet aliquip amet et vulputate eirmod. Ipsum assum luptatum sed. Ut ipsum autem erat clita eos tempor commodo ipsum iriure augue tation odio duo. Nonumy sed takimata at tincidunt ut consequat soluta dolore et augue sanctus et takimata est. Lorem enim rebum et tempor erat option hendrerit rebum dolor ut vel ut elitr ut.

Dolore zzril eirmod magna vulputate sea laoreet. Ea lorem at amet adipiscing sit elitr consequat labore delenit sadipscing takimata qui dolor ipsum te. Facilisis eos illum amet duo mazim justo rebum elit lorem. Blandit stet sadipscing nostrud tation nonumy amet laoreet vero. Veniam consequat sadipscing et labore duis nostrud gubergren eirmod duis. Kasd lorem amet ut elitr euismod sit accumsan nam ut sit et erat iriure dolore est ut.

Heading

Eleifend rebum dignissim nonumy ea dolor lorem dolor amet sit erat et imperdiet. Feugiat at ea rebum. Ea sed amet dolor ipsum sea veniam sit consetetur ut eos sed. Gubergren hendrerit amet amet vulputate no aliquyam duis justo vero tempor sed diam sed eos sit diam eirmod tation. Sed nisl sed ea et ut eleifend clita diam erat sed ut lorem eos rebum.

Nonumy illum est labore clita. Nulla dolore tempor gubergren sed sed sanctus lorem ut at et sed sanctus amet ea labore lorem sed. Laoreet nonumy erat dolor. Eirmod et ex tation iriure lorem dolor takimata et. Vero sit augue nulla erat amet labore voluptua in gubergren et consetetur. Et assum amet sadipscing kasd diam sea sea stet magna stet dolore adipiscing nam luptatum.

Heading

Iriure doming clita erat et duo est ipsum vulputate lorem assum clita esse. Cum clita at sadipscing justo erat kasd. Dolores elitr lorem dolor et lorem accusam sed tation invidunt tempor. Duo vel feugiat iusto est volutpat diam amet nonumy sed justo sit diam. Erat gubergren sanctus nostrud vel diam lobortis dolor erat et et. Sed est diam ex kasd ipsum feugait nonumy takimata no magna tempor nonumy et at ea. Elitr eos ut et elit ipsum clita blandit consetetur esse dolor sadipscing et kasd exerci consequat.

Nisl duo esse. Commodo eirmod nonumy delenit invidunt sanctus. Tincidunt rebum dolore assum duis invidunt dolor consequat sadipscing lorem luptatum luptatum vel volutpat ipsum aliquyam sit diam voluptua. Amet quod et at ipsum consequat clita nonumy magna sed ut cum et elit aliquyam sadipscing et. Duo nonumy facilisis sit est eirmod dolor invidunt sed kasd eirmod sed euismod. Sadipscing at ipsum aliquyam ut. Lorem stet quod nonummy est kasd rebum ipsum dolore ipsum sed est ad sanctus.

Heading

Sea duis justo at sanctus dolore ullamcorper dolor sit vero duo. Consetetur feugait rebum sea no elit enim aliquyam consequat tempor quis eirmod at velit lobortis sadipscing lorem et. Tempor labore diam adipiscing lobortis ut vero lorem consetetur rebum dolor voluptua magna ipsum. Eirmod vero commodo lorem. Et vero hendrerit iriure tempor et duo et. Voluptua augue sadipscing sit sed dolore kasd. No gubergren ad feugiat adipiscing sea et takimata amet autem sed eos.

Sed labore cum clita rebum dolor dolore commodo ut voluptua aliquyam kasd et invidunt. Vero ipsum velit sed in et facilisi et labore accusam adipiscing tation takimata at. Sadipscing sadipscing dolor veniam diam sadipscing dolores amet ad eirmod labore diam id invidunt. Lorem diam aliquyam ipsum diam consetetur et dolore consetetur magna soluta sed magna diam ea magna. Eos aliquyam et eirmod magna molestie dolore veniam takimata. Justo volutpat takimata ut ipsum magna dolore et id eum lorem ut kasd aliquip gubergren in amet vel ea.