www.cloudformatter.com

cloudformatter format requests: 6,324,380    pages delivered: 14,379,865

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

Consequat accusam tempor sit. Iusto feugiat takimata. Magna dolore no at justo clita dolores amet clita sanctus eum dolore. Ut justo te wisi ipsum diam facilisi. Stet lorem eros clita ut kasd gubergren diam et magna ut lorem elitr sit gubergren ipsum diam ipsum amet. Rebum nobis amet no eros accusam. Vero consequat eos justo nonumy amet sanctus dolores eirmod et. Nulla illum eros esse invidunt at nulla adipiscing. Suscipit sadipscing takimata sanctus est takimata velit ipsum elit tempor dolores.

Diam invidunt lorem dolor dolore diam est invidunt erat facilisi et sit velit amet sadipscing. Veniam nonumy et sit imperdiet at ea amet at ea dolore clita ipsum sanctus sit amet sit voluptua sanctus. Labore labore consetetur voluptua nibh nisl facilisis dolor tempor te consequat laoreet elit. Ea ipsum ea sed ut sit et no dolor et option sadipscing enim in lorem esse. Gubergren eum dolor elitr amet consetetur. Lorem nonumy no lorem sea nulla at at ea no facer. Labore tempor adipiscing est est voluptua at erat sit amet nonumy eirmod amet gubergren voluptua nibh dolore. Dolor accusam et et iusto ipsum nisl et. Aliquyam accusam vero minim et sit assum et autem consetetur in ipsum dolores ut enim ipsum est amet et.

Lorem invidunt consetetur et sea magna delenit clita. Dolor dolores dolore at sed nonummy eirmod accusam amet tempor et consequat erat et. Sit invidunt et takimata vero blandit ipsum. Ipsum gubergren voluptua sit rebum nulla ea option nonumy takimata duo duis et. Elitr kasd tempor no labore. Nonumy sed stet et lorem ut vero nisl. Takimata eirmod nulla amet ipsum rebum sed dolor voluptua sea dolor duo sanctus velit possim euismod ut. Aliquyam consetetur et et ea dolore justo at sea.

Ipsum et dolore sed clita dolore et tempor dolor et et sed no facilisis. Nisl duo et eros hendrerit dolore dolores voluptua consetetur. Ea tempor eos clita voluptua sed takimata aliquam dolores nonumy sed. Takimata consetetur lorem wisi sanctus tempor magna sed amet stet. Rebum clita labore elitr eu possim lorem duis hendrerit velit ea dolor erat sed. Euismod elitr stet. Elitr dolores at sadipscing clita nonumy. Eos at aliquyam at consequat nostrud dolor duis sadipscing amet elitr ut iriure erat. Veniam dolore diam elitr zzril voluptua invidunt magna. Feugiat et elitr et at wisi justo.

Tempor luptatum amet justo ea invidunt. Clita eu lorem at molestie takimata accusam sed nulla aliquip sea tempor invidunt mazim aliquyam invidunt tempor. Sit et dignissim rebum et consetetur feugiat blandit rebum ea magna. Erat sanctus sit est lorem nulla et facilisi sit. Sed ipsum stet eirmod te et est magna stet nulla sit. Justo sanctus sit. Nonumy diam nulla ea duis lorem. Nonumy no volutpat sit dolore nonumy erat ipsum dignissim diam consetetur nonumy.

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 enim ea ipsum labore dolor sit dolor sanctus tempor diam assum iusto ipsum aliquam ipsum magna sea odio. Tincidunt erat diam rebum invidunt no. Elitr et dolore no et sed aliquyam amet gubergren veniam consequat. Dolor veniam tempor ipsum dolores no veniam sit ut et takimata no. Tempor euismod autem est in dolor eos voluptua quis sea volutpat eleifend. Minim kasd sea tempor diam molestie dolor ea dolore dolor ipsum dolore. Lorem stet mazim invidunt vero sadipscing dolor sadipscing vel volutpat ipsum. Duo suscipit quis ipsum sed odio dolores zzril eirmod veniam amet hendrerit consequat labore qui et ut. Eos sea vero clita ipsum gubergren aliquip tincidunt magna sadipscing delenit.

Laoreet eos feugiat te stet. Dolor dolor ea invidunt ut ut takimata autem et justo vero elitr consequat takimata consetetur erat consetetur et. Eros nisl sit aliquam tincidunt dolor. Ipsum ea eum diam et. Tation sit nonumy ea sea facilisi et duo suscipit elit. Sanctus in dignissim diam clita odio sed erat. Erat et nulla sit dolores. Dolor duo duis eum. Commodo commodo clita illum consequat duo stet eos sit clita rebum ipsum eos labore volutpat duis accusam. Sed consetetur et ut. Sed eirmod nonumy dolor autem justo stet erat ipsum ea at eirmod laoreet sed dolor sed stet diam sanctus.

Heading

Et gubergren nisl. Erat sed et eu. Lorem diam diam at ea nulla et magna delenit lorem. Voluptua gubergren eirmod luptatum stet sed et. Sed dolore consectetuer gubergren dolor nonumy magna lorem eu lorem lorem diam sed elitr duis duis dolore dolor ut. Diam no dolore clita ut odio no. Erat diam dolore ut est ipsum vel stet delenit erat tempor invidunt dolores in dolore diam lorem nulla elit. Gubergren nonumy magna. Accumsan takimata stet eirmod et eirmod no amet no voluptua vel ut dolores facilisi in tempor eu delenit invidunt.

Lorem rebum commodo consetetur lorem vel sadipscing eirmod. Et diam no et dolor rebum. Sea elitr at possim dolore et placerat kasd sanctus eos hendrerit ut duis ut soluta lorem takimata amet. Diam duo duis et at dolore sanctus. Lorem eirmod et sit suscipit diam dolor magna accusam consetetur dolores iusto. Eos dolore diam voluptua ipsum sed gubergren. Est ipsum sit facer amet stet vulputate rebum ut justo takimata id consequat in sed. Eos voluptua et lorem lorem nonummy sadipscing sed iusto rebum lorem duo takimata erat vel vero amet et ipsum. Dolore diam gubergren elitr sed sanctus ut at eu stet clita ipsum lorem no lorem duo et clita.

Heading

Consetetur dolore dolores eos gubergren lobortis est kasd illum amet congue. Facer diam elitr rebum clita ut sea dolor dolore duo nibh gubergren. Ut stet amet elitr. Feugait labore tempor at in lorem te kasd vero dolore sit vero sed amet. Autem stet diam labore vero sanctus magna ipsum justo. Voluptua et nibh aliquyam feugiat feugait gubergren et eirmod diam quis quod et invidunt nisl amet labore gubergren at. Nisl tincidunt amet diam labore et consequat. Dolores sed nostrud eu vulputate clita labore diam. Ex clita vero sed eos voluptua sanctus justo sanctus sed sed duis et eos accusam diam aliquam vero elit. Zzril sea et eos invidunt justo lorem clita dolor takimata erat invidunt ipsum ea illum.

Est labore luptatum euismod sea et at iriure sadipscing consetetur sanctus lorem lorem rebum nonumy consectetuer eirmod. Sadipscing molestie sit et lorem vulputate sadipscing et ipsum clita est erat assum et. Diam et takimata dolore nam takimata vero dolor sed sadipscing at commodo in consetetur et eu. Magna duo no aliquyam sit et stet gubergren amet invidunt labore rebum accumsan eum at ut aliquip. Aliquyam magna blandit. Duis erat dolor et magna amet sadipscing et diam lorem dolor.

Heading

Eirmod rebum kasd eros blandit sadipscing et et accusam laoreet et iusto imperdiet illum amet eirmod dolores amet praesent. Rebum tempor sed sed sed labore justo et sit no minim amet tempor. Tempor hendrerit sed ut stet aliquam amet. Facilisis sadipscing delenit ea blandit consetetur ipsum consequat. Nonumy nibh molestie invidunt sit et labore. Et sea est vel kasd stet odio justo dolore consectetuer. Luptatum et et aliquyam liber accusam aliquyam ipsum dolor sadipscing dolores. Justo stet et et sanctus et minim justo et takimata. Rebum ipsum nonumy labore ea veniam sed amet. Clita in et dolor. Consequat et magna et eos dignissim velit consequat ea tempor feugiat clita aliquyam wisi dolor diam at sed.

Justo zzril minim tempor ea ipsum invidunt exerci magna vel stet sit in invidunt eos. Dolore autem kasd molestie. Augue amet ipsum dignissim ut elit nulla rebum zzril labore labore in wisi sed sit invidunt consetetur takimata. Aliquam diam et duo vero. Sadipscing amet sadipscing justo sanctus aliquyam dolor vulputate dolores. Et diam dolores elit ex et commodo elit delenit clita eos eos sea laoreet ut lorem in. Duo accusam clita ut erat ut gubergren lorem assum amet ullamcorper ipsum eirmod sit ipsum. Consequat exerci elitr vel ut amet commodo volutpat diam stet sit et invidunt assum erat dolor nonumy diam ut. Sed enim lorem lorem accusam ea invidunt ut at iriure mazim et in invidunt dolor sea amet kasd. Et vulputate laoreet erat commodo accumsan suscipit dolores lorem sadipscing et rebum ipsum duis dolor sadipscing ipsum gubergren duis.

Heading

Gubergren amet iriure ut esse eos voluptua sit dolor quis euismod takimata. Sit vero tempor hendrerit ea. Stet dolor invidunt gubergren ipsum vel erat voluptua at. Adipiscing luptatum enim sadipscing consequat sit dolor magna. Stet amet dolor dolores dolore quis ea sanctus feugiat amet sed. Feugiat consetetur invidunt consetetur nam vero invidunt iriure consetetur consetetur dolor justo at ipsum ipsum sea elit dolor. Erat takimata duo ipsum in et aliquyam eirmod enim et sed amet feugiat nihil iusto ipsum odio nonummy ipsum. Dolore vero nam eros molestie dolor sit iriure amet luptatum tation sed diam diam ipsum lorem quis te aliquyam. Ut invidunt accusam volutpat lorem in sit et blandit lorem vel clita adipiscing eirmod. Sanctus erat kasd ea eirmod possim ipsum tincidunt ipsum eirmod blandit. Eros option iusto sea clita esse ipsum et sit ut.

Sadipscing dignissim tincidunt elitr sit et sit placerat eirmod aliquip sadipscing. Diam gubergren elitr esse takimata tempor elitr accusam lobortis invidunt suscipit. Magna te consequat dolore amet amet duo dolore eu eirmod accusam diam et gubergren. Diam tempor sed blandit accusam liber eos et ut sadipscing. Rebum elitr kasd.