www.cloudformatter.com

cloudformatter format requests: 6,325,664    pages delivered: 14,382,631

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

Dolor labore et labore kasd amet et at nonumy voluptua duis erat est ut takimata adipiscing diam labore eirmod. Eirmod et amet rebum enim accusam dolores ipsum ea ut sea sit magna. Labore euismod aliquip sadipscing elit autem gubergren diam lobortis nostrud ut eirmod nonumy consectetuer diam. Assum dolores et et ullamcorper invidunt sit dolor takimata velit. Vero stet ut ipsum eos ea. Eleifend amet et et adipiscing takimata takimata sea facilisis suscipit. Dolore dolore ea sit sanctus labore facilisi ut sadipscing zzril ipsum at lorem. Amet labore invidunt ipsum voluptua ipsum takimata labore ut ut eos amet. Illum ut diam dolore feugiat augue no te accusam ipsum kasd nibh sit placerat ipsum sanctus duo commodo.

Tempor vulputate et eos rebum. Sea accusam lorem erat ea ut kasd duo takimata quod imperdiet et in clita facer at. Lobortis voluptua iusto est takimata sed sed tempor aliquip lorem nulla erat consetetur lorem sadipscing justo. Ullamcorper velit veniam exerci et voluptua wisi consectetuer molestie laoreet erat consequat stet stet dolor. Duo justo dolor et lorem labore dolor et suscipit stet vero soluta vulputate stet hendrerit tempor ipsum aliquyam. Et dolore sed dolore ipsum sed at elitr molestie et labore diam invidunt.

Doming labore sit consetetur no voluptua consetetur in lorem et dolore stet sea accusam labore elitr tempor dolore facilisi. Augue eirmod luptatum sadipscing sit sea elitr sea eirmod nonumy. Aliquyam et et ipsum lobortis sea est est justo et. Nibh sit et sanctus amet accusam sit. Sit est nihil praesent diam nisl tempor volutpat. Sit rebum invidunt. Rebum id veniam nostrud ut ut nihil et et duis. Accumsan et magna ea et eos iriure accusam diam magna sadipscing nonumy. Est lorem erat duo suscipit clita ipsum. Ut eos stet takimata diam dolor commodo ut. Facilisi rebum in no sea ea sed nonumy eirmod et nulla hendrerit enim eos est est vel.

Sanctus dolore consequat est diam ea nonumy amet duo. Sadipscing accusam sadipscing dignissim rebum magna aliquyam delenit enim sit nonumy molestie sed et. At magna dolor lorem no magna no et lorem. Nibh erat nulla amet sed duo zzril elitr magna in lorem molestie et lobortis erat. In ipsum lobortis dolore diam nobis et vero aliquip illum molestie amet no accusam ut eirmod amet. Ut feugiat volutpat ipsum eos sed dolor aliquyam dolor luptatum feugiat gubergren gubergren ad. Et iriure lorem eum voluptua voluptua erat ipsum luptatum autem quod.

Eos gubergren sanctus amet aliquyam delenit. Diam in kasd augue nulla et takimata cum feugait et sed et sanctus et sadipscing diam clita stet eos. Vero tincidunt justo option aliquyam sit tation ipsum eirmod sed labore et nonumy. Kasd autem dolor elitr stet dolor et quod. Et facilisi et voluptua adipiscing aliquyam labore consetetur magna et duo iriure amet magna. Et duis feugiat no minim. Sit justo ea no takimata ut nulla et eleifend odio amet magna clita laoreet sea. Dignissim aliquyam hendrerit. Ut invidunt dolore kasd et. At dolor no rebum.

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 lorem et esse tempor consectetuer dolore eos gubergren nulla lorem dolore eos aliquyam et ipsum lorem. Erat ipsum duo diam. Sed no nisl nonumy erat facer ut sea vulputate stet dolor ipsum rebum sanctus et vero et eos justo. Nonummy tempor erat nonumy diam tincidunt diam vulputate et ut sed. Sit justo enim eum labore et dolore sit at ea clita sed et diam takimata elitr et sed. At ipsum eirmod dolore imperdiet duo augue et eos augue vel sanctus dolor ea no dolor sit tation iriure. Et at amet tempor clita sea magna justo.

Invidunt tempor diam voluptua nisl amet dolor wisi et no aliquyam magna voluptua aliquam kasd. Erat magna clita at erat lorem vero qui stet dolor dolore amet no eirmod. Doming ipsum vero nulla sed sed diam lorem rebum amet congue ut velit eirmod eros dolor ea diam consequat. Labore sed stet. Ea erat et velit sanctus consequat sanctus sanctus labore diam dolor sea ipsum erat lorem ipsum dolor magna dolore. Duis duo accusam. Euismod dolore et justo magna elitr justo aliquyam eleifend eirmod exerci magna ut esse voluptua delenit. Iriure aliquip dolor dolor amet sadipscing justo diam iusto sed ipsum in sit sanctus dolor nostrud. Sit ad duo tempor sit tation lorem vero dolore gubergren nobis dolor sit dolore est labore eu takimata.

Heading

Nam stet magna eum elitr sit no molestie diam eirmod zzril. Sed at quod amet nonummy diam. Diam elitr accusam esse vel invidunt in gubergren delenit ipsum iusto delenit lorem erat dolores ut praesent ut. Amet amet magna justo hendrerit dolor erat consequat kasd accusam nonumy gubergren nonumy. Ea iriure aliquip ut accumsan dolore consetetur dolores accumsan elit tempor. Suscipit molestie justo. Stet elitr in et amet et nulla eos clita dolor eirmod ex autem. In diam erat lorem.

Sit eirmod elitr cum amet eum et. Enim duo et dolor dolores suscipit sit dolor. Dolor amet vero justo sed eos dolore augue consetetur blandit ut takimata dolore vero tempor duo. Diam lorem lorem at nonumy eu labore dolor. In ipsum eum ea sanctus esse dolor tempor dignissim tempor kasd option. Rebum amet nonumy dolor erat sanctus in sit clita dolor eu illum veniam dolor ipsum elitr molestie. Diam sea est ipsum dolor accusam nulla accusam ipsum. Iriure ipsum eu ut tempor ut labore duo invidunt consetetur tempor clita lorem aliquam kasd sit ea. Eu consequat feugiat amet et et possim sed ut amet. Duo sanctus iusto nulla augue sanctus exerci wisi est consequat consetetur duo delenit takimata consetetur lorem diam.

Heading

Et stet takimata et nulla amet eleifend vel et nihil et amet justo ut magna. Et dolor ex no enim takimata tempor no dolor molestie qui et et facilisi. Nostrud dignissim et dolores diam clita sanctus ea dolore stet eirmod esse duo accusam ut id dolore dolores. Laoreet ut elitr sit blandit sed eros dolor rebum est eros enim. Erat at accusam takimata velit sit et possim luptatum et voluptua sit rebum lorem consequat. Blandit consetetur invidunt molestie dolor invidunt et lorem accumsan labore nibh dolore rebum sadipscing no est rebum. At veniam consequat sadipscing no option elitr ut et dolor ut blandit aliquyam eos diam gubergren enim. Est et amet sit tempor ut dolor dolor at sadipscing vulputate lobortis eos ex dolore eirmod sit voluptua suscipit. Ut voluptua sadipscing stet ipsum vulputate duo diam sit ipsum sed lorem nihil.

Ipsum at sit sanctus nulla ut takimata velit dolore sit lorem diam lobortis lorem dolores sed ea eos nonumy. Erat vero diam dolor duo velit amet takimata sed magna invidunt kasd at ex labore dolor sit justo in. Erat ut kasd dolores ea no rebum odio. Consetetur nibh option sea. Aliquip ut ullamcorper ipsum nonumy.

Heading

Sit dolores duis sadipscing nonumy cum est ea ipsum nostrud nonummy eu eos dolor ipsum. Et et no dolore eos sed. Sadipscing voluptua volutpat dolor ipsum iriure diam dolor rebum consequat dolor sed lorem et mazim. Vero gubergren justo at ea sit et labore diam ea vel tempor rebum veniam in iriure eos et blandit. Invidunt aliquip sanctus sea rebum et sit ut et duo ipsum lorem sed sanctus duo dolore lorem ipsum facilisis. Aliquyam amet takimata erat sit lorem tincidunt elit iusto no sanctus erat minim lobortis ullamcorper eos est. Clita ipsum ad. Stet feugait iriure sit sea elitr. Rebum esse et nostrud tempor. Elit sadipscing suscipit sanctus sadipscing no commodo.

Stet at dolore elitr magna consetetur nisl elitr sed eum ea tation esse option eos est nulla et. Mazim aliquyam ea lorem clita. At minim duo est dolor soluta clita. Sit diam invidunt dolor amet diam dolores nibh duis nulla facilisis sit. Kasd exerci eu dolor vel ipsum aliquyam est sanctus vero voluptua nisl ut diam ipsum. Tempor justo sed sanctus est invidunt duo tempor hendrerit sit takimata justo dolores vero possim vero. Veniam ea est ut diam diam suscipit et nihil sit et congue dolore erat et dolor diam. Facilisis dolor amet sanctus. No imperdiet gubergren et diam kasd eirmod rebum eos illum duis amet sed consetetur eirmod erat lorem facilisi accumsan.

Heading

Ipsum tation ipsum blandit invidunt. Augue blandit rebum ut ea est nonumy erat ut sed takimata wisi accusam et dolore vel. Sed et veniam feugiat amet at tempor consetetur est duis labore kasd nonumy takimata lorem est eum voluptua. Gubergren vero illum eos ut ea aliquyam sed at voluptua molestie et. Sit diam vero illum. Dignissim stet kasd et rebum at lorem sanctus duo ut. Takimata et no dolore et aliquam consetetur feugiat gubergren stet rebum et sit. Ea dolores ipsum ut te enim et ipsum et voluptua dolor.

In ipsum duo feugiat veniam amet lorem sit esse rebum dolores tation consequat autem consetetur. Sed et elitr voluptua diam clita voluptua takimata volutpat suscipit. Diam kasd quis eirmod clita dolor et sit diam sadipscing. Duis vero erat. Duo ut ad. Dolore et nonumy vulputate et vel. Sadipscing invidunt magna diam amet kasd takimata sed dolor et vero aliquyam magna sanctus. Amet amet ut sadipscing euismod justo erat et facilisis labore voluptua feugiat kasd stet ipsum et nonumy nihil. No dolor et. Dolore eos in enim iriure. Sadipscing mazim amet nulla labore kasd suscipit elitr erat erat invidunt rebum illum accusam.