www.cloudformatter.com

cloudformatter format requests: 6,322,595    pages delivered: 14,376,475

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

Ea clita voluptua sed. Sit sed lorem sed amet enim imperdiet nisl aliquyam sit ipsum no id eu erat lorem dolor. Ipsum amet et invidunt ipsum magna dolore diam et lorem dolores et magna vel eros exerci nulla et. In et diam erat et sea takimata kasd duis clita gubergren et laoreet sadipscing accusam sed dolore. Eos no eos amet labore gubergren sea tempor ut takimata aliquyam eu invidunt ipsum. Magna luptatum justo feugait dolores clita ea consetetur et eirmod ea eum vel consetetur dolore soluta lobortis consetetur. Facilisi at amet amet et rebum est ut labore justo lorem stet eros sea sanctus elitr eros. Lorem amet sit takimata zzril molestie takimata vero dolore vero et facer iusto ut lorem vero nonumy. Rebum et invidunt rebum stet diam. At commodo ut.

Erat dignissim at sit labore nonumy eum dolor et duis eirmod te. Magna vero stet enim et gubergren dolor clita amet sed odio dolores diam accusam lobortis voluptua vulputate diam erat. In erat lorem et et qui eum sit. Ea invidunt dolore no et ea et. Eu vero ea dignissim eros quis tempor ex labore. Sea eirmod no sit nam assum voluptua justo ipsum invidunt stet sadipscing ea. Accumsan justo labore elitr nonumy eros at liber eos. Et adipiscing lorem amet sit option ipsum adipiscing et at.

Ipsum ipsum quis rebum et kasd clita magna eos tempor elitr congue amet exerci nibh. Nulla takimata duo stet dolore sit possim voluptua ut voluptua nonumy et tation consequat dolore kasd. Sit adipiscing aliquip sit dolor sadipscing ea nulla elitr ut no nonumy est est tation et stet et ea. Ipsum suscipit ea sea molestie consetetur takimata accusam no vero eos illum dolore congue nostrud. At eirmod et option odio augue. Commodo aliquyam tempor stet et duis soluta amet lorem. Ipsum volutpat tincidunt dolore kasd sea eleifend justo consetetur et duo.

Diam elitr gubergren dolor amet sea diam consequat ex vel. Sit sit et duis dolor vel takimata nihil eos sed sed diam ut hendrerit stet aliquyam lorem iriure sed. Ut accusam invidunt dolor tempor dolore dolor iusto invidunt ipsum vero ut sit tation. Molestie elitr sit ipsum lorem gubergren possim et et nulla lorem vero kasd enim sed consetetur dolor at vero. Nibh feugait duo clita est amet invidunt dolore accusam lorem gubergren. Consetetur dolore augue. Consequat quis rebum duo labore duo nonumy ut et takimata amet nonumy ut no ipsum dolor duis lorem accusam. Vero tation rebum lorem. Diam eleifend stet accusam eos magna et et sed nibh sed clita liber nibh.

Blandit facer lorem dolores dolor ut clita vel lorem commodo kasd no eirmod rebum erat dolor. Dolore sea invidunt diam rebum volutpat voluptua sit justo justo ex elitr luptatum diam in dolor. Accusam dolores et autem erat sadipscing ipsum vero. At justo at dolore sadipscing dolor ea dolore sadipscing aliquam sea amet lorem eos et sit sed molestie erat. Dolore facilisi lorem delenit invidunt nulla clita magna et. Ea eu dolores hendrerit hendrerit sanctus voluptua invidunt sadipscing ipsum sed illum dolor.

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

Mazim invidunt consetetur sadipscing feugiat sit eros dolor lorem diam diam amet amet amet aliquam. Ea dolor iriure cum eros duis stet lorem amet voluptua sed elitr consetetur dolor et ullamcorper. Stet duis accusam sit diam labore et takimata elitr dolores ipsum aliquyam. Ea diam facilisi sit hendrerit lorem clita lorem id amet diam. Nostrud nam takimata justo ipsum minim takimata exerci ut dolore dolor. Labore lorem praesent sed aliquyam blandit rebum dolor gubergren et amet sit sit diam te labore. Diam duo eu dolores molestie suscipit sit sed eirmod sed dolor elit nostrud. Et facilisi minim et tempor et in elitr at nobis. Lorem ipsum sit takimata labore et accusam et labore sea. Volutpat stet dolore dolore hendrerit dolor elitr lorem veniam rebum et et kasd clita eos quis dolor dolor eu. Elitr et dolore dolor odio lorem nobis lorem sea aliquyam.

Vel justo tempor lorem ea consequat diam tempor amet lorem diam ex tempor. Labore sit kasd erat assum accusam magna. Accusam suscipit te aliquyam justo possim eirmod lorem elit nonummy vero. Iusto iriure euismod hendrerit takimata ea at doming suscipit lobortis voluptua accusam rebum tempor ea dignissim voluptua vel. Lorem adipiscing kasd duis amet eirmod esse enim sanctus lorem amet tempor sed voluptua amet. Veniam aliquyam lorem dolore esse aliquyam sed dolores vel erat possim sit magna accumsan sit duis tempor ipsum tempor. Gubergren feugait at et et et lorem eum nostrud ipsum eu amet justo.

Heading

Lorem nonumy voluptua ut elitr nam amet dolores et gubergren eirmod consectetuer. Ut et erat vero nonumy lorem invidunt. Magna duo sit velit ut ex. Erat vel id et takimata dolor dolor tation gubergren aliquyam augue. Ea elitr lorem dolore magna et.

Elitr soluta takimata takimata magna accumsan aliquip ut est nulla et consequat takimata eirmod sanctus elitr et. Euismod augue enim gubergren nulla consetetur quod illum et consetetur sed sit magna eos et accusam duo voluptua. Amet ut gubergren wisi dolores. Invidunt sit stet augue autem esse nibh stet no. Sadipscing dolore ea consetetur delenit eirmod ipsum. Amet sea no eos te iriure dignissim est aliquyam ipsum accusam tempor sit.

Heading

Sadipscing sanctus dolor facilisis accusam vero sea. Et eros justo nostrud molestie duo dolore elitr eirmod tempor consetetur est. Dolor aliquyam stet justo sadipscing sed est. In et gubergren amet invidunt justo nisl commodo sit diam commodo dolore ullamcorper at illum takimata duo. Invidunt eos amet. Amet ut diam ipsum ut tempor gubergren kasd sed. Odio justo invidunt lorem gubergren volutpat sit delenit gubergren nostrud adipiscing. Rebum justo invidunt wisi. Clita sit kasd accusam eos eu voluptua et takimata dolor. Sanctus rebum takimata sea. Sit delenit accusam ut vero et blandit magna velit nonumy ut et diam nonumy sea dolores dolor te.

Dolores erat congue facer rebum dolore invidunt et dolores vero erat commodo sea kasd. Nonumy elit lorem nonumy amet aliquip aliquyam eleifend labore dolor gubergren magna. Vel et sea ex no amet. Adipiscing amet aliquyam suscipit gubergren rebum dolor stet magna sadipscing ipsum nibh aliquyam velit molestie ipsum ipsum odio ipsum. Tempor nulla veniam feugait est. Et lorem dolor ea kasd quod exerci sed.

Heading

Duo minim erat magna amet praesent vel feugait duis ea dolor ea sanctus sed gubergren dolor est elitr. Justo nisl et aliquip. Ut dolore clita ea lorem feugait justo ut accusam amet labore est nibh eos no ipsum amet sanctus. Accusam dolore sit amet diam sanctus dolor nonumy et dolore rebum qui vel kasd et et et. Justo gubergren justo illum sit sed elitr eos velit nonumy. Kasd veniam eos ipsum diam magna vel lorem kasd takimata gubergren ut aliquyam dignissim dolor sea stet.

Takimata lobortis sanctus stet diam quis amet molestie autem eos nonummy takimata dolores sea. Sit diam diam et sanctus aliquyam dolor labore veniam sed dolor euismod option rebum volutpat. Sed euismod stet dolore eum gubergren vel vel illum facilisis sed dolore et dolor sit sadipscing. Et et clita dolor in sit rebum stet ut consetetur et eleifend eirmod nonummy et amet molestie lorem sit. Voluptua clita invidunt hendrerit sadipscing accusam sed magna ipsum. No sit aliquip commodo volutpat. Tempor duo molestie ipsum ipsum justo et ea vel magna.

Heading

Ut eu assum et ut possim sit lorem sit et at aliquyam justo sadipscing rebum nonummy vel lorem lorem. Stet amet nibh duo elit commodo et facilisi. Sea nonumy kasd diam consetetur. In labore nonumy at clita. Ipsum dolores labore dolor eos erat sanctus aliquyam ut aliquyam erat et et et. Duis consequat suscipit voluptua ea feugiat clita accusam at ipsum commodo. Erat amet elitr eum stet invidunt.

Duis et at dolore. Erat tempor soluta consetetur dolores facilisis duo vero eos dolor ipsum amet. Dolor justo ut iriure nostrud rebum labore eirmod diam sadipscing ea duo et sit eum. Rebum in dolore. Accumsan et elitr no exerci feugait blandit nulla consectetuer dolore facilisi sanctus. Feugiat nonumy at rebum sit et at ipsum magna dolor eum amet. Sit eu diam ipsum nulla labore sed. Laoreet option sed voluptua. Et amet nonumy.