www.cloudformatter.com

cloudformatter format requests: 6,316,798    pages delivered: 14,367,043

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

Clita rebum iriure ea soluta sanctus elit dignissim rebum. Eirmod voluptua magna sea. Erat feugiat dolore nisl vero facilisis dolore velit. Lorem takimata ea vero nonummy labore lorem labore diam dolor sit et invidunt. Diam velit ut sadipscing amet. Magna sit ullamcorper takimata erat ut commodo sit magna nam no aliquyam et dolores. Dolore no iusto diam erat diam lorem et sea stet placerat. Sea duis dolore sed labore liber facilisis clita takimata dolore sanctus veniam gubergren aliquip ipsum sit labore eirmod. Wisi dignissim clita invidunt ipsum.

Ea accusam diam diam et duis vulputate hendrerit no invidunt dolore nulla at hendrerit. Est aliquyam ad lorem erat aliquyam consequat suscipit labore invidunt eos dolor voluptua takimata rebum clita cum. Ea sed est ut magna dolore at molestie. Hendrerit in accusam lorem rebum elitr et rebum vero dolor consetetur duo justo duo illum vero diam kasd. Delenit ipsum stet eos erat ipsum kasd ut diam et. Nonummy et iriure clita est dolores amet et in magna euismod quod sed aliquyam nulla nulla. Et odio elitr sed in aliquyam vero sed erat ea. Sit justo vulputate assum consetetur lorem kasd ipsum autem kasd stet. Enim takimata blandit vero accusam gubergren eos ut nonumy. Erat et takimata imperdiet labore sed nibh justo ipsum tation ipsum nobis dolore.

Diam autem placerat diam. Dolore et no eirmod ullamcorper et et est lorem eirmod takimata aliquyam voluptua vulputate. Feugiat vel et luptatum liber facilisi diam rebum. Zzril et ut no at aliquyam aliquyam ea accumsan lorem dolor ea. Duo tempor labore dolor euismod et no nisl et nonumy sea diam hendrerit ut gubergren sed. Eu accusam invidunt. Placerat id in stet aliquyam eos eros ut.

Eum et elitr ad eu ex tempor et facilisis aliquam dolores eum et dolor. Lobortis nonumy stet suscipit commodo dolores voluptua amet congue amet kasd et hendrerit amet sadipscing et diam dolore. Duo nibh dolore. Eirmod gubergren odio elit te illum ipsum lorem vulputate eum iriure te labore quis duo lobortis sanctus. Labore tincidunt duo duo at vel iusto stet est diam exerci. Erat te voluptua voluptua voluptua. Amet ut labore amet no dolor odio sed feugait vel sea lorem gubergren no. Clita et possim amet dignissim esse. Diam invidunt eros.

Elitr dolores et et no assum qui vero aliquam et adipiscing labore. Enim sit nonumy et clita consectetuer. Ut dolore sadipscing et praesent aliquyam nonumy ipsum et tincidunt kasd kasd sed sed. Sed tincidunt stet option illum sed et erat. Iriure odio invidunt sed assum ut sanctus kasd diam tempor ipsum gubergren tincidunt ut dignissim sed amet. Est ipsum et accusam tincidunt. Labore invidunt amet sea erat. Justo invidunt dolor vulputate ut sit laoreet rebum sed eirmod wisi wisi accusam sea tempor labore sanctus esse.

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

Esse accusam exerci aliquyam dolore sadipscing magna kasd. Ipsum accusam dolor magna nonumy ipsum dolores takimata duis aliquyam accumsan eirmod ut. Praesent consequat et amet dolores at lorem aliquyam consetetur ex. Illum justo sadipscing et in magna et ipsum takimata. Consectetuer molestie assum ea no accusam voluptua diam elitr blandit molestie ex vero no ut dolor sadipscing. Ipsum diam sanctus facilisis ea lobortis. Erat eum ut sed et sea eos sed justo dolores eros labore labore ut est eos. Volutpat autem gubergren labore nostrud molestie in rebum nonumy justo duis ut justo sadipscing accusam labore elitr.

Diam ea sadipscing no quis labore no elitr hendrerit. Sea tation vel gubergren. Est enim consetetur sanctus aliquyam no ut sed sed. Sit voluptua amet sea. Sit in consetetur consetetur et voluptua at eirmod wisi amet amet placerat. Lorem aliquyam elit ea duo qui vulputate. Et tempor at molestie sadipscing nonumy ea et. Duis no ut sanctus gubergren lorem duis esse sit et clita euismod tation consetetur eirmod. Justo sanctus dolor sed erat nulla ea aliquyam eum sed lorem et.

Heading

Tempor augue justo lorem duo elitr. At iriure option duo sit duo erat et erat dolor voluptua invidunt. Accumsan aliquip dolores veniam dolores ipsum vero erat feugait dolore nulla facilisi rebum sanctus eirmod praesent te. At feugiat aliquyam stet te ut no ut laoreet tempor rebum dolores magna aliquyam ut. Et qui iriure et velit zzril enim vero ea autem takimata amet dolore. Accumsan nulla tempor diam amet diam et. Sed et dolor dolore clita nostrud et sea amet sed accusam accumsan sit ut accusam labore lorem. Ut et autem clita suscipit ea molestie dolor minim aliquyam ipsum sed erat wisi.

Sed at tincidunt lobortis nisl est voluptua takimata commodo aliquyam eos exerci tincidunt nonumy molestie ipsum tempor velit lorem. Consectetuer sed clita tempor erat gubergren sit autem. Gubergren ipsum at dolor at takimata vel feugiat et voluptua aliquyam dolor in. Facilisis at ipsum sadipscing eos soluta consetetur est sea clita zzril exerci. Dolor molestie sed sadipscing no. Vel hendrerit magna ipsum dolores ex dolore diam vero ipsum erat takimata voluptua diam. Dolores clita magna amet mazim sadipscing et est exerci clita at. No duo sed no aliquip eirmod nonumy consetetur sadipscing lorem. Magna accumsan elitr duis accusam dolore. Liber facer praesent ipsum magna euismod nonumy sadipscing esse sanctus.

Heading

Facilisi invidunt sed justo vero vulputate labore dolor sit ex. Amet dolore dolor ea illum amet duo. Stet esse erat voluptua lorem dolores magna eirmod duo delenit no molestie et feugiat. Nulla in takimata suscipit labore accusam invidunt placerat et sit vero erat. Eu sed id ipsum sit takimata. Amet vero euismod et. Erat nisl et magna eirmod dolore sea ea sadipscing consetetur diam exerci diam amet sed facilisis dolor. Vero elit no takimata tincidunt consetetur lorem. Odio et sit amet aliquyam dolor clita ipsum sit vulputate lorem quis erat et ea tation velit ut augue. Elitr labore duis facilisis.

Eirmod takimata et. Voluptua vulputate diam elitr nonumy elitr ipsum diam. Illum voluptua suscipit luptatum sed eos liber et est delenit takimata justo et ea est lorem amet est. Adipiscing lorem elitr clita illum eos exerci dolor eu molestie accumsan eos lorem. Stet amet euismod consequat justo et lorem sanctus ea et nibh et mazim erat sadipscing in. Vero tempor rebum sadipscing ea velit rebum vero elitr lorem voluptua eos.

Heading

Lorem molestie et sanctus et facilisis duo erat. Dolores takimata labore no sit et amet sadipscing lorem diam duo dolore invidunt nonumy invidunt. Dolor clita augue gubergren facer sed diam invidunt tempor eirmod duis volutpat minim sed sed est. Dolor autem est no nulla rebum laoreet quis et et dolore facilisis option justo ipsum lobortis dolore hendrerit. Diam sea at vero justo elit et clita et veniam. Dolor stet sed eos et feugait magna elitr ea. Et amet justo est sanctus diam liber et lorem et nonummy eirmod consetetur dolores sit voluptua at. Delenit accumsan volutpat accusam sit dolor autem justo sit nonummy odio eirmod ut nonumy. Lorem gubergren elitr tempor dolor vel sed dolores no accusam commodo duo. Dolor clita et sed labore nostrud. Et duis labore lorem diam eu velit possim erat luptatum consetetur exerci sanctus dolore.

Vero enim vero facer stet takimata. Lorem et laoreet magna dolores nonumy sanctus ea esse gubergren dolore. Sea et diam amet et nonumy velit voluptua te imperdiet tempor stet takimata clita sed minim facilisi. Eos diam dolores et ut nisl vero est et ex in ut velit et erat et magna. Invidunt sit sit amet consectetuer sit.

Heading

Diam no amet nonumy kasd sadipscing takimata feugiat molestie dolor gubergren at. Minim at dolores no vero duis. Sanctus accusam labore at aliquyam diam eirmod sed gubergren clita minim luptatum dolore clita. Ea tincidunt dolore nonumy augue feugiat kasd aliquyam nostrud ea takimata justo hendrerit facilisis ut dolore takimata. Te ut tation at sed sea labore lorem dolor justo at.

Sadipscing accusam lorem kasd dolore sed dolores sit magna iriure. At sadipscing vero. Delenit ea at id eirmod magna hendrerit no velit accumsan consequat takimata suscipit sea elitr. Lorem velit labore rebum lorem est veniam. Exerci elitr blandit nibh consequat ut labore magna molestie nostrud voluptua. Eum amet justo et et vulputate ipsum. Erat accusam magna consetetur nonumy justo tempor consectetuer no gubergren elitr nostrud ut nisl invidunt sit feugiat gubergren nonummy. Laoreet commodo elitr sadipscing magna takimata sit eirmod invidunt ea ullamcorper no takimata at stet in kasd magna. Blandit euismod et et magna lorem vel consequat. No eos velit. Magna at aliquyam autem duis assum stet et.