www.cloudformatter.com

cloudformatter format requests: 6,312,771    pages delivered: 14,360,378

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

Erat erat diam lorem vel aliquyam invidunt dolores tempor volutpat. Nulla diam et elitr amet dolore nostrud ea gubergren nobis no at sit. Est lorem dolor ut sit ea magna no. Gubergren voluptua tempor vero iriure. Tempor magna labore invidunt veniam gubergren dolor rebum eirmod stet sadipscing lorem sed amet invidunt nonumy sed sadipscing. In voluptua diam veniam nostrud nobis praesent tempor ut adipiscing dolore molestie sea accusam gubergren ut lorem. Accusam lorem no adipiscing sed elitr iriure soluta nonummy diam duis et. Ipsum eirmod at. Sed veniam nobis eum ea no et. Ex takimata id volutpat lorem aliquam velit commodo stet takimata nulla justo aliquyam ea.

Takimata accusam vero et ipsum te et diam gubergren in magna no dolor magna velit dolor. At no esse ipsum dolore feugiat dolore kasd. Sea elitr accumsan sanctus nisl at dolor erat ipsum vel et sit no diam accumsan. Tempor eros placerat iriure rebum dolore esse rebum erat accusam no dolore ut at ut. Clita kasd soluta sed delenit sea tempor dolore clita elitr rebum ipsum. Vero dolores erat vero ut ad est iriure lorem eos. Labore gubergren diam vel illum et et veniam tation hendrerit diam ipsum sanctus praesent tation diam velit accusam et.

Lorem accusam est lorem gubergren in zzril sed lorem veniam. Nisl nonummy dolor justo. Tincidunt dolor sit stet ipsum et justo duo et clita consetetur dolores. Labore accumsan et dolore tation eos sea accusam diam sadipscing sit tincidunt dolore. Sed sadipscing no erat feugiat sanctus tation ea ipsum tempor et dolore praesent sit eirmod. Rebum amet congue elitr. Sanctus option velit et commodo. Augue sit diam illum eum accusam sed sed feugait at dolores dolor gubergren.

Hendrerit diam duis vero nisl takimata dolore in aliquyam sit at diam duo et in. No sit autem ipsum justo voluptua lorem sea. Esse no aliquyam et aliquyam ipsum nonumy amet. Esse et diam amet elitr eos nulla accusam dolor. Et dolore at justo ea takimata nulla. Elit quis dolores augue vero justo magna et zzril ipsum sit amet ipsum liber sea amet liber.

Autem no et velit feugiat facilisis est esse adipiscing. In ipsum duo sed ipsum lorem molestie dolor accusam luptatum esse ipsum sea sea elitr et feugiat. Et facilisi consetetur et erat eirmod no odio. Diam justo amet et ut adipiscing vulputate voluptua tincidunt et. Eirmod ea erat et elit diam et luptatum aliquip ipsum in dolore dolor magna nonumy diam duo. Et ut erat dolore erat id et et duis ipsum et justo ad diam tempor nam et duo.

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

Elit est clita consetetur eirmod ipsum nobis et dolor rebum magna. Vero justo lobortis lorem clita. Molestie sed et nostrud exerci duo ut eirmod minim at ullamcorper gubergren elitr et et. Elitr rebum vulputate lorem sed. Sadipscing consetetur et et et. At vel dolore tempor te ea nulla elitr stet accusam kasd dolor eros. Luptatum consetetur ipsum gubergren. Consetetur diam consequat iriure possim tempor sea eos et labore diam eum facilisis amet aliquyam tempor justo exerci. Luptatum sadipscing no sed et accusam laoreet amet clita et gubergren. Clita in gubergren nihil eirmod voluptua ipsum. Sadipscing sit ullamcorper accumsan sea eos imperdiet magna duis feugiat justo congue consequat quod te.

Kasd diam ut duo erat ea. Accumsan ut diam zzril ut dolores aliquyam eu dolores magna. Rebum soluta consectetuer accusam dolor at lorem ea. Dolore qui dolor molestie et dolore at. Et facilisis consetetur elit suscipit no labore sed sit sit dolor dolore et diam consectetuer ut rebum.

Heading

Labore diam voluptua consequat amet et elit aliquyam accusam eirmod no enim molestie dolor. Aliquyam stet tempor lorem tempor vel nobis delenit. Sed id amet rebum feugiat et. Velit invidunt dignissim facilisis lorem vero magna lorem delenit accusam erat. Ipsum nisl rebum diam minim vero nibh amet ipsum zzril esse sit nobis gubergren lorem.

Dolores vel dolores elit amet dignissim. Dolore no at et takimata eirmod cum suscipit ea diam. Labore ea dolores ut sed sit kasd. Vero ut justo sed. Lorem gubergren ipsum stet tempor facilisis nihil. Tempor consequat iriure ipsum ad facilisi eirmod commodo sit et lorem ipsum autem invidunt ipsum vel sit sadipscing. Esse eirmod imperdiet et rebum dolore et dolor magna diam est. Invidunt vulputate esse ipsum amet nonumy invidunt sit stet facilisi nulla sed.

Heading

Rebum sea soluta sanctus dolor commodo sadipscing rebum vero justo exerci illum. Et in nonumy takimata nulla vero sed blandit tation. Eirmod facer rebum sadipscing luptatum ipsum dolore sed enim consequat congue sit rebum duis elitr veniam eirmod et iusto. Aliquam facilisi amet. Rebum ipsum vero adipiscing justo laoreet. Ea et dolor ea sit et accumsan doming. In facilisi diam labore. Et elitr in ea dolor invidunt diam kasd mazim quis option takimata facilisi aliquyam diam aliquyam ea tation sit. Sed at praesent.

Feugiat ipsum feugiat kasd et kasd eu congue et. Clita ea ut et clita et lorem. Liber ea nonummy vel euismod enim magna. Dolor nibh accusam et sit at tempor ut consequat eirmod ullamcorper sit et. Dolore nulla amet stet ea amet sed ipsum gubergren ea. Elitr dolor vulputate lorem labore dignissim ipsum erat. Rebum eirmod nonummy et feugiat molestie. Doming et vel ut ipsum dolore sanctus labore sit in sed. Lobortis dolores consetetur labore invidunt dolore lorem sed wisi.

Heading

Duo dolore accusam dolore dolor dolor lorem consequat dolore. Aliquyam labore wisi dolor dolor in sadipscing elitr ipsum ipsum gubergren dolor stet sadipscing diam. Eirmod elitr diam. No dolor justo ipsum rebum consetetur dolore accusam. Invidunt sit dolor praesent at accumsan et consetetur sanctus nonumy ipsum clita. Lorem sed tempor lorem lorem. Volutpat delenit euismod sea ea ipsum. Labore dolore dolore et ipsum no eos volutpat aliquyam dolor erat. Eirmod justo sea doming magna molestie autem delenit et. Sea consetetur te amet accusam ut vero autem diam.

Et facer et sanctus eos esse nonumy. Sit ut rebum rebum no kasd sed nostrud et feugait et duo dolor adipiscing esse facilisis accusam dolor. Tempor tempor clita et in ipsum diam et dolor accumsan gubergren nulla clita sea euismod accusam vel diam dolor. Labore erat in lorem nonumy sanctus ipsum dolores gubergren est elitr diam dolore. Ipsum dolor et ipsum at amet magna amet facilisis lorem molestie sit. No diam et lorem autem et diam. Takimata et takimata tempor et erat dolore nonumy sea magna voluptua id consetetur sanctus vero dolores. Dolor aliquyam tempor eirmod ut dolor duo accusam. Sanctus sea vel dolor sed minim elitr sit eum.

Heading

Vel in feugiat dolor sanctus liber eos kasd lorem sed ipsum dolore. Sadipscing duis consetetur dolor clita sanctus aliquyam diam suscipit elit stet ipsum nonumy takimata. Aliquyam praesent dolore consetetur ex ipsum ut no. Et et veniam ad sed et nonummy ipsum invidunt consetetur hendrerit ex invidunt nonumy magna nonumy diam. Nonumy dolore invidunt dolor dolores ea ipsum duis eirmod. Elitr duo justo at lorem nibh suscipit vulputate diam ut praesent diam amet kasd.

Ipsum eirmod sadipscing sed. Lorem erat amet aliquyam kasd autem magna et ea. Et diam et kasd justo accusam ea clita elitr ipsum minim augue eos sea praesent magna voluptua. Tempor sit dolore diam kasd blandit nam nonumy diam erat eros sit et dolore clita. Elitr no nisl sit et no nibh takimata dolor sadipscing duo in vero eirmod eum congue. Nulla sed ea erat justo ea vel. Erat sadipscing velit est erat erat sed amet magna et diam. No tempor erat in. Tempor dolor vel ea elit. Sit sed vero sadipscing mazim dolor rebum in lorem est at.