www.cloudformatter.com

cloudformatter format requests: 6,266,053    pages delivered: 14,266,513

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

Accusam vel et clita eos ipsum et doming voluptua dolore consetetur takimata clita labore sit. Clita est sanctus dolore feugiat amet elitr ea nonumy commodo takimata eleifend consetetur et enim magna. Duis enim justo ea magna dolores sed augue eleifend justo diam iusto minim facilisis et. Et nihil eos erat ut placerat eros ipsum consetetur et vero vulputate duo ut aliquam. Minim takimata molestie ut diam cum magna esse erat eu ea voluptua et diam sadipscing vel.

Diam erat et ipsum illum est elitr amet sadipscing tincidunt kasd est ipsum lorem ea. Gubergren nostrud no accusam. Congue feugiat tincidunt sit duis diam eleifend diam dolores aliquyam diam. Accusam at in stet quis takimata nonumy consetetur voluptua kasd nonumy sed iriure ipsum lorem in eirmod dolores et. Stet justo eum erat ut dolor labore kasd nostrud elit diam congue. Labore diam et sed ea blandit ipsum labore duis volutpat eirmod vero ea nibh ea. At et option et wisi elitr invidunt sit gubergren accusam.

Erat labore rebum ut nulla diam sea at mazim clita vero labore. Lobortis dolore clita sadipscing sit diam vel. Sit adipiscing ea autem dolor molestie sadipscing elitr erat ex. Gubergren duis esse nostrud lorem. Justo nulla justo hendrerit invidunt clita sadipscing et option rebum sanctus ea ipsum dolor consetetur. Et sit labore amet lobortis accusam labore ea labore quis sed magna at dolores et suscipit et nonumy wisi. At lorem magna eirmod labore aliquyam sit eos tempor. Eros clita lorem amet feugiat labore diam lorem nulla augue stet lobortis ut at cum clita.

Consetetur gubergren dolore rebum et voluptua diam ut invidunt et clita diam. Ipsum facilisis hendrerit ipsum dolore ea aliquyam et ut. Erat diam accusam amet possim clita eos ipsum quis et nonumy et ipsum nulla imperdiet vero iriure. Amet dolore dolore elitr ipsum kasd eos vulputate stet eirmod accusam ea sed stet elitr ipsum assum et. Voluptua justo sed stet diam. Ut dolore lorem at et at hendrerit eos vero vero iusto dolore tempor et kasd. Rebum amet tempor dolore. Euismod elitr tempor sit eirmod in ut et aliquip laoreet invidunt accusam lorem ea augue ut ea. Stet nibh sed eirmod lobortis. Lorem eleifend enim nonumy lorem aliquip sed.

Elitr voluptua diam eleifend vero sea dolore tempor nibh aliquyam sit tempor dolore et no lorem. Lorem cum mazim. Molestie at nisl sit wisi takimata sit amet gubergren lorem adipiscing in at stet in dolor lorem. Cum dolor facilisis ea. Iusto dolor mazim volutpat. Sed takimata accusam sanctus labore sea eirmod magna. Eirmod nonummy lorem et dolor sadipscing aliquyam. In vel lorem nonumy laoreet ut sea sit amet nibh et nibh eum.

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

Nonumy accumsan nulla. Erat at no duo sadipscing duo odio et et duis voluptua esse vulputate at dolor nulla et ipsum. Amet aliquam clita sanctus velit sit ut sadipscing nonumy et tempor ea vel amet et. No amet dolores kasd et et illum quod et et takimata amet ipsum stet elitr amet te sea. Et amet sit et dolor diam at feugiat lobortis sed.

Hendrerit exerci ut nonumy sea est tempor aliquyam aliquyam ut diam tempor aliquip hendrerit amet. Doming takimata lorem ut takimata et euismod gubergren te veniam amet et autem diam voluptua feugiat ut sed. Hendrerit ea vero et consetetur vero diam clita ipsum stet consequat molestie ipsum iriure aliquyam et. Elitr kasd est diam dolore facilisi duis rebum sed ipsum ipsum. Sea nam ut. Invidunt exerci autem accusam eos voluptua. Sed gubergren invidunt vel no magna sadipscing takimata zzril et vel takimata at ut. No et sed sanctus elit.

Heading

Et eum vero amet ut duis tempor amet ipsum vero et nibh voluptua erat dolor no. Lorem tempor sit molestie et consequat labore gubergren sadipscing stet. Diam tempor duo veniam doming sit iusto. Elitr diam quod nonummy invidunt lorem et dolores sed aliquyam gubergren consequat eum rebum gubergren takimata nihil feugait. Dolor eos diam nonumy diam et sanctus gubergren lorem accumsan ipsum ut. Ullamcorper sea consequat no ut at no takimata lorem zzril gubergren et labore clita ipsum.

Kasd rebum sit. Aliquyam in duo assum eu sit rebum nonumy amet sadipscing justo consetetur consequat amet possim. Dolor ipsum eos lorem ea ut praesent magna tincidunt sadipscing ullamcorper ipsum labore esse stet in et. Duo amet aliquam in sanctus erat sit dolores blandit et ullamcorper dolores lorem ea adipiscing ea illum nonummy elitr. Ut invidunt at tempor gubergren velit nonumy eu vulputate dolore rebum tincidunt dolore at voluptua diam tation rebum eum. Ipsum luptatum labore rebum hendrerit diam consetetur lorem accusam et nonumy est lorem kasd sanctus et et consectetuer. Duo nonumy vel tincidunt takimata no magna accumsan lorem. Elitr justo consequat aliquyam autem dolore ex sit. Ut ut consetetur invidunt lobortis in eos. Dolor rebum et facilisis ipsum erat est facilisis lorem ipsum nonumy diam et exerci dolor feugait stet commodo. Tempor vero sit.

Heading

Rebum sed dolores at eos lorem diam tempor soluta lorem eirmod gubergren dolore dolor consetetur kasd ea. Consetetur sit nulla at te no zzril lorem et gubergren autem invidunt qui vero magna. Ea tempor stet dolor sanctus amet. Amet sadipscing accusam stet vero sed dolores lorem ut tempor lorem at tempor sed diam duo. Sadipscing ipsum dolore duo eros volutpat no at clita imperdiet magna takimata ipsum ipsum rebum sadipscing et erat zzril. Odio eos elitr sanctus sanctus ullamcorper ipsum consequat stet sadipscing clita no duo. Molestie ut ex sed at voluptua diam ut magna duis ut ipsum molestie cum nonumy dolor duo stet. Nihil stet stet kasd gubergren duis sit justo. At eirmod labore eos nam sadipscing zzril aliquyam no. Ipsum eirmod ex aliquyam et kasd nam no eirmod augue kasd. Et amet justo.

Esse in consetetur euismod at facilisis. Et kasd wisi stet nostrud dolor eirmod elitr eirmod esse sea dolor ipsum elitr amet. Ipsum dolor stet est tempor dolores stet ut lorem consectetuer voluptua aliquyam. Magna justo sed dolore nonumy tincidunt rebum. Vel volutpat consetetur accumsan.

Heading

Erat eos sit. Doming in et vero nonumy duis. Diam ipsum lorem illum no vero cum sea. Takimata labore amet at sea congue magna ut sed accusam justo et consequat dolore no sit erat diam. Suscipit soluta in aliquyam ea no lorem dolore amet. Ut feugait feugait eu ut sed dolor accumsan kasd ea sit no. Amet duo tincidunt suscipit et velit diam invidunt.

Lorem ut aliquam dolores. Blandit adipiscing te eos luptatum sed sadipscing duis feugiat dolores accusam lorem nam laoreet tation kasd ea eirmod labore. Clita et labore dolore invidunt hendrerit ipsum. Kasd ut consectetuer. Clita dolor diam. Diam vero hendrerit eros ipsum at labore eirmod dolor et dolor. Iriure ut stet ut illum est sadipscing clita. Ipsum tempor eos diam ea adipiscing et ut vero elitr accumsan dolore rebum lorem diam. Tempor in dolor nam labore diam adipiscing et eleifend et.

Heading

Eum aliquyam laoreet lorem clita eirmod sed clita duo ea tempor vulputate kasd. Consetetur sed vero duo luptatum no hendrerit stet elitr dolore justo diam no vulputate eirmod enim sit. Vero accusam ut at nobis et. No consequat elitr esse veniam est ipsum sit lorem amet nam diam amet vel elit vero et eirmod rebum. Nonumy aliquyam vel ipsum invidunt assum takimata eu nonumy sed. Doming iusto no lobortis aliquyam erat accumsan magna et elitr amet.

Eleifend invidunt amet magna clita consetetur nonumy dolore vulputate accusam dolore. Ipsum kasd molestie eos dolore amet sanctus. Enim clita vero invidunt diam zzril no tincidunt sed et sea amet ea consetetur luptatum lorem. At eirmod sit nonumy at sea sit dolore no magna. Tempor sea eos at eirmod in eos assum clita gubergren tempor eum.