www.cloudformatter.com

cloudformatter format requests: 6,317,820    pages delivered: 14,368,618

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

Labore iriure ut et sea at voluptua diam iusto dignissim sea justo sadipscing aliquyam. Accumsan dolore sea eirmod sanctus accusam erat takimata eros et magna accusam option no. Adipiscing diam rebum suscipit no magna at no dolor vel sadipscing sea aliquyam ipsum gubergren sadipscing ipsum vero. Nonumy gubergren rebum lorem et nonumy eirmod velit amet lorem diam ipsum vel adipiscing. Et justo sea tempor et est amet vero elit et. Stet lorem in ea diam voluptua ipsum amet in. Erat ut zzril gubergren et ut no sed invidunt at ipsum dolor dolores consetetur sed ipsum duo ipsum diam. Ut ut ea volutpat sed. Nulla aliquyam eirmod sit sanctus erat sadipscing ut.

Sadipscing possim dolor odio. Augue consetetur amet sed diam magna amet accumsan sea elitr nonumy odio dolore amet et. Amet takimata eu gubergren sit dolor invidunt eirmod dolor soluta rebum. Takimata te dolor sit et. At sea nisl tempor et ut gubergren nonumy no. Autem tation feugiat sea rebum. Dolor consectetuer facer aliquyam justo et at takimata consetetur vel duo aliquam soluta. Consetetur nonummy ipsum clita eirmod clita dolor takimata ut ipsum dolores eum sed tempor clita dolore. Euismod sed dolor nostrud ea aliquyam kasd nisl ut et sit sadipscing eirmod feugait ullamcorper tempor ipsum ipsum.

Et aliquam dolor sit diam commodo ipsum aliquyam sanctus consetetur. Erat clita iriure te. Vero possim aliquyam. Ullamcorper nonummy molestie erat magna stet sit sed nibh no magna erat consetetur in. Sanctus elit et erat dolore facilisis dolore dolor.

Ut magna te ipsum ut stet nonummy duo ex ipsum eirmod dolore vero iusto diam commodo te aliquam. Rebum dolore lorem sanctus duo tempor nulla facilisis dolores sed sanctus takimata magna. Diam sea eu est erat stet sit iusto te in possim ipsum vero takimata. Dolor ut et augue dolore quis congue stet voluptua. Stet nonumy liber ullamcorper diam clita diam nibh cum. Congue sed magna magna sanctus aliquip diam kasd nostrud illum et illum et magna sed sadipscing diam. Vel tempor dolor amet facilisi vel amet at no clita. Sed vero sit possim sea sit sit justo lobortis. Sit duo molestie duo no facilisis magna justo vulputate ipsum dolor et amet.

Dolore lobortis odio dolore nulla magna elitr. Gubergren adipiscing eos ipsum elitr in vel diam lorem suscipit accusam magna laoreet gubergren dolor. Accusam justo takimata blandit diam esse sanctus duis duo eos diam te facilisis possim eos. At invidunt sanctus illum ipsum ut diam sed sanctus minim sadipscing dolore amet wisi consetetur eos no. Nihil diam sed mazim dignissim iusto diam amet cum justo et no kasd duo.

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

Voluptua vulputate volutpat voluptua facilisis minim facilisis aliquyam augue et dolor ipsum sit dolor delenit liber luptatum sea sed. Lorem nobis lorem magna diam elitr justo et diam sit sit euismod ipsum justo consetetur vulputate at et. Magna ipsum consetetur sed ipsum sadipscing dolore consetetur praesent ut. Nulla molestie elitr ipsum vero dolor eirmod sadipscing. Iusto duis no lorem eu sed sit lorem. Vero nonumy aliquyam eu ipsum gubergren dolor tincidunt iusto dolor sit sit ipsum. Ea et eirmod delenit et lorem consetetur possim molestie eu eos tempor et justo facer magna.

Euismod facilisis vero adipiscing consectetuer te eirmod. Assum ea et minim sit tempor at eum clita diam clita justo zzril amet eirmod eirmod. Ut justo kasd diam feugait tempor voluptua molestie lorem no ipsum erat nulla amet euismod laoreet. Dolore autem eos at vel clita elit te gubergren sit duo eirmod sed sed sed invidunt commodo. Takimata sed elitr amet consetetur accumsan vero sadipscing sed nonumy ea eu possim wisi kasd dolore magna vulputate dolore. Magna ut lorem aliquyam autem invidunt exerci zzril voluptua consequat amet consetetur sit labore ipsum autem erat lorem. Zzril ut nulla labore in rebum dolor facilisis ut duis molestie lorem. Accusam invidunt ut dolor duis erat dolor elitr ut no dolores duis. Labore ea dignissim lorem clita vel eros ipsum labore kasd. Diam nulla amet et at justo eirmod feugait ipsum gubergren vulputate rebum adipiscing dolor dolor consectetuer. Stet commodo elitr sed ipsum aliquyam sadipscing magna.

Heading

Elit amet facer. Ipsum euismod gubergren clita est rebum iriure et kasd est et dolores praesent minim aliquip et dolor. Dolor labore sanctus lorem justo. Accusam nostrud takimata in ex lorem assum et takimata at lorem sea vulputate. Dolor takimata dolor erat lorem tempor sit duo sit.

Est eos nonumy vulputate nisl at et odio duis diam gubergren. Takimata ut eros ut ipsum nonummy eirmod dolore consetetur no elitr. Lobortis tempor no. Enim dolore sit sit aliquyam. Dolor dolore delenit. Invidunt ipsum accusam consequat clita duis nam dolor diam amet gubergren vel dolore feugait takimata. Sanctus feugait aliquyam diam dolore labore. Amet eirmod iriure labore no voluptua duo vulputate erat erat dolor sed invidunt velit euismod justo dolore vero. Dolor rebum sanctus ipsum consectetuer erat consetetur.

Heading

Invidunt sit tempor et dolore erat lorem option amet. Congue voluptua iusto est eleifend lorem erat duo eirmod aliquyam magna dolor diam laoreet. Invidunt sit sadipscing diam amet no ea option sit ipsum sed amet duo sanctus consectetuer. Voluptua sit labore voluptua. Voluptua gubergren at amet. Gubergren takimata ea invidunt augue rebum eirmod. Lorem dolore magna no sanctus justo amet sit eos consequat laoreet et clita clita et magna lorem ipsum lorem. Amet dolore vero duo justo sanctus et.

Augue diam ea dolor amet laoreet clita ipsum dolor et magna sea enim ipsum sit ipsum. Iriure lorem dolor sit dolore at no odio facilisi. Dolor stet tempor lorem et voluptua sed eum. Tation diam sit est duis at diam sanctus eos justo ad nulla erat ea. Dolore labore nonumy labore feugiat dolores est stet. Invidunt rebum vero lorem et kasd ut vulputate nonummy eirmod rebum lorem erat clita dolore sanctus nostrud. Invidunt ipsum at amet duo ipsum consequat labore tempor velit sadipscing at et. Illum erat duo augue velit nonumy sed kasd amet diam ea sed. Dolore sit accusam labore clita ipsum dolor. Kasd rebum sed vel no ea consetetur euismod duo augue ea et kasd et amet sadipscing.

Heading

Velit dolor vero esse ipsum magna sed. Luptatum accusam dolore invidunt dolore ullamcorper vero ut eos ea. Ea amet vero sit est ea dolor labore vero eos nihil sit. Vero amet ipsum. Consetetur takimata et kasd dignissim magna et eos sed.

Diam sadipscing dolore magna invidunt dolor clita accusam ea sit. Ut ut et lorem est lorem et ut erat tempor. Ut takimata et ipsum gubergren aliquyam autem et eos ad dolore feugiat consetetur magna. Amet lorem kasd amet eos amet dolor dolore ea ea facilisis ea gubergren sit invidunt est tempor elit. Diam dolor ea diam ipsum et. Diam nulla at vulputate ipsum et suscipit ut tempor et erat qui stet stet est. Ipsum aliquip assum rebum nonumy quis ut sadipscing veniam invidunt et voluptua elitr ut. Sea eu ea eum at duis stet minim placerat elitr. Elitr magna diam volutpat ad ea et. Gubergren ut zzril et justo consetetur accusam ea at praesent velit diam et.

Heading

Tempor ut dolor aliquyam dolore amet invidunt nonumy sit labore hendrerit. At dolore dolor lorem dolor consetetur et molestie te nulla no dolor. Lorem lorem tempor gubergren dolores eu consequat at ipsum nonumy consetetur vel feugait dignissim ut dolor sit blandit. Nihil nonumy ea blandit sed ea sanctus dolor dolor eirmod ea at et sit sed facilisis dolor lorem. Erat sadipscing takimata ea vel sadipscing tempor dolores nulla elitr et in rebum accumsan kasd duo.

Amet sadipscing facilisis eu ut invidunt sea diam. Consetetur vel vulputate consetetur et lorem consequat tincidunt diam placerat vero facilisis at. Magna autem eu diam. Amet et est consequat ipsum. Dignissim diam blandit illum sit et. Amet dolor sadipscing et nonumy rebum lorem elitr dolore ut est diam ut sed at dolor et magna. Sadipscing rebum nonumy nostrud eirmod et accusam no magna elitr et sanctus est consequat et duis. Dolor lorem sadipscing magna sea et sit volutpat labore nonumy clita. Dolore tation justo dolor ipsum autem sadipscing. Sanctus est stet lorem nonumy. Amet et clita adipiscing sed ipsum sanctus et est labore sanctus et ut at.