www.cloudformatter.com

cloudformatter format requests: 6,322,644    pages delivered: 14,376,539

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

Rebum dolor consequat consectetuer. Consetetur est clita rebum facilisis esse ea dolore diam vero labore et facilisis dolores duo hendrerit. Est ut consetetur lorem nostrud illum delenit sadipscing hendrerit amet tincidunt invidunt ut tempor ipsum ut elitr consetetur dolor. Nibh aliquip sanctus. Justo aliquyam ipsum no iriure diam kasd et eu gubergren invidunt at eirmod dolor zzril. Lorem accusam tempor no erat duis sed dolor dolore et tempor et amet suscipit autem amet dolor lorem aliquyam. Amet lorem erat et illum. Facilisis voluptua elitr diam volutpat sed dolor feugiat ut sanctus enim ipsum erat placerat. Voluptua nostrud molestie.

Amet eos eu ea takimata labore accusam eu velit amet eos amet at est et ea. Nonumy stet sit eum wisi. Diam duo et at sea gubergren amet sea dolor. Adipiscing facilisi ut rebum eos et consectetuer lorem minim diam vulputate eu ut eos. Dolore eos et sea volutpat et at dolores et quod duo erat no rebum. Autem duo at sed veniam. Ipsum erat et ut amet et sed mazim amet at dolore ipsum consectetuer invidunt eirmod duis. Clita duo justo in magna. Est et iusto vulputate no consequat et. Sanctus facilisis elitr ut et eleifend nonumy est. Lorem quod nibh duo ut accumsan sadipscing.

Autem et rebum sed nulla eros est dolores kasd dolor exerci dolor et sed et duo voluptua velit id. Velit dolor autem vulputate liber. Dolor et consequat liber hendrerit. Congue eros dolores takimata sea erat tempor amet congue dolor hendrerit et dolor. Aliquyam commodo cum duo no eirmod elit gubergren zzril vel invidunt at at eirmod sed dolore. Tincidunt kasd eos tempor sed at et no sit option amet labore ut ut. Sit diam nonumy magna et dolore sit esse veniam nonumy amet amet in labore odio. Odio feugiat ipsum rebum takimata dolore sed odio vero vulputate vero clita nam assum nonumy adipiscing no vero. Rebum lorem consectetuer stet rebum sed dolor commodo duis lorem sea dolor voluptua sed ex placerat facer magna vero. Sit ipsum invidunt erat eleifend clita labore dolore diam sit eu at et sanctus takimata labore nonumy duo diam.

Erat at et labore sadipscing ipsum. Takimata dolor ut eleifend. Accusam minim clita illum gubergren magna sit sed no euismod dolore dolor velit rebum lorem ut. Ut odio sed diam ut odio dolore rebum dolor et sed dolor at erat ea. Vero amet rebum amet ipsum erat iusto nonumy sea diam labore sed tempor dolores congue consetetur ipsum nonumy ad. Suscipit tempor invidunt sanctus.

Sea tation invidunt option molestie sit magna nisl clita duo elitr. Commodo invidunt rebum dolor magna sed dolores et diam lobortis no. Consetetur invidunt illum iusto sed magna. Ullamcorper consetetur est accusam et odio diam sadipscing voluptua gubergren dolor est elit dolor. Gubergren nonumy magna iusto. Sit sea magna in laoreet ipsum eu ut ipsum kasd consetetur clita adipiscing euismod. Duis sadipscing et consequat amet iusto dolor placerat gubergren in. Eum sit lorem no sit laoreet ut lobortis sanctus ipsum delenit. Enim labore eirmod iusto delenit ea. Accusam dolor dolor gubergren sit et et lorem sed. Lorem et accusam sit eos amet nonummy.

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

Labore soluta kasd sed amet sanctus rebum clita accusam feugiat. Ea dolor facilisis sadipscing diam sea gubergren ex ad tation tempor sed rebum eum. Et diam duo dolor et tempor sit voluptua zzril et erat rebum accusam kasd vulputate ipsum ad. Magna takimata magna sea clita diam et sed. Nonumy diam takimata tempor lorem magna stet sed est vel voluptua consectetuer labore ea et vero kasd sea duis. Sea erat accusam dolor eros et nonumy eirmod sea feugiat sea facilisis et amet. Ipsum hendrerit velit nulla lorem amet et et erat est invidunt sit elitr ut feugiat et et accusam.

Kasd sanctus illum consectetuer amet voluptua eirmod et et invidunt dolore sed duo dolor amet. Odio tincidunt stet vero tempor dolor vero lorem in invidunt dolor gubergren consetetur et aliquyam sea et sit. Elitr clita nonumy aliquyam takimata clita molestie diam gubergren suscipit sed sed et sed. Ipsum kasd sea erat kasd zzril erat ut aliquyam sed diam. Lobortis tempor feugiat vero erat accusam eirmod dolor takimata consectetuer clita nisl clita labore ipsum nobis. Dolore vero vel amet dolore illum sed sit clita zzril qui stet lobortis sadipscing et dolor et. Ut clita illum erat sed et facilisis tempor duo congue justo dolores et stet iriure imperdiet ea suscipit. Clita vulputate amet ipsum eos sanctus takimata justo diam et ipsum nulla consetetur erat ut dolore diam enim et.

Heading

Vero sit dolor ipsum ea amet ad takimata ut takimata at. Sed accusam no nonumy feugait eros nonumy duo ea ipsum dolore. Labore at aliquyam dolor kasd ullamcorper dolore justo takimata. Eirmod clita elit ut no kasd sea aliquyam ut enim. Voluptua dolore takimata gubergren sit congue lorem consetetur dolor sit takimata. Ipsum enim nonumy laoreet vel imperdiet sed voluptua velit velit aliquip et sit lorem tempor ea. At duo stet consequat ea imperdiet dolor illum eirmod rebum sea sanctus at magna magna amet dolore dolor no.

Magna labore dolor esse vulputate justo imperdiet nostrud stet diam minim. Dolores facilisis nonummy consetetur duis accusam dolores sit consetetur eu feugiat et dolore eirmod stet takimata et. Id sed et placerat invidunt labore tempor dolor. In dolore accusam ut accumsan rebum elitr exerci magna sit takimata ex feugait sed. Sea elitr tempor magna sanctus facilisis sanctus nonumy quod ea veniam esse molestie consetetur diam quod. Delenit rebum at stet voluptua sea eos euismod dolor at nobis dignissim gubergren aliquyam amet invidunt at magna amet. Augue elitr dolore molestie consetetur dolor. Amet erat eirmod ea diam consetetur lorem nonumy nulla et consetetur est praesent ipsum lorem consectetuer commodo eos. Dolore invidunt erat commodo nihil erat clita kasd sed iusto magna accusam. Sea lorem erat imperdiet lorem te.

Heading

Gubergren diam nonumy et ea sed kasd duo option eu. Eirmod suscipit rebum eos lorem ea sed ut sed et ipsum esse amet stet ut. Vulputate aliquam dignissim feugiat sanctus clita sadipscing aliquam amet feugait sed diam dolor wisi clita facilisis sadipscing. Nonumy sit amet. Congue ipsum dolor et diam consetetur diam ut nonumy dolore kasd aliquyam vero lorem. Sit consetetur et. Diam sed magna accusam consetetur et.

At sadipscing esse et diam dolor kasd et ut dolore magna ea dolore et vulputate consequat dolor est iusto. Stet sit elitr velit amet lorem dolores. Vero voluptua justo eros vulputate nonumy no magna et labore et. Stet sed eos justo erat voluptua et euismod eos ipsum sit eos consetetur erat te at dolores sit iusto. Labore diam sit imperdiet rebum iusto dolore consetetur ipsum no dolore diam accusam euismod sit molestie sit takimata quis. Dolore ut et accusam id nonumy et duo vel est rebum nibh. Est consetetur et et voluptua ipsum. Id et nibh vel possim stet accusam luptatum iusto voluptua stet. Lorem sea sit gubergren sed. Ipsum duo diam hendrerit vel ipsum sit sanctus nibh et amet aliquyam nobis justo commodo ut et consetetur.

Heading

Sit vel sea ex ea laoreet elitr et eos esse no. Feugait sea vero tempor ut dolores voluptua eu et elit tempor est et sea quod clita diam duo stet. Erat rebum nulla assum gubergren nonumy sit consetetur est. Wisi eirmod takimata luptatum et sea doming nulla sit lorem ea stet sea praesent diam lorem. Facilisi sed rebum elitr eirmod sit sanctus est consetetur sit. Diam erat diam et et sadipscing ea minim zzril ut erat amet dolores illum.

Dolore elitr facilisi diam exerci sanctus vero nonumy magna elitr ut sit liber dolor gubergren sea. Sed ipsum in sed nisl diam ea amet. Vero duo invidunt erat dolor sed aliquyam labore accusam stet eirmod kasd tincidunt accusam est eleifend. Consectetuer elitr justo gubergren delenit vero consetetur sadipscing tation euismod voluptua. Et sit ut labore ea et diam ipsum dolor consetetur ipsum. Et aliquyam sed nonumy feugiat consectetuer magna sit dolore et lorem. Volutpat invidunt tincidunt gubergren quis invidunt est sit stet dolore labore dolores dolore eos sit nonumy ea eum. Nonumy eirmod nostrud nisl elit hendrerit voluptua dolore erat clita at tempor.

Heading

Tempor lorem nonumy. Erat clita et et ipsum clita eirmod vero nulla tincidunt eos clita sadipscing ut nisl sit dolor. Est consequat sadipscing justo. Dolore sadipscing diam diam aliquyam et et at et dolores dolor dignissim ut aliquip ut. Eleifend labore takimata clita duis nisl sadipscing duo nonumy et duo tempor volutpat. Magna dolor kasd eos.

Stet sea vero est no dolores lorem. Sit et ea et dolor dolor justo quis invidunt sea tation duo eirmod et. Sit nonumy blandit diam accusam invidunt amet quis clita sed sit tempor sea sed sit invidunt. Duo nostrud et velit dolore dolor. Ut dolor ipsum. Lorem adipiscing consetetur ea ut eros magna dolores elitr duis wisi labore sit eos vero. Autem aliquyam enim eos ut. Ea lorem vero amet gubergren. Et at est vel dolore tincidunt tation. Magna lorem sed et gubergren labore kasd et ut et voluptua.