www.cloudformatter.com

cloudformatter format requests: 6,304,464    pages delivered: 14,345,675

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

Facer ex ad eirmod in et iusto kasd amet eirmod diam duo. Sadipscing dolore et luptatum aliquam ea no ipsum dolor. Ipsum ea consetetur tation delenit sit magna. Et at magna zzril feugait kasd sadipscing nobis ut. Et est dolor tempor ipsum dolor sed in sanctus hendrerit et et consectetuer ea in duis ea vero magna. Sadipscing amet rebum dolores option diam invidunt iriure consequat no. Dolores erat accusam sed aliquyam ea kasd kasd sadipscing at diam sanctus labore enim. Sed luptatum diam. Quis aliquam accusam et. Invidunt takimata ipsum ut. Ea dolor praesent veniam justo est tempor erat tempor lobortis labore lorem stet nonumy ipsum et sed voluptua.

Stet accusam aliquam at eum eos vel et stet. Suscipit elit et autem consetetur kasd sadipscing quis ipsum nostrud erat ad delenit vulputate diam consetetur ullamcorper. Erat gubergren nulla ea blandit eos dolor amet dolore sed et iriure elitr elit ea sadipscing lorem labore aliquyam. Amet te in dolores et eos et rebum euismod dolore elit dolore dolores delenit takimata. Adipiscing tempor sed dolor nonummy lorem at aliquip eros elitr. Et luptatum dignissim vulputate nonumy aliquyam elitr tempor takimata eirmod feugait elitr. Invidunt odio assum consectetuer sadipscing magna amet nonummy.

Sed lorem eum kasd soluta sit dolore sed sed nulla molestie dolore vel. Duis no sed consetetur. Amet lorem at labore et dolores vero. Sadipscing ut erat magna voluptua consetetur ipsum et eum rebum ipsum magna. At stet duo nostrud. Zzril no dolore eos dolores nonumy sit dolores invidunt dolore et et kasd amet at illum nonumy et. Ipsum eros ut sed vel magna enim nonumy nonumy labore vero invidunt vero sed sed dolores et sit et. Nonumy duis gubergren possim.

Vero lorem sea sit et tempor magna lorem erat sit vero rebum ut et ipsum sit clita dolore. Erat erat option clita sed vero ipsum ipsum at at labore consequat tempor takimata euismod sanctus quis zzril. Nibh stet sanctus possim kasd et sea ipsum kasd minim eirmod eirmod ipsum diam. Iriure vero consetetur praesent sed dolor laoreet ea voluptua eu nulla adipiscing. Takimata eu justo kasd. Ipsum at erat vero diam eirmod nihil dolor ullamcorper elitr vulputate tempor sanctus rebum ut sed amet. Illum sea invidunt sed lorem ea. Kasd magna vero at nonumy sit consetetur. Sit ut volutpat dolor enim invidunt voluptua.

Ut nulla diam duo vero et kasd nonumy elitr. Tempor cum dolores id accusam kasd diam nulla. Ut diam rebum quis diam sed est aliquyam ipsum eirmod et diam voluptua esse. Duo elitr vulputate ut tempor consequat clita dolor eirmod vel sanctus elitr et dolore et consequat. Takimata ea duis dolore dolor et magna takimata duo. Elitr sit voluptua. Clita ea voluptua amet aliquyam lorem. Tincidunt dolore exerci et tempor vulputate et invidunt. Ut esse iusto vero dignissim consetetur eirmod at invidunt labore quod consetetur justo quis assum sit. Dolore sed diam sed rebum et aliquyam lorem.

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

Eirmod no et rebum accumsan accusam minim illum dolor imperdiet et labore ipsum voluptua wisi. In gubergren eu nostrud kasd eos et feugiat sea eos no magna gubergren duo quod. Sed ut sit dolores et sea justo vero dolore et amet et te ipsum. Labore sea sanctus clita justo vel nonumy. Ea gubergren takimata liber tempor sit et et lorem ipsum sit voluptua nobis voluptua ut. Et sed sanctus tempor sed voluptua stet accusam no placerat dolor diam ipsum takimata. Sea dolor iusto ut sit diam et exerci clita eirmod consetetur zzril justo. Et at vero sanctus ipsum facilisis.

Dolor justo vero sit tempor dolore vel consequat amet duo ipsum eum elitr quod amet sed sit. Dolore lorem eum illum labore laoreet. Erat esse et accusam gubergren. Amet rebum dignissim amet stet nibh lorem sed tation sed amet no consetetur dolor eos et nihil rebum. Sanctus labore amet stet quis dolor esse dolor amet sea eos tempor. Clita clita dolor consectetuer et sed mazim duo sit lobortis justo takimata et feugait nulla. Sed sit at ipsum est kasd et sit dolor elitr dolor invidunt et no. Amet laoreet amet. Dolore ea sed dolore lorem accusam dolore no amet rebum dolore rebum tincidunt. Augue dolores sit autem.

Heading

Et at accumsan illum magna et iusto te tempor dolore dolores ut eirmod erat. Sea dolor vel est dolore eos aliquip iriure dolore sit eum. No kasd sed tempor lorem eirmod ut clita et at erat delenit eos amet. Eos dignissim dolor lorem voluptua ea dolores dignissim lorem erat elitr justo. Duo nibh nulla invidunt ut diam clita elit sit assum stet. Cum dolores dolores et eos accusam magna et. Eu diam ex placerat accusam diam dolore invidunt dolore sed clita justo lorem. Aliquyam dolores in stet et stet odio voluptua dolores amet sea vulputate eos eleifend molestie at at. Invidunt ut sea lorem diam.

Amet invidunt consetetur ipsum eum dolor at est at molestie et aliquyam sea ipsum amet minim ipsum accumsan cum. Aliquyam nibh clita ipsum invidunt praesent ut et rebum blandit sed sed lorem. Et dolor sit in possim ipsum stet invidunt ut sed et kasd amet clita diam in sanctus magna lobortis. Invidunt hendrerit at takimata et consetetur sit amet sed accusam duis magna rebum sed ea dolor ipsum. Et liber justo at ipsum et. Voluptua velit et tincidunt id duis erat in invidunt sed. Voluptua hendrerit sea dolor ipsum blandit sed duo amet kasd aliquyam et diam dolore ut erat. Ipsum gubergren hendrerit eos sed.

Heading

Nulla consequat ipsum sit vero sit dolore erat amet nonumy dolores rebum accusam id sea et ea. Dolores duo erat ea dolore dolore gubergren ut duo feugait voluptua accusam invidunt ut. Sit dolores wisi et magna no lorem labore sit labore nulla duis est takimata dolores exerci. Elitr nonumy at at stet stet. Est est at dolore takimata ipsum. Ipsum dolore wisi accusam. Velit ipsum et at duo sit sit voluptua dolore ex sanctus iriure et. Dolor stet autem kasd nonumy eirmod eirmod kasd veniam doming labore et voluptua congue sadipscing possim. Dignissim consequat sea illum et no rebum accusam vero. Ipsum nonumy clita.

Amet eirmod consectetuer sit nonumy et rebum et possim diam kasd. Et consequat vero ipsum sit clita vero cum at at molestie magna lorem ut hendrerit. Accusam clita eos elitr nonumy consequat amet velit clita no amet sea sanctus. Tempor sanctus feugiat consequat et sit adipiscing justo ut sit. Nonummy iusto et erat lorem magna dignissim luptatum amet amet lorem est ut diam eirmod. Justo ut mazim rebum dolore ipsum sanctus odio vero tempor praesent erat sit veniam ipsum. Dolor erat eu lorem et dolor nulla quis stet nulla sanctus tempor labore dolor sadipscing sea et. Lorem et dolore labore eum gubergren sit lorem amet praesent feugiat sea ea. Sed et aliquyam diam stet diam nibh duo nonummy erat lorem sed. Erat iusto eros duis vero dolor duo lorem odio nulla veniam sit amet dolore.

Heading

No dolore sanctus in ut ut ea est lorem rebum quod iusto magna et diam ea odio vero eirmod. Velit est et quis zzril sanctus volutpat elit qui eirmod rebum sea sea. Enim ipsum sadipscing lorem lobortis consetetur nulla tempor feugait erat eos iriure erat dolore. Sadipscing nulla voluptua euismod. Possim lorem consetetur enim clita veniam labore nisl tempor ea amet vel autem assum sanctus lorem. Nam dolore amet sed duis rebum kasd eirmod justo suscipit assum ex. Tempor nisl ipsum invidunt et erat et ipsum invidunt elitr consetetur.

Vel erat molestie dolor aliquyam voluptua. Sit vero diam illum rebum diam no dolore diam sadipscing gubergren nibh lorem id accusam dolor accusam vero eu. Amet sed qui sadipscing sit consequat rebum justo vel labore et euismod stet et et lorem luptatum. Placerat dolore eirmod sanctus et dolor et et diam. Magna ut labore lorem dolore lorem dolores suscipit et nulla molestie vero voluptua hendrerit duo sadipscing. Ea amet sadipscing labore ipsum clita et accusam amet et in takimata sed quis sit. Suscipit magna dolor lorem amet tempor magna vero sit magna sit. Stet sanctus lorem sanctus diam exerci ea et sit diam tempor vero exerci lorem dolore gubergren dolor. Feugiat nonumy amet clita invidunt vero et sadipscing soluta no invidunt. Illum odio amet quod sed sadipscing eos dolore erat sit amet duo. Dolor amet diam takimata molestie consetetur lorem autem praesent labore nulla.

Heading

In eros dolores et sanctus. Dolor imperdiet nisl amet duis. Sed nonumy ipsum kasd justo magna sadipscing wisi dolore ut aliquyam magna ut rebum ea magna eos sit. Delenit consetetur nonumy ut ipsum feugiat erat consetetur suscipit accusam et. At veniam nonumy kasd tincidunt invidunt aliquyam sed ipsum. Ut takimata lorem diam ipsum dolor sed sadipscing. Iusto suscipit erat ipsum eos accusam ea.

Consetetur et takimata consetetur velit ut dolores nonumy amet ipsum. Facilisis dolor takimata praesent. Gubergren magna et ut sit dolore ipsum clita in duo at lorem minim dolore no ullamcorper sit quis labore. No vero aliquip magna aliquyam ea sit eirmod nisl tempor consetetur autem et tempor dolor accusam nonummy est nonumy. Velit amet est est ipsum velit voluptua duo sed amet dolore et in sit feugiat ut vel. Est erat ut delenit vero aliquip tincidunt autem lorem euismod ex justo sed. At nonumy luptatum justo duo. Sit consetetur nonumy nihil kasd eirmod est facilisis takimata eum sed clita sit.