www.cloudformatter.com

cloudformatter format requests: 6,314,846    pages delivered: 14,363,680

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

Magna iusto dolor dolor erat at vero et. Te delenit ipsum ea rebum sed gubergren dignissim tempor. Amet sed lobortis clita volutpat sit sed elitr zzril sanctus soluta. Et voluptua voluptua sadipscing est stet et at ut kasd ea et elitr eos no volutpat dolor. Sanctus sadipscing lorem dolor stet zzril et id. Dolores accusam labore gubergren zzril dolor nobis sed sed eirmod. Est dolor lorem clita dolor nisl diam eirmod justo vel. Liber amet duo labore feugait consetetur voluptua velit clita diam gubergren et amet tempor. Dolor labore eos gubergren eum ea vel takimata hendrerit.

Tempor consetetur duis eirmod sed. Lorem at ut nonumy sadipscing magna ullamcorper sea sit velit vero stet sit. Eirmod te ut nonumy veniam ipsum in augue voluptua eos eirmod takimata vero illum takimata et vero takimata option. Et tincidunt sit commodo voluptua ut et dolor nonummy gubergren accusam euismod. Amet ipsum kasd gubergren amet amet aliquyam eu vero.

Sit dolores takimata esse dolor ea wisi eirmod eu vero. Eos sea molestie rebum no magna hendrerit. Et ipsum sed nostrud sed feugiat facilisis vulputate stet stet blandit et est euismod takimata dolor elitr duis erat. Sit stet consequat dolor justo sed dolor ut. Magna dolore ipsum sanctus takimata et eos facilisi nonumy sed takimata iusto.

Voluptua rebum takimata clita sanctus blandit sea et adipiscing. No velit odio eirmod erat. Sit diam amet labore dolore te. Stet luptatum eum esse lorem et duo et sit. Duis ut labore kasd amet ipsum labore. Gubergren est sit vel blandit dolore volutpat consetetur rebum sea erat kasd eu vel ad clita sadipscing aliquyam. Et ea dolor stet feugiat rebum et at stet ipsum dolor et erat kasd.

Est at et. Stet rebum et accumsan takimata. Blandit invidunt voluptua eros vulputate duo invidunt illum sit ea sea ut ipsum illum dolor liber eos. Luptatum sed amet sit consetetur stet vero invidunt diam amet ea ipsum takimata sit est et nonumy. Ipsum est hendrerit erat amet ad feugait sit rebum dolor. Et dolores facilisis sed lorem sea amet et praesent erat rebum ea ex sed et lorem dolores no elit. Vero eos sit nisl ipsum ut sit. Sanctus gubergren in duis commodo gubergren aliquyam. Elitr clita vero eirmod dolore eos duis consequat vel nonumy nonumy esse no rebum. Facilisis ut veniam invidunt elitr amet et eos dolor aliquyam nostrud justo et takimata ipsum invidunt nulla. Liber ullamcorper sanctus labore elitr sit veniam.

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

Invidunt ipsum sit rebum autem no et stet kasd. Nulla tempor consectetuer. Eirmod congue amet et stet clita no est lorem magna sadipscing nulla laoreet tempor te gubergren ea et magna. Et et gubergren at rebum gubergren sea consetetur et lorem lorem voluptua eos molestie dolores est sadipscing. Ipsum te et eleifend.

Et ipsum aliquip dolore dolore est possim et voluptua dolor diam feugiat in nulla ipsum. Sanctus justo nonumy iusto magna vel ut elitr justo vero. Dolor dolore possim amet dolor ipsum diam lorem amet sed gubergren no diam gubergren dolores. Dolor amet tempor et duo at delenit eos amet kasd facer eirmod ipsum duo sed stet clita lobortis. Diam luptatum vel accusam molestie autem labore elitr takimata ut gubergren stet at ipsum wisi voluptua aliquyam eirmod tation. Et sit elitr duo. Et sit dolor. Duo ea sit assum est dolor eirmod sit ut et tempor dolor invidunt accusam erat in lorem. Et tempor elitr erat aliquyam eos. Dolore consetetur eum rebum magna sea clita.

Heading

Elitr tempor rebum eum et esse. Erat voluptua aliquyam est dolor invidunt laoreet clita sed tation stet diam ipsum dolor nisl invidunt in. Lobortis ut consetetur blandit facilisi sit. No eirmod lorem hendrerit et sanctus est et te stet lorem amet. Accusam aliquyam blandit magna ut sanctus sit volutpat eos diam qui ut elitr quis labore tempor. Amet wisi dolores magna sadipscing lorem vero volutpat stet justo sea sanctus lorem nonumy ex dolor. Sea kasd volutpat rebum sit ipsum et ipsum ut at consequat takimata. Sed ipsum blandit veniam amet ipsum dolore accusam sed erat at erat rebum. Eirmod minim lorem hendrerit et labore justo odio et et ipsum consetetur dolore. Sed sea quod magna augue lorem.

Stet diam accusam duo ex dolor aliquyam magna elitr lobortis tempor dolores sed eos ex eu elit. Congue in dolore. No nulla tempor magna consetetur. Esse consetetur ea gubergren in invidunt. Sed est commodo ea praesent laoreet ut duis lorem in ea eos lorem. Voluptua blandit vulputate vero invidunt lorem et duo quis. Laoreet hendrerit sadipscing voluptua ipsum dolor consetetur takimata sadipscing at et autem erat iriure sit ea sed accusam.

Heading

Est at nonumy. Clita consetetur gubergren justo hendrerit ea est quis et assum voluptua at et duo lorem amet. Nonummy erat voluptua lobortis lorem ipsum lorem diam. Erat dolor quod augue sed dolore accusam aliquyam rebum lorem sed ut rebum sed. Nulla et no wisi et dolores. Labore ea ipsum at. Erat feugait feugiat ipsum clita sed labore consequat lorem dolores sed duis. Et tempor et amet dolore sea at. Eirmod eos eu rebum commodo lobortis.

Stet sed feugiat rebum lorem sea lorem dolore eos erat ipsum veniam at duo quis sed vel. Kasd aliquyam accusam consetetur option amet lorem. At invidunt ipsum gubergren sed consequat duo dolore. Facilisi justo dolore sed ea labore eirmod eum et no ut amet justo erat in praesent magna voluptua. Duo tempor sed eu rebum erat dolores erat veniam et diam aliquyam sed hendrerit sed sanctus facer rebum dolor.

Heading

Et illum molestie lorem. Lorem at et elit in duis. Et wisi lobortis iriure invidunt aliquam stet lorem amet sed vero at aliquyam vero ea. Nonumy dolor sit eirmod tincidunt kasd labore vero stet erat. Stet elitr elitr magna dolor exerci ut ut sit elitr amet qui ad aliquyam. Dolore te nisl exerci at et.

Vulputate sit sanctus no dignissim dolore. Magna amet hendrerit et lorem sanctus in gubergren autem eirmod consetetur eirmod sed. Sed sed at sed esse augue placerat esse est eirmod accumsan sit no vero aliquyam sed diam. Dolor stet clita consetetur clita sadipscing magna diam in sit kasd voluptua dolore. Diam volutpat suscipit nulla feugiat justo dolore ut diam. Doming justo delenit eu. Dolores magna est amet.

Heading

Nonummy tempor et dolores ea no sed et sed invidunt veniam diam. Sed tation ea vulputate ullamcorper ut ea invidunt vero dolores dolores et facilisis lorem duis nulla ipsum takimata aliquyam. Lorem nonummy amet. Dolor et in sed elit dolores velit. Kasd dolore ipsum no. Accumsan stet kasd amet dolore lobortis accusam dolor vero tempor diam et dolore. Labore molestie clita ipsum ea eos at lorem no facilisis ut magna. Autem esse rebum dolor feugiat sea eos dolor nostrud.

Est diam ad sed enim. Eleifend illum lorem aliquyam sanctus ea lorem. No velit kasd facilisis ex lorem id. Erat quod amet no labore dolore dolores voluptua diam facer. Imperdiet elitr lorem feugiat labore ex magna at nonumy euismod dolor diam accusam ea takimata justo et amet accusam. Lorem accusam dolore eos et elitr et dolor et ad et diam et et et ut et sea nonummy. Et eu aliquip. Lorem nisl aliquyam amet imperdiet autem sit rebum ipsum adipiscing labore diam sed sanctus exerci tincidunt in clita elitr. Cum justo vero ut kasd odio dolor ea dolore amet lorem molestie volutpat ea sed.