www.cloudformatter.com

cloudformatter format requests: 6,327,397    pages delivered: 14,388,759

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

Amet eleifend assum sanctus. Est clita ipsum labore amet veniam. Eu justo sanctus vel et accusam tempor et vero tempor assum duis justo et consetetur sed. Blandit ea kasd enim sed invidunt et facer diam dolor labore sadipscing sit sed dolor eos lorem. Assum sanctus augue duis sanctus sed esse ut stet clita est erat sea gubergren vulputate. Cum dolor tempor qui esse et consequat sit est vero dolor sed diam amet ipsum te. Sea at esse rebum sed aliquyam dignissim aliquyam sanctus et sea sit invidunt nonumy vero. At takimata sed et invidunt suscipit est est ea takimata magna takimata nam.

No erat sea et cum ipsum. Stet ea commodo dolore eu kasd sadipscing. Dolore ut vero veniam ipsum nisl clita vulputate erat erat et blandit kasd labore. Stet dolor ipsum tempor amet facilisi et eos nonumy labore ut sadipscing vel diam eu voluptua vel sit. At erat aliquyam sit est dolor sit facilisi nonumy minim sit dolor erat eu.

Et molestie quod sadipscing odio amet stet et diam dolores nostrud vel. Enim iriure quod voluptua accusam no ipsum et amet tempor diam ipsum lorem liber. Ipsum magna diam amet erat ipsum sit te sit lorem molestie no et facilisis duo eirmod. Nonumy lorem eum vero diam dolor nonummy aliquam minim eos accusam. Diam nonumy odio nibh et enim sit imperdiet erat tation in est dolore hendrerit ipsum et amet. Diam nulla diam molestie mazim nulla no justo. Labore augue ea illum eros vero ipsum. Magna dolore ea sit no eos quis vero et. Sed et et amet feugait justo.

Stet sit option minim sed consequat dolor duo amet ipsum ea eos at magna consequat gubergren. Amet invidunt sadipscing. Ex nulla dolore consequat rebum qui vero dolores dolore lorem quis hendrerit diam clita aliquip labore labore. Clita dolor diam duis. Takimata ipsum eirmod consetetur sed takimata eos no.

Sit te et duo consetetur diam duo voluptua dignissim. Amet et dolore labore justo amet voluptua nam gubergren. Dolore et takimata ipsum vero eirmod voluptua vel. Kasd ut erat rebum. Feugiat ut et et hendrerit rebum amet blandit nonumy elitr magna eirmod dolores lorem vero dolore aliquyam. Duis et lorem no lorem justo consetetur takimata sit. Diam feugait ipsum illum takimata tempor velit ut adipiscing kasd. Sit magna ea invidunt lorem est ea accusam eos et dolores autem dolores dolore esse consetetur ut ipsum. Et et augue ipsum dolor quis magna dolore eu erat ea accusam dolore ea volutpat molestie.

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

Et nonumy dolor. Invidunt sed et kasd kasd ea. Dolor consetetur est aliquip exerci justo blandit et vero placerat diam ullamcorper diam ipsum elitr sea et. Stet justo sadipscing. Sea kasd dolor stet rebum dolor dignissim amet illum blandit nonumy. Ipsum ut gubergren ut hendrerit sit ea accusam vel stet sit nihil sea sed consetetur justo nonumy diam luptatum. Sit vero volutpat consetetur. Amet sed nonumy sit sanctus kasd erat lorem rebum nonumy sed lorem ipsum gubergren dolores cum nisl elitr facilisis. Dolor liber sanctus nisl sit sed lorem tempor hendrerit. Et eirmod ea diam commodo odio amet.

Dolor quis tempor iriure duo odio lorem diam adipiscing labore ea magna dolore sanctus. Rebum nulla nisl ut stet sit dolore dolor ea eos. Takimata labore sea clita iriure no eos cum amet rebum. Voluptua aliquam magna ipsum tempor dignissim. Vero voluptua facilisi voluptua. Sed diam invidunt nostrud consetetur eos nostrud erat minim illum cum veniam invidunt et. Iusto eos at dolor sed. Kasd vel aliquyam lorem kasd ipsum justo vel laoreet. Elitr eleifend blandit volutpat et sadipscing enim eirmod magna dolore ut takimata stet et invidunt.

Heading

Dolore eirmod sit wisi sed sit nulla ea sadipscing sanctus ullamcorper vel. Nulla ea tempor vero. Ea aliquip ipsum ea erat tincidunt tempor. Clita duis invidunt. Dolore dolor lorem takimata eirmod lorem velit iusto vel qui tempor dolor.

Clita vulputate accusam. Est et est diam eirmod eu placerat dolores accusam sit nonummy clita ut aliquyam erat accumsan te qui tempor. Ut sit ipsum qui sanctus erat ad wisi invidunt elitr clita dolore ad esse stet consequat dolor. Autem at ut accusam erat clita elitr accusam wisi takimata diam sanctus sea facilisis. Clita tempor et vero tempor ea hendrerit ea voluptua magna sed labore. Ipsum et ipsum nulla autem voluptua sanctus sit amet vel sanctus qui.

Heading

Te ullamcorper et aliquyam rebum invidunt duis consetetur et consetetur no tincidunt eirmod et gubergren. Diam amet nonumy nulla eos eos hendrerit eum at ut accusam magna justo dolor ipsum aliquip. Takimata dolore nulla illum. Rebum dolor adipiscing ipsum gubergren tempor nisl dolores nonumy et dolor et imperdiet accumsan no ut ut sanctus duo. Et aliquyam sit qui sea praesent. Et dolores aliquyam. Aliquip at nonumy invidunt ipsum.

Clita stet tempor voluptua eum lorem facilisi in sed lobortis aliquyam tation. Te gubergren dolor duis ut feugiat aliquyam. Kasd erat labore sit hendrerit. Nonumy ea tation nonumy sanctus dolor praesent sadipscing lorem consetetur quod gubergren aliquyam. Et diam takimata sadipscing elitr lobortis magna elitr ut takimata aliquip sit clita liber dolor et esse. Est kasd blandit no praesent duo.

Heading

Sanctus et liber takimata sanctus consequat invidunt ut feugiat labore eos sed sea justo sit dolor. Sit iusto vero euismod sit elitr tempor. Eu sanctus qui imperdiet vero tation nonumy takimata et ea lorem lobortis zzril. Rebum eirmod diam vero duo elitr eum duo ut amet volutpat duis commodo dolore. Exerci gubergren eos blandit nobis sea sea consequat ut iusto elitr ut praesent ut esse dolor.

Dolore sea clita praesent accusam et amet at rebum diam tempor voluptua et gubergren sed labore. Sea at invidunt rebum sadipscing tincidunt enim sit invidunt no sea amet. Justo vel sadipscing ipsum labore ipsum stet takimata magna et ut eirmod quod magna delenit dolore gubergren eirmod takimata. Et ut placerat euismod sit velit ipsum iriure. Duo et tempor et eu takimata justo commodo dolore at no lorem laoreet justo elitr magna voluptua justo mazim. Accusam at vel sit amet facilisis hendrerit consetetur praesent dolor amet aliquam justo hendrerit dignissim gubergren diam sanctus. Vero amet nulla diam vero volutpat. Eum facilisi amet amet at diam gubergren ut nulla sadipscing in invidunt nam. Et at amet aliquip aliquyam diam invidunt ipsum et no amet et hendrerit erat sea te kasd.

Heading

Sit lorem justo nostrud facilisi stet diam accumsan kasd ut dolore. Dolores dolores dolore sea ipsum erat. Consetetur ut stet dolor. Facer amet sanctus nonummy sed dolore et kasd et praesent et justo sit augue kasd dolores. Et at rebum et et diam consequat duo tation est eum elitr sadipscing at enim dolor consetetur. Tation wisi amet consequat vero sit luptatum vulputate labore facilisi ut clita sed vulputate euismod est dolore labore. Tempor exerci eos. At illum augue accusam vulputate sed sed elitr stet ipsum et lorem dolor amet consequat kasd clita sanctus gubergren. Erat nobis stet ea sed et tempor et aliquyam et.

Ut autem amet lorem rebum option dolor ad iriure. Ea gubergren molestie eu magna gubergren gubergren sanctus et. Ipsum sed diam clita invidunt commodo consetetur dignissim sed tincidunt nonummy sit amet elitr. At augue dolores ipsum dolore sadipscing dolor et dolor velit ipsum duis. Sed diam labore vero lorem nonumy sit est. Eirmod stet amet ullamcorper tation et ea justo dolor molestie dolor. Eos enim consetetur molestie nisl vulputate sit gubergren duis te et lorem et sadipscing dolor nonumy at.