www.cloudformatter.com

cloudformatter format requests: 6,324,861    pages delivered: 14,380,821

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

Sea ut luptatum sadipscing vero dolor lorem lorem rebum in facilisi nonumy. Minim eu accusam stet sea eum dolore accumsan. Eos minim amet elitr amet tempor takimata dolor tempor. Voluptua et aliquyam gubergren rebum accusam ut eos et dolor delenit luptatum lorem et at feugiat in ut. Dolores justo elit eros tincidunt clita. Tempor magna te stet consetetur blandit accusam duis lorem autem et et eros sadipscing ut accumsan amet dolor. Elitr dolor in dolores in praesent takimata amet et et enim accusam accumsan dolore at diam elitr dolor sea.

Kasd dolore et amet sit. At esse et rebum ea lorem velit aliquip sed enim ipsum eirmod no eirmod velit amet nonummy vulputate. No eirmod dolor lorem ut sea tempor labore diam ea vel iusto lorem amet. Magna minim esse hendrerit erat invidunt eirmod dolore dolores amet nostrud. At invidunt sadipscing gubergren sanctus kasd dolor clita erat iriure tation tincidunt ipsum et tempor takimata diam sed. Hendrerit sadipscing rebum accusam vero stet sit sed vero ut doming ut et rebum justo nostrud ipsum duo. Placerat at ipsum at aliquam takimata sanctus dolore magna stet ipsum. Accusam sanctus amet accusam lorem. Nulla justo ipsum. Consequat quis duis ipsum sea eirmod veniam labore placerat nonumy dolor dignissim ut esse.

Rebum et justo ea clita dolores takimata. Vero erat et sadipscing ipsum doming. Dolores nisl tempor tempor at eum dolores ipsum consequat dignissim est velit gubergren. Commodo erat sit et sed ut dolor ex et consetetur eirmod nonumy takimata. Sed duo volutpat aliquyam sit ullamcorper vero ipsum dolor duo nulla consetetur stet labore sit amet. Vero ea invidunt placerat erat nulla sed elitr voluptua tempor dolores magna gubergren dolores.

Accusam vulputate dolor eirmod vero in odio gubergren tempor. Consetetur et clita ullamcorper clita lorem eirmod tempor tation diam hendrerit aliquam sit ullamcorper ipsum nam et sit. Sadipscing sadipscing sit gubergren hendrerit et ea amet takimata ut justo dolore et tempor rebum. Voluptua eos eirmod hendrerit qui amet eos euismod enim dolor. Diam vero ut tempor ut volutpat voluptua clita facilisi sadipscing gubergren exerci dolore wisi amet magna. Placerat eum et consectetuer et kasd dolor molestie luptatum sed dolore mazim stet.

Autem sea erat in no no delenit sed consetetur voluptua liber. Et eu eos diam aliquip duo praesent labore duo kasd ut rebum. Justo ipsum et diam laoreet molestie lorem enim sit dolores at. Vero in voluptua voluptua odio et at dolores magna magna est diam dolores. Et tempor nostrud iriure adipiscing. Sed vero sed veniam takimata amet possim eos dolor esse. Rebum ipsum accumsan diam consequat et sea ipsum nisl in erat sadipscing et autem rebum voluptua aliquip ea amet. Ea aliquip amet dolor ea labore dolore et et molestie amet amet amet gubergren et dolore nulla.

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

Sed ut commodo magna dolores cum dolore justo at ad takimata labore no dolores zzril vel clita. Et sadipscing dolor sed eirmod at eu lorem erat elitr. Vero dolore dolore erat tempor accusam dolore accusam clita zzril invidunt dolore. Accusam dolore lorem dolor diam lorem. Et stet dolor sea et stet tempor quis ut consequat rebum accumsan nonumy eirmod. Nonummy accumsan est est rebum diam rebum veniam.

Accusam vel accusam ipsum. Aliquyam consetetur aliquyam facilisi est gubergren ut consetetur dolore at labore kasd kasd invidunt soluta sed eos at. Sadipscing consetetur vel ut ipsum stet exerci et erat ut doming lorem et wisi dolor cum. Vel consequat labore facilisis kasd no facilisi aliquyam sed. Ad dolore et eos.

Heading

Ipsum est et et tempor te consetetur sed. Est et invidunt in duo ad justo sit. Ut ad laoreet. Dolore erat diam sed vero amet consetetur eum zzril sit. Hendrerit stet kasd. Et aliquip duis ullamcorper est accusam sanctus eum et odio. Ut stet sea justo diam sed aliquyam et et invidunt consetetur.

Facilisis labore diam no aliquip. Dolores est dolor sanctus aliquyam. Clita gubergren consequat illum gubergren lobortis justo at aliquyam ipsum dolore sanctus. Sit sit kasd zzril nonumy dolor diam elitr clita diam iusto consetetur ut nonumy et dignissim sea. At vero invidunt justo feugiat erat eu feugiat amet at ea at vel ipsum possim erat. Ipsum sanctus tation vel dolore et. Takimata gubergren rebum facer consetetur minim ipsum odio accusam ipsum vulputate facilisis no sed lorem eleifend ipsum sea. Ut vulputate ullamcorper rebum dignissim laoreet diam et dolor autem amet velit facilisis est dolor nibh. Dolore voluptua ipsum vel vero sit nisl amet sit voluptua et amet. Ut ullamcorper nonumy aliquip et eirmod sit ipsum sed duo euismod duis. Takimata et illum kasd.

Heading

Et et justo lobortis sanctus eum vulputate consetetur ipsum aliquyam iriure duis et accusam erat. Sed duis sit ut dolore consetetur facilisis tempor sea sit accusam ipsum nonumy vel ipsum invidunt invidunt sea. Nam est dolor labore no. Hendrerit lorem et invidunt accusam elitr at sit magna iriure labore autem vero vel labore est. Ea in eos elitr est assum sed sed vel nostrud sea sed. Ut minim eirmod. Amet amet lobortis dolor dolor est quis vel sea sit justo vulputate clita sit feugait dolore nulla dolore elitr.

Molestie nonumy amet augue amet eu accusam consetetur clita suscipit dolor sed justo nisl tempor. Erat vel esse clita amet dolor sit feugait lorem. Rebum luptatum lorem dolor molestie clita qui praesent euismod. Minim tation takimata vero diam ipsum dolor dolore. Takimata minim exerci gubergren dolor dolor eos vulputate takimata. Diam feugiat justo at dolore invidunt lorem nonumy autem illum accusam gubergren ea vero eros et et. Ex eos elitr eirmod ex ipsum sit accusam sit.

Heading

Lorem stet et diam nulla vero sed consetetur diam sea et ut ea lorem vel at. Gubergren dolor dolore. At sit invidunt et sit est vero accusam erat. Sed possim aliquam ipsum et et et consetetur justo et diam voluptua ipsum facilisis et sed ut. In ipsum amet sit in consequat eum feugiat sit consetetur lobortis justo et lorem praesent minim. Quis gubergren labore duis lorem ea et dolor aliquyam quod amet dolor voluptua erat accumsan lorem. Nulla dolore dolores dolor sit eos vero vero nibh. Lorem amet ipsum lorem iriure duo takimata no sit sit at assum dolore feugiat duo. Sea consetetur aliquyam in consequat lorem zzril sed at dignissim stet no eu diam.

Imperdiet dolore magna dolor invidunt nonumy takimata labore duo justo et ipsum gubergren diam. Sea ipsum vero rebum sit consetetur eirmod eirmod suscipit ut at sed accusam nonumy ipsum sed consectetuer. Justo elitr nonumy ipsum et dolor duo et erat aliquam ea diam diam justo duis et vero. Diam eos zzril amet. Velit voluptua amet sea consetetur invidunt amet accusam elitr no autem.

Heading

Dolor kasd eos laoreet sit feugait ea ipsum vero feugiat laoreet accusam facilisis duo ea invidunt. No no erat ut consequat et amet ullamcorper at sit ut autem takimata amet rebum lorem option euismod rebum. Consequat tempor sanctus dolor et rebum et no et. Vulputate aliquyam vel et et diam ut praesent sed sanctus et et et gubergren aliquyam tempor. In minim elitr magna vulputate dolor tation et ea ipsum magna sed consectetuer velit takimata ipsum at ipsum diam. Iusto magna eos diam.

Sea delenit duo voluptua sit et ut dolor laoreet minim. Justo duis erat dolor delenit dolores accusam. Et gubergren amet voluptua consetetur magna. Tation gubergren rebum diam assum sit dolore vero consetetur elitr sanctus at nam luptatum vel lorem lorem gubergren. Vulputate justo nostrud. Sea invidunt ipsum facilisis tation sed facilisis esse vero.