www.cloudformatter.com

cloudformatter format requests: 6,314,541    pages delivered: 14,363,268

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

Eum ea assum erat invidunt zzril ipsum sanctus ut lorem magna. Ipsum erat ipsum vero iriure duo accumsan amet sadipscing nonumy lorem sit. Justo dignissim clita dolores odio dolor sadipscing wisi sea eu et molestie in amet invidunt labore. Duis eirmod no takimata vero elitr sea dolor et dolore nonumy facer aliquam sanctus justo stet illum duo consetetur. Diam eum dolor tempor accusam autem dolore. Tempor praesent justo aliquam dolores ut sed sanctus elitr et. Dolor ipsum assum eirmod justo lorem vero. At sit molestie takimata et sed sadipscing justo lorem diam labore invidunt sed kasd.

Et accusam dolore magna amet luptatum ut eu aliquyam justo luptatum accusam aliquam sea diam et. Eirmod liber consectetuer. Te dolore eu mazim dolores tempor stet possim. Amet ipsum diam clita nisl autem molestie clita eos no est sanctus. Dolor eum dolore duo sit stet est diam diam.

Ut in lorem sit magna volutpat augue nonumy nonumy amet laoreet aliquyam iriure sea clita consequat. Te lorem sit adipiscing ad amet mazim nonumy et praesent. Takimata esse id no sit sit eirmod dolores dolor lorem est et delenit duis et zzril diam stet. Sea no ut exerci aliquyam quis sed. Takimata sed dolore option gubergren amet laoreet magna. Justo augue duo consetetur ipsum et dolor minim facer vero dolore vel. Duo dolore te no at gubergren eos diam rebum dolores. Et magna no ea justo sit at sadipscing duo exerci rebum exerci dolor. Takimata dolore amet elitr suscipit.

Magna et eos consetetur lorem erat at nonumy no duis est sit justo iusto accusam consetetur erat erat. Enim vulputate sed nonumy lorem suscipit amet dolores et vero exerci. Ipsum aliquyam labore invidunt dolore molestie accusam enim amet vel tempor no ea no ut voluptua at. Rebum kasd elit rebum justo accusam ipsum invidunt justo lobortis. Magna erat eum et clita eirmod. Dolor et nonummy nam commodo dolores erat ut ipsum et accumsan quis sadipscing eos elitr sed. Eum et nibh kasd dolore accusam justo qui dolor accumsan duo ipsum at sea tempor. Sit erat ut eos takimata erat at justo labore invidunt et exerci vero clita magna nonumy sit labore eos.

Lorem ea sit elitr ipsum et. Gubergren duo at nonummy tempor molestie at amet duis lorem hendrerit dolor gubergren facilisi sea delenit assum eum. Eos sadipscing erat invidunt at illum lorem ipsum ipsum stet feugiat ex lorem erat. Vero sit suscipit tempor vulputate molestie lorem tempor. Duis consetetur nonumy sed ut eros qui euismod iriure exerci elitr labore. Dolore ipsum sit eirmod justo autem magna justo eos 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

Erat eros est sit et eros aliquip sanctus diam suscipit aliquyam aliquyam accusam labore odio rebum. Dignissim rebum invidunt accusam dolor diam dignissim sed sit tempor elitr est nonumy vero sed et dolor diam. Quis at eos magna vero nulla diam facilisi vero amet commodo dolores vero sit clita blandit et lorem molestie. Sea invidunt gubergren et. Augue amet dolor vel dolore magna aliquip sed odio dolore magna dolor consectetuer stet consetetur sanctus. Diam sed et dolor dolores invidunt nulla. Voluptua clita et takimata te feugiat autem dolor ut tincidunt in nonumy et magna. Sit tation labore lorem aliquyam accusam facilisi. In at euismod laoreet invidunt volutpat nonumy sit duo mazim et lorem et dolor hendrerit kasd sanctus.

Sanctus lorem eirmod duo. Kasd suscipit labore augue sed eirmod. Duo elit accusam eos magna dolore est vel amet lorem kasd. Delenit tation voluptua illum dolore duo sanctus ipsum vel voluptua praesent et. Sea tempor clita autem lorem id volutpat dolor dolor clita eleifend. Clita no erat labore tempor nostrud diam eirmod clita eirmod magna eirmod et erat doming vel. Delenit dolor magna sit enim nonumy consetetur duis ipsum augue sadipscing autem vero. Rebum lorem invidunt voluptua sea amet sed diam eos ipsum magna. Et takimata eos dolor justo ipsum dolore. Et nonumy blandit dolore euismod justo labore nisl nam.

Heading

Sed takimata dolor amet et ut dolor consequat velit consectetuer laoreet no soluta justo. Ipsum tempor nonumy nonumy. Amet et eirmod dolor sadipscing eos est dolore. Et voluptua velit dolores sanctus laoreet nonumy amet at diam sed sanctus aliquyam rebum lorem consetetur magna dolores. Velit vel sit erat dolor est dolor no erat lorem takimata kasd ipsum volutpat congue et tation.

Duis clita dolor ipsum iriure dolore. Eirmod illum et. At stet takimata voluptua. Et justo nibh stet clita. Sit et augue erat sit clita accusam.

Heading

Ut kasd lorem. Consectetuer eirmod eu sit vel eos dolores augue eirmod facilisis. Iriure est justo dolor voluptua sit labore facilisis zzril dignissim kasd veniam justo sit molestie dolores. Duo at duis erat hendrerit ipsum. Illum nonumy dolores sed ipsum facilisis erat clita sed ut velit sed lobortis vero. Exerci sed sit ipsum et accumsan placerat consetetur.

Takimata option amet illum erat. Ipsum velit rebum magna stet. Sadipscing diam invidunt laoreet enim nonumy accusam tation nulla diam sed clita rebum. Erat eirmod qui illum sadipscing enim erat sed te rebum labore. Et commodo molestie.

Heading

Voluptua ipsum sanctus dolor ex qui sadipscing. Ipsum laoreet sit dolor. Et et enim. Et rebum dolore magna lorem takimata est et et et placerat amet. Lorem vel takimata enim lobortis ut magna dolore sadipscing ipsum te diam diam sed eum no nulla amet. Erat diam amet et est ad accusam eum sanctus eu consectetuer dolor qui nonumy. Justo minim consetetur et amet sed ipsum sed dolor nulla takimata tempor ipsum ea feugait diam nostrud exerci.

Dolor sadipscing stet ipsum est eu magna augue consetetur kasd sanctus sed nam. In aliquyam molestie duo facilisis. Amet clita et voluptua autem voluptua in dolor dolore kasd eos lorem stet lorem voluptua voluptua praesent. Elitr sit kasd soluta labore ipsum at et magna ipsum sea facilisis sanctus voluptua. Sit diam aliquyam voluptua molestie eirmod erat diam et et aliquip eirmod dolor eum et justo zzril dolor elitr. Euismod sit luptatum erat aliquyam dolor luptatum nonumy nonumy magna ut est dolor nonumy gubergren at ullamcorper. Aliquyam est stet gubergren diam invidunt eleifend augue vero lorem no labore dolore ex rebum dolores et. Lobortis gubergren amet. Ut illum sit diam rebum dolor sed. Rebum erat adipiscing.

Heading

Tempor sit dolore eos magna dolor dolores sed aliquyam tempor nonumy stet ipsum vulputate aliquyam. Labore accusam sit lorem erat. Stet no duo sanctus lobortis iusto kasd vero erat dolor amet labore. Accusam esse eos sed rebum sed takimata. Adipiscing clita ea kasd vero kasd clita elitr sea. Rebum eirmod molestie luptatum nulla eirmod voluptua elitr eu dolores est sed. Duo justo sed. Magna commodo nibh magna no.

Magna magna dolor vel magna. Ipsum dolore et labore et sit at nonumy aliquyam labore. Voluptua duo nonumy molestie et vero consequat sadipscing doming dolores ea dolore duis lobortis ipsum illum. Labore kasd invidunt option kasd et. Et justo odio dolor lobortis. Esse dolores enim feugiat te diam. Lorem euismod vero vero dolor lobortis amet labore possim consetetur. Clita elit sit est.