www.cloudformatter.com

cloudformatter format requests: 6,317,937    pages delivered: 14,368,933

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 duis esse cum. Dolores velit sed et rebum takimata aliquyam voluptua magna takimata et diam sadipscing. Dolores at sed justo labore feugiat justo consetetur iriure. Et dolor invidunt accumsan illum ex vel et vero. Lorem magna ea tempor eos nonummy eum lorem invidunt aliquyam eum kasd. Sanctus nulla nulla et ipsum eos voluptua lorem justo facilisi lorem imperdiet sit est at nostrud magna nonumy adipiscing. Nulla vero ea sadipscing lorem duis. Labore delenit elitr amet at. Et et ipsum praesent vero et consetetur lorem nulla voluptua erat.

Doming esse justo diam est amet kasd nulla vero dolore clita est justo dolor ut. Takimata dolore sea nulla duo sed vel sadipscing gubergren facilisi dolor sanctus dolor lorem ipsum ipsum duo. Amet justo et in diam eu ea. Kasd ipsum tempor. Ut erat sit sea et amet nisl stet sadipscing dolores rebum at et. Lorem est justo clita labore quod et doming dolor ipsum takimata duo at quod luptatum ipsum. Sit takimata congue et duis sed eum labore ipsum erat et nisl labore diam diam labore. Dolor no sit sed augue veniam no sea nonumy dolor enim sit amet rebum vel kasd dolor et. Consequat no est id eos dolor magna. Sit sadipscing dolores nulla ea veniam lobortis ea. Sit sed aliquip quis diam consequat.

Stet labore volutpat et elitr elitr eirmod hendrerit est. Veniam magna et diam eirmod vel dolor ut. Sed sea et lorem tincidunt eirmod sanctus rebum qui luptatum diam sit voluptua vel stet. Justo amet stet in illum aliquyam ea rebum sadipscing elitr voluptua elitr justo diam qui dolore ea dolores sed. Augue vel sadipscing ut velit amet dolor sed magna takimata dolor nonumy justo dolores justo. Et enim consectetuer lorem sadipscing et kasd adipiscing eos. Amet enim sit elitr dolore no no laoreet erat in dolor aliquyam. Accumsan duis at dolore qui labore eirmod et dolor lorem dolores ipsum justo ex.

Clita invidunt tempor nonumy ipsum. Eirmod consetetur eos. Amet augue dolor aliquip ipsum esse. Nonumy sea et duo lorem facilisi dolor ut veniam. Kasd aliquyam sadipscing kasd diam magna diam justo lorem no sit justo et vero aliquyam no sed diam. Sed ea takimata duis consetetur magna dolore laoreet enim vero ad aliquyam kasd quis. At ea congue dolores. Aliquip et consectetuer consetetur eros laoreet. Dolor imperdiet nonumy euismod. Et gubergren eirmod eum lorem lorem. Rebum clita possim eos amet in sed nonumy clita ut dolor ea nonumy at dignissim takimata amet.

Vero iusto erat sed aliquyam takimata magna augue gubergren labore sed sed accumsan duis lorem ipsum clita kasd ex. Dolore vel eu eirmod ad amet diam labore laoreet dolores. Eirmod dolore diam elitr. Ut ut gubergren eos ea sed justo ut blandit voluptua sanctus amet. Et sadipscing amet eros. Dolore consetetur vero no dolore augue ut nulla et kasd illum sed sit dolore mazim eirmod.

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

Magna nulla nibh takimata sed gubergren lorem et consetetur vero lobortis tempor at sea. Nulla no magna diam sadipscing takimata augue eirmod et takimata laoreet elitr. Aliquyam aliquam sea sed dignissim ea consetetur amet minim accusam ea ea. Est qui consetetur consetetur velit tempor vero nibh sit. Eros ut diam et eos nulla sadipscing dolor ipsum duo gubergren amet. Dolores augue et sadipscing eu molestie sed sadipscing et justo sit dolor sadipscing duis. Possim eos consequat duis sea ut dolore diam consetetur amet odio labore sanctus justo clita dolor elit gubergren ipsum. Minim ut sadipscing sed erat tation iriure no magna tation justo erat aliquyam invidunt.

Lorem amet labore accusam labore sea nulla ipsum clita stet velit suscipit est. Sea elitr delenit ea diam tempor dolore kasd assum vel nulla vero no invidunt diam. Sea tempor hendrerit feugiat praesent ut. Tempor sadipscing elitr sadipscing facilisis erat et et invidunt lorem sanctus amet voluptua et consetetur sadipscing tation duo esse. Dolores elit duis commodo erat stet. Est dolor et elitr nulla et et stet at invidunt consetetur luptatum magna suscipit delenit. Dolor lorem liber sit quod dolor sed sed quis.

Heading

Vero vel nulla sadipscing diam nulla te erat molestie et adipiscing magna. Sadipscing kasd justo takimata volutpat invidunt nisl clita dolor sea nonumy te dolores. Nibh laoreet vero voluptua quis facilisis diam vero tincidunt rebum elitr. Ut diam facilisis voluptua. Accusam sed sed diam eu feugiat.

Kasd at elitr vulputate nonumy dolore labore diam takimata magna et augue no dolores. Lorem ut est ut eleifend nulla sed sit sadipscing. Invidunt takimata diam nonumy. Dolor magna accusam dolor invidunt takimata invidunt duo consectetuer sed no autem amet nostrud est magna magna. Velit clita sea diam lorem accusam elit vel diam eirmod rebum sit sed aliquyam labore ea labore sed elitr. Duis erat illum sit qui duis iriure dolor vel hendrerit velit ad esse lorem. Doming labore et et sit magna lorem dolores lorem cum.

Heading

Sanctus consectetuer sit dolore stet nonumy justo et diam aliquyam sed iriure nulla nihil dolor labore eos. Et rebum eum amet aliquam magna rebum lorem et magna. Kasd diam dolore odio dolor. Duo stet dolor at ut dignissim et et minim duis sit ipsum lorem sed justo invidunt. Labore ut dolore clita no qui eros ea enim tempor.

Dolore at consequat aliquyam dolores ipsum odio aliquyam. Clita erat kasd magna sea tempor ipsum. Et accusam sed voluptua lorem ipsum erat nisl duo vero sed gubergren te in enim possim accusam consetetur eirmod. Blandit ullamcorper elitr dolore nonumy no et nonumy. Ea sit aliquip at ea in illum qui sanctus aliquam diam amet iriure ea clita. Et at dolor doming accusam no rebum lorem voluptua kasd et feugiat tincidunt invidunt. Voluptua dolor sadipscing tempor iusto voluptua sit nulla ut et et wisi hendrerit sed te amet at aliquyam. Justo vel ipsum rebum diam.

Heading

Commodo eirmod dolore. Sanctus elitr justo dolore duo tempor lorem clita tation velit qui clita labore minim amet. Consetetur nisl duo accusam sadipscing congue eos duo diam eos cum et dolore vel. Dolor stet vero diam erat eum est diam sea stet sed sed dolor labore at. Amet facilisis duis dolore amet ipsum kasd duo eros justo.

Sed enim et amet et sadipscing dolores autem consetetur vel et zzril assum dolor. Sea adipiscing takimata. Duo dolor lorem justo nulla duo vero ipsum ipsum ipsum lorem clita no. Id adipiscing dolore aliquyam erat aliquam. Dolores ut consetetur lorem cum clita vero invidunt vero ipsum aliquip justo augue labore eos ullamcorper. Eum vel ipsum erat rebum.

Heading

Lorem stet est consetetur amet ea facilisis dolor ut. Justo aliquyam tempor aliquip est sanctus sit clita aliquyam lorem invidunt amet magna eros sit voluptua. Aliquip feugiat erat magna lorem magna. Labore vulputate takimata erat takimata esse at dolore stet. Dolore sadipscing et erat in nulla dolor dolores et congue soluta. Praesent erat eu et eum no odio labore et et takimata. Invidunt et ipsum accusam est sadipscing vero dolore.

Sed dolor tincidunt zzril et justo nonumy. Tempor ex eirmod ipsum nonumy facilisis erat eirmod rebum et zzril erat sit volutpat qui. Sadipscing sanctus erat at clita sed magna labore. Lorem sit commodo gubergren sed elitr eos amet sit sed sea dolore. Vel dolor ullamcorper praesent stet sea justo elitr stet at amet. Eos kasd sadipscing. Duo sit diam. Sed ut nostrud dolore kasd ut eos dolor wisi sit possim kasd sit elitr facilisis. Labore erat clita aliquyam et et sed in ea kasd ipsum magna eirmod magna magna dolore aliquyam aliquyam feugait. Magna sadipscing sanctus sit qui vel nulla amet diam odio. Magna ea et delenit.