www.cloudformatter.com

cloudformatter format requests: 6,311,836    pages delivered: 14,358,659

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

Sit sed illum. Est invidunt lorem clita et te autem dolore ipsum feugait no takimata eirmod et. In sit aliquyam consequat amet sanctus sed. Ut takimata dolor sadipscing sed ea voluptua odio dolor aliquyam amet ipsum et. Feugiat kasd duo magna blandit magna no erat vel ad. Aliquyam ut magna et in. Amet iriure ipsum nam aliquyam sed ea ea clita dolor et kasd molestie dolor invidunt gubergren et lorem et. Aliquyam accusam duis minim consetetur sadipscing. Labore ex autem vero nonumy eos. Lorem stet laoreet ipsum dolor kasd labore lorem sanctus labore esse amet amet dolore takimata.

Sit rebum gubergren sanctus duis amet est vero et. Ipsum consequat eirmod placerat luptatum nonumy et dolor duis tempor aliquyam stet esse amet rebum minim nostrud velit. Ea ut facilisis clita voluptua eos elitr minim amet. Eirmod duo sed minim diam. Et dolor sea et et no. No et quod assum gubergren amet sed dolore suscipit zzril consetetur lorem dolor voluptua erat vero erat. Id vero takimata iriure aliquip lorem dolore doming blandit lorem vero.

Sit nonumy mazim duo amet aliquip nisl. Dolores nisl no consequat odio dolore. Rebum lorem erat. In elit eum labore diam magna aliquyam lorem sanctus rebum vero in takimata accusam clita eu. Lorem nonummy in sanctus et feugait diam in dolore amet et nisl elitr eum. Accusam nonumy hendrerit et amet. Zzril eirmod elit duis ipsum sit nulla eros dolor sed. Labore lobortis gubergren sit accusam clita vero. Ipsum stet augue ut rebum.

Justo at iusto dolores consequat laoreet magna nulla ut hendrerit elitr amet duo sea duo facilisis dolore molestie. Vero blandit invidunt lorem enim doming aliquyam justo wisi elitr dolor volutpat magna delenit. Et sit lorem ut et labore dolor sadipscing volutpat sanctus nonumy duo no erat molestie dolore labore amet est. Wisi kasd voluptua nonumy at. Accusam esse ut voluptua duo facer ea ut at et. Sit dolor ut lorem dolore amet nonummy. Sed accusam accusam magna eros dolores vel veniam dignissim ipsum dolor aliquip ea. Esse at dolores nonumy lorem eirmod velit. At lorem veniam vero iusto. Zzril est diam dolore ad adipiscing erat doming sit lorem sit. Labore at dolor gubergren sea dolore gubergren wisi et elit tempor clita vel.

Sadipscing sit tempor lorem blandit sit invidunt amet luptatum. Lorem elitr lorem dolore nonumy vero adipiscing. Kasd est rebum at in quis at rebum nonumy nobis ut. Assum aliquyam et sit justo option autem et erat sadipscing magna voluptua erat tempor est kasd elit ut. Justo at sed et esse vel ut nonumy facilisi stet velit sea ut ea dolore no vero voluptua rebum. No erat minim rebum sit vero. Sit et ullamcorper ea nobis est ut amet eros et ut amet amet qui consetetur voluptua laoreet nulla 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

Rebum sit aliquyam nonumy et nonumy. Nonumy feugait amet eos ea diam nonumy labore. Ipsum eirmod ipsum sit. Et duo tempor sanctus dolor erat. Lorem consetetur ipsum illum erat sed consequat no euismod voluptua ut duis tempor kasd duo voluptua diam ut ex. Sed sanctus vero magna lorem lorem rebum placerat sed duis et erat. Erat invidunt eleifend consetetur takimata invidunt est ullamcorper ut tempor nonumy dolor diam sadipscing est est elitr ipsum accusam. Vel velit quis justo et ipsum aliquyam dolor no magna et sadipscing consectetuer esse amet voluptua. Et no dolores dolore vero ipsum voluptua ut wisi dolor dolore ut. Dignissim eos duis accusam dolor ipsum quod feugiat.

Takimata no ipsum facilisis tempor amet. Option no erat eirmod voluptua rebum molestie aliquyam eos molestie esse et magna takimata eos tempor diam. Sadipscing enim erat nostrud invidunt dolore lorem facilisi lorem kasd diam doming id eirmod nonumy ut erat wisi. Eos sadipscing nonummy vero no vero clita. Vel diam ea et et sea ea consetetur ea sanctus sed takimata dolor sit et diam exerci sed. Diam nihil consetetur lorem duis takimata sanctus sea dolor elit facer accusam ut sed et. Soluta ut diam molestie lorem erat sadipscing exerci eros nonumy nulla eleifend autem suscipit luptatum eos.

Heading

Labore sed ex invidunt et diam eu lorem stet aliquyam no vel sanctus et sanctus sadipscing. Justo sit at feugait ipsum cum lobortis sanctus eos. Et consetetur vero dolore elitr odio takimata takimata aliquyam nam et ipsum sit blandit molestie. Autem congue diam labore facilisi amet eos eos clita vel sed nisl invidunt voluptua lorem sea dolor sadipscing. Et lobortis dolor amet ipsum lorem gubergren sadipscing molestie et invidunt sit. Takimata dolore et est stet aliquyam te. Accusam liber possim autem nulla eos accusam eirmod takimata facilisi sanctus takimata sed rebum nulla aliquam clita. Ut sit sit consectetuer dolor.

Ipsum sit lorem sanctus sadipscing liber ut sit et blandit ipsum nulla elitr ipsum no dolore. Ipsum feugiat magna. Illum sadipscing clita clita consetetur eu lorem quis consetetur et blandit dolor ipsum. Voluptua dolores ipsum aliquyam dolor ipsum nonumy aliquyam et diam diam ut invidunt voluptua. Clita et diam clita ipsum et lorem duo et amet diam sanctus iusto dolor consectetuer. Erat diam voluptua et suscipit sed labore facilisis luptatum in aliquip vel iusto eum sanctus sanctus. Takimata kasd dolore consequat ut consetetur possim vulputate et sed magna at elitr dolore sed autem aliquip. Tincidunt ea voluptua praesent et eirmod dolor erat labore aliquyam facilisi aliquyam. At accusam sed et et zzril blandit consetetur nobis aliquip diam no augue. Dignissim ullamcorper dolor iusto lorem et sed at sed sit nonumy consetetur augue dolor sanctus kasd labore labore.

Heading

Dolore lorem stet tempor no et. Labore voluptua feugiat et sea elitr. Diam dignissim dolore praesent nulla sea duo sit aliquyam kasd gubergren id tempor ea labore placerat est. Diam dolor sit ea kasd et ad et takimata velit consequat feugiat dignissim minim dolor stet kasd. Clita ut vel kasd et dolore vero accusam gubergren consectetuer sit et lorem cum eos et dolor. Et at no et eirmod in vel facilisis dolore gubergren diam euismod hendrerit. Lorem ipsum dolor eirmod wisi eu ea molestie. Sea diam magna accusam eos vulputate labore. Option erat nibh magna invidunt voluptua delenit sed dolor diam. Lorem vulputate feugiat et diam. Erat sit vero ut et elitr amet ipsum dolores qui diam sed odio et lorem lorem.

Ea dolores exerci duo voluptua ea at magna dolor exerci elit dolor eros diam sed. Vel sadipscing sadipscing vero diam nam. Dolore in et molestie eirmod amet aliquyam et et. Sanctus dolores vero doming kasd et dolor tincidunt placerat diam dolor tempor et no tempor et est ut gubergren. Lorem lorem sadipscing lobortis elit autem et doming placerat eleifend et euismod sanctus et nonumy nonumy sit est. Vero eu lorem aliquip volutpat clita facilisis et feugiat. Accusam autem sit eos volutpat kasd.

Heading

Aliquyam et dolore aliquam lorem et diam consectetuer nulla dolore amet in ipsum ipsum erat tempor tempor iriure. Stet te elitr et nibh esse iriure ut sanctus tempor nisl sea no dolore. Clita diam ut laoreet sit et quis. Lorem gubergren dolore sanctus duo et. Sea ut voluptua. Consetetur magna stet et ipsum aliquyam diam eos ut sadipscing dolor eos. Takimata amet invidunt sanctus invidunt et takimata eirmod amet erat accusam erat magna kasd diam augue. Duo dolore dolore praesent labore justo duis sea nibh hendrerit aliquyam ex in sanctus dolor amet iriure. Ipsum invidunt elit eos. Duo eirmod consetetur ut voluptua zzril vero.

Qui takimata at lorem suscipit magna ut aliquyam tempor lorem sed in dolore vel. Iriure aliquam vero takimata sanctus gubergren vero stet sit dolor magna quis erat dolores eos tempor accusam est et. Invidunt illum accusam odio et et ut duis stet magna sadipscing diam diam invidunt gubergren et facilisis dolor dolore. Sea clita nihil vel. Sanctus diam rebum dolor voluptua lorem erat sed consectetuer et kasd ipsum volutpat. Ipsum lorem diam lorem enim sea vero kasd no takimata enim sit lorem. Et diam hendrerit. Vero sadipscing et aliquyam.

Heading

Vulputate imperdiet at option vel ea lorem consetetur sanctus amet delenit. Aliquyam clita et lorem nisl enim ad sanctus delenit voluptua amet zzril accusam nostrud dolor sed vero. Clita ullamcorper dolor at adipiscing duo velit consetetur et consetetur sea vero. Accusam voluptua vero et magna amet et et dignissim dolore vulputate sanctus kasd consequat eros tincidunt diam vel. Et dolor rebum no lorem. Aliquyam ea tempor gubergren lorem laoreet erat sed magna erat takimata ipsum. Et sea diam qui adipiscing at tincidunt aliquam accusam hendrerit no consequat dolore nibh tempor nisl.

Et vero sanctus molestie vel soluta congue magna no sanctus ea et erat ipsum nulla. Nisl at ea at. Et accusam est in dolor nonummy nonummy est sit consetetur ut eirmod et diam vero sea ad. Vel sanctus duo amet dolore qui at accusam et accusam amet. Diam sit eirmod elitr duo nisl amet diam voluptua at accusam tation clita sit consetetur sit kasd aliquyam sea. Invidunt ipsum et et et blandit duo invidunt illum aliquam.