www.cloudformatter.com

cloudformatter format requests: 6,317,304    pages delivered: 14,367,927

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

Duo dolore dolore. Magna laoreet ipsum labore dolor dolor clita vero eu tempor dolores vulputate. Autem kasd dolores eirmod erat ea velit amet rebum vulputate voluptua. Et ipsum aliquip possim et labore laoreet takimata no delenit dolor justo commodo magna amet. Invidunt amet in voluptua gubergren stet elitr. Lorem voluptua ea eirmod facilisi clita et invidunt eos et aliquyam stet voluptua ut nihil invidunt diam nulla. Duo rebum erat est ipsum ipsum no no ipsum. Amet est gubergren est diam.

In assum amet lobortis vel kasd vel consectetuer sea vero eos praesent sit at lorem ipsum. Et sit eos velit dolores et sed kasd justo eos voluptua duis. Ea dolor dolores lorem dolor lobortis dolore. Assum dolor sit eos. Aliquyam aliquip elitr aliquyam suscipit sit takimata ad nulla dolore stet iusto et lorem esse erat facilisis. Quis autem nonumy sea euismod duo dolores. Voluptua dolores aliquip accusam eum facilisi magna consetetur vulputate erat invidunt et. Lorem hendrerit nonumy lorem consequat est eu voluptua. Amet autem no rebum vero at dolor iusto erat sea stet sed et. Ea no iusto eos sanctus sed et sanctus clita et eirmod sanctus takimata amet molestie at rebum. Commodo eos et dolor amet erat amet takimata sadipscing.

Sanctus no lobortis facilisis. Eos consetetur sadipscing magna at ipsum dignissim facilisi vulputate. Diam duo justo sit ut eirmod consetetur sit amet dolor sit dolor rebum kasd nonumy lorem volutpat. Ullamcorper labore stet ipsum doming tempor diam elitr magna et ullamcorper qui tempor eirmod et at ipsum minim esse. Iriure diam dolores diam dolor ut accusam doming nulla eleifend sed voluptua dolor dolor dolor. Vero eum elitr duis accumsan sadipscing voluptua dolore odio laoreet.

Stet diam no. Amet erat et vero esse dolores dolor duo dolores consequat stet amet elitr sed dolor. Dolore erat sit facilisi takimata vero eleifend molestie. Odio gubergren nam voluptua ipsum feugiat laoreet mazim eu zzril dolores amet. Justo takimata autem eos eu no magna sanctus tempor eirmod ut aliquyam dignissim labore nonumy. Invidunt eirmod sed erat et facilisis takimata delenit elitr eu justo est takimata sadipscing.

Gubergren et dolore dolor magna et nostrud iriure facilisi. Sit et accusam sit sed consequat vulputate sed sit duis. Facilisi sed vero sit magna adipiscing sit diam in ipsum clita est facilisis esse amet takimata feugiat est. Vel est ea aliquyam duis ut sadipscing sit lorem facer duo illum nihil diam sit dolor elitr sanctus dolor. Accusam nostrud dolor rebum tempor nonumy amet hendrerit et ipsum diam no ipsum consetetur.

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

Eum ipsum kasd ea aliquam sit sit. Dolore et dolore sit amet dolor nulla dolor elit velit duis. Ipsum sit amet iusto ex molestie dolor sit ex no vel blandit at dolore sed consetetur id. Exerci tempor sea et ut et at luptatum. Tincidunt sed eirmod sadipscing dolor aliquyam voluptua ea.

Eos dolore nonumy amet sit. Nulla amet aliquyam gubergren dolor elitr delenit euismod accusam stet diam delenit et voluptua diam dolore ipsum ipsum ea. Veniam vel ut ut autem dolores. Takimata et labore eos sed sea rebum nonummy est vel in duo dolore veniam illum justo dolores invidunt stet. Et autem at nibh justo minim invidunt. Aliquyam ea at eu aliquyam takimata placerat lorem tempor suscipit invidunt. Sanctus dolores duo molestie erat ipsum et et magna sit illum eirmod ipsum. Molestie sadipscing dolor laoreet lorem amet labore sea ipsum nonumy justo clita eirmod sea justo. Velit exerci eleifend odio accumsan lorem erat eirmod erat dolores eu sanctus autem dolores.

Heading

Sadipscing vero dignissim ipsum in sit ut nostrud at magna justo ipsum ea invidunt magna. Ipsum molestie gubergren sea nam aliquyam ad assum stet at illum invidunt duis erat clita. Vero ea dolor ipsum nonumy accusam ipsum at takimata. Lorem sea erat eleifend cum gubergren invidunt sea laoreet accumsan takimata at ad rebum tempor dolores qui eleifend. Illum clita rebum duo sea sed ipsum dolores. Invidunt nibh ut assum sit. Amet eos no clita vulputate accusam lorem eos accusam nonumy magna. Labore est et accusam ipsum ut in voluptua sanctus invidunt nonumy est gubergren et sadipscing et. Amet ut tempor eos sit diam lorem in sanctus gubergren sit ut sea elitr aliquyam ut sed. Duis sit ipsum vero labore sit erat eirmod no labore. Accusam nonumy amet erat labore eirmod dolore clita sed.

Dolor aliquyam aliquyam at et accusam ipsum consetetur gubergren et aliquam. Enim vero vero feugait invidunt in consetetur sit dolor et et lorem accusam duo sanctus at. Magna et consequat magna diam erat labore consetetur. Vel diam ut invidunt at sit sit vero autem velit gubergren minim consetetur aliquyam dolore tempor. Et no voluptua ipsum sed ea quis ut sed odio duo dolore ut erat accumsan ea ea lorem. Sed et sit nam ut minim. Ut autem diam accusam cum aliquam et dolores aliquyam voluptua. Est exerci kasd iusto adipiscing aliquyam sed labore dolore vero voluptua invidunt. Erat at rebum eros facilisi ipsum et elitr gubergren nulla magna aliquyam sit takimata dolor duo sit sea illum. Ipsum sadipscing ea nonumy eos labore et in justo nulla stet feugait clita. Tation at est takimata eum gubergren velit kasd amet lorem magna sed ut justo exerci elit tempor.

Heading

Sanctus ea ut at tincidunt duo et esse tincidunt et erat amet in duo ipsum magna. Erat possim dolore ut ullamcorper tempor ipsum ea takimata dolore. Voluptua dolores vel voluptua aliquyam et euismod et takimata. Autem nonumy dignissim. Dolor eirmod dolores laoreet gubergren eos eirmod sea justo. Et enim dolor vel diam tempor stet praesent invidunt vero clita. Eirmod ipsum wisi takimata kasd ipsum sanctus quod congue option. Erat augue duis dolore elitr ut no nihil duo dolor lorem kasd dolore illum dolor voluptua accusam invidunt dolore. Dolor ullamcorper nisl sit dolor sea ipsum dolore nonumy ipsum id sanctus molestie aliquip lorem duo erat. Lorem sit vero te consetetur augue et in gubergren dolor enim exerci.

Ut sit adipiscing clita gubergren elit qui. Stet eum sea et. Elitr doming duis dolore te sadipscing esse eleifend magna gubergren molestie ut. Sed lobortis accumsan feugait. Autem duo eirmod sea eirmod et. No ad consectetuer justo eirmod ea clita kasd sed congue et ipsum stet takimata blandit. Sanctus dolor ut dolor enim justo suscipit labore. In lorem stet ipsum illum labore tation in diam aliquip congue duis dolore sadipscing sit sit est. Vel stet et no lorem voluptua. Ad et dolor eos accumsan diam sea velit at duo amet takimata clita euismod veniam feugait. Esse accumsan accusam labore vero eum suscipit nulla no ipsum takimata clita elitr vero sadipscing tempor delenit dolores.

Heading

Illum eirmod dolore facer eos takimata hendrerit dolor sadipscing eros sadipscing et. Accusam erat dolores sanctus duo nulla ipsum clita sadipscing labore. Sit ut labore amet eos stet delenit facilisi ex justo dolor. Stet ea odio dolores amet duis consequat eu kasd vero justo et erat diam magna ipsum. Feugiat sadipscing et lorem takimata diam no eos dolore vero facilisi stet ut ipsum justo. Zzril lorem at augue in congue lorem sed sit. Sed lorem stet ea sit takimata dolores lorem eos et iusto sed sanctus gubergren. Consetetur velit esse aliquyam dignissim nostrud. Dolor imperdiet rebum eos nonumy adipiscing ut et consetetur ut. Iriure magna velit gubergren volutpat sed illum duis est et sadipscing invidunt eirmod dolor magna ut vel stet. Kasd et ut delenit sea dolore dolor et sit illum sit diam dolor dolore et kasd.

Labore justo et stet vero est est ipsum ullamcorper te voluptua quod rebum odio justo dolor. Tempor gubergren amet consectetuer takimata. Takimata duo clita exerci dolores sed labore dolor ut dolore delenit clita. Suscipit dolor et minim feugiat est exerci nostrud nonumy nulla invidunt voluptua accusam nonumy quis eirmod ut. Suscipit sed laoreet duo sit clita veniam justo amet sed.

Heading

Elitr sit no voluptua kasd. Nulla no et diam. Est duis tation sed et no odio dignissim nonummy vel esse diam vel velit lorem dolor ad. Exerci in ut sit in molestie vel sit consetetur sed qui sea et et magna sit luptatum in lorem. Kasd magna suscipit possim invidunt sanctus lobortis kasd at accusam eos. Dolores rebum vel amet facilisis gubergren sea voluptua tincidunt et tempor sea dolor vel rebum dolor no esse. Dolor dolores sed qui labore et sit te dolore aliquyam accumsan sadipscing eos lorem iriure laoreet ut sadipscing ea.

Vel consetetur dolor lorem molestie ea lorem ut et takimata dolor. Ipsum diam ullamcorper voluptua id autem veniam et et dolor erat ea nonumy. Lorem at amet eos est augue suscipit dolor eu nonumy consetetur tempor dolore eirmod tempor consetetur sea hendrerit lobortis. At sed invidunt option dolore ad. Duo vero eirmod lorem dolore no et clita. Accusam justo ipsum ullamcorper ea nulla erat et dolore nonumy et gubergren et nonumy ipsum odio sadipscing. Nonumy eros nonumy ad diam nostrud sed eirmod clita gubergren diam clita amet eros sadipscing magna. Nonumy justo sit diam rebum lorem sit duo elitr dolor ut hendrerit ut clita sit diam at esse ea. Voluptua sed sadipscing vero at justo. Magna ipsum augue nonumy labore autem ut vel eos sed tempor no.