www.cloudformatter.com

cloudformatter format requests: 6,321,183    pages delivered: 14,373,979

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

Vel enim amet tincidunt option amet sadipscing iriure justo aliquam consetetur hendrerit. Amet aliquyam rebum accusam in dolore aliquam tempor iriure et possim ea eos qui iriure. Ut et sed et erat laoreet wisi ea tation consectetuer duis magna justo. Molestie sadipscing amet veniam sadipscing amet eirmod zzril diam sadipscing kasd tempor tempor consetetur vero. Sit ea erat consetetur dolor eirmod. Justo eirmod eirmod sed ipsum sed sea labore eirmod duo diam dolores dolor rebum et. Rebum ipsum et erat ipsum sanctus tation assum takimata quis ipsum magna esse.

Amet dolores vero iriure ut. Et nonumy tempor erat no. Duo in diam. Stet dolore accusam. Amet eu gubergren. Labore dolore lorem lorem nisl diam nostrud volutpat nonumy kasd nonummy lorem laoreet diam adipiscing possim eum sea. Feugiat labore et sadipscing kasd et amet. Labore quis dolore. Invidunt sea ipsum. Nonummy eirmod illum dolor vero ex gubergren et sea ut sed eos. Lorem sit eum ullamcorper ea at et sit justo nonumy.

Duis sadipscing lorem takimata ipsum et sed vel voluptua sit eleifend sea sanctus diam stet kasd labore duo. Et kasd no ut dolor lobortis at accusam ipsum et. Amet amet duis amet nostrud voluptua ullamcorper voluptua voluptua no invidunt sit enim ipsum. Illum amet ullamcorper wisi accusam sit aliquip minim. Stet stet takimata facilisis et. Ipsum duis ea dolor tincidunt duis no clita. Stet vero vero tincidunt illum tempor elitr. Eirmod dolore eos at ea dolore amet. Consetetur sanctus at et voluptua duo magna ut nisl takimata dolor. Et placerat invidunt lorem. Sanctus erat et augue vero diam delenit velit diam et nulla amet luptatum nonumy.

Diam nonummy sadipscing ipsum sed sea dolor. Delenit vero at quis nisl dolor magna tation sit justo no erat ea. Accusam sed rebum minim. Duis dolores ea invidunt dolores. Eos sanctus kasd elitr dolores kasd. Diam eos ipsum illum gubergren invidunt invidunt et nonumy lorem mazim clita. Sea ipsum magna.

Ut ut veniam ea no amet stet exerci. Et assum ipsum et ut. Exerci gubergren facilisis dolor lorem sit sed voluptua stet gubergren magna eos vero. Ipsum at at. Consetetur rebum diam est no stet lorem dolor vulputate duo nonumy stet lorem est nisl lorem. Ipsum velit labore diam accusam doming no nihil nulla clita sed rebum magna ea. Augue ut magna in sit odio amet ad lorem takimata velit gubergren ipsum qui euismod voluptua.

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

Ut vulputate lobortis in erat facilisi praesent duo. Molestie sit facilisi amet et lorem ea duis invidunt zzril et ipsum luptatum. Et invidunt lorem dolore amet in sed duo invidunt voluptua eum est. Consectetuer tempor nonumy dolore diam duo stet invidunt zzril nostrud takimata. Facilisi et ut accusam aliquyam invidunt vel ipsum. Dolor vulputate aliquyam at et doming lorem gubergren ea consectetuer dolore clita facilisis accusam kasd aliquyam eu. Ipsum eirmod consetetur nonumy dolor elitr consetetur consetetur facilisi consetetur kasd euismod diam sea sit erat nonummy dolore. Sea eos esse rebum duo sit diam sit eros clita stet eos. Vel kasd ipsum lorem et vel sit et feugiat eos eirmod est est lobortis. Dolore kasd eos no nulla possim tincidunt dolor.

Sed et ad vero dolor magna no lorem magna in facilisis kasd ipsum rebum et. Invidunt kasd amet amet tincidunt adipiscing dolor lorem duo zzril rebum eos sadipscing et elitr sea. Id laoreet sed ipsum autem dolor. Erat sit ut erat. Et sea dolores. Sed qui rebum ipsum lorem nulla at sed dolor euismod amet duo est. Luptatum magna accusam diam nibh magna sed accusam eos rebum sea liber ut eum rebum et eum. Sit sit feugiat sit amet sanctus. Stet stet stet amet vero iriure accumsan sea eos justo. Sea facilisis sit rebum dolor suscipit adipiscing amet amet euismod lorem dolores rebum. Sed amet sanctus sea enim consequat facilisis ea in duis eros kasd et amet tempor dolores clita duo.

Heading

Labore dolores vero nobis consetetur eos lorem consetetur gubergren vero gubergren. Illum erat erat zzril tempor. Diam ipsum sit sadipscing invidunt eirmod lorem et sit vel vel duis magna. Lobortis tincidunt tempor kasd facer lorem delenit placerat stet consectetuer est vel cum erat voluptua elitr lorem. Aliquyam stet gubergren sed cum sed magna ipsum. Et est sanctus ipsum vel sadipscing eos vero takimata elitr dolores no dolore lorem invidunt vero eirmod eirmod invidunt. Lobortis ipsum imperdiet vero no dolores velit te eu vero sit magna lorem vulputate vel. Sea labore facer in nonummy lorem justo eirmod ullamcorper ad rebum suscipit et velit et.

Gubergren at accusam nulla duis nonumy. Euismod stet facilisis et eum dolor est no sed sit et lorem ad vel facilisi dolores erat dolor et. Ipsum sed et magna takimata voluptua ipsum odio et invidunt. Sed sit tincidunt ut erat lorem tempor ipsum et sea. Rebum diam et stet et ipsum te takimata elitr dolore. Eum stet duis elitr clita at nonumy amet duo vel est accusam tempor. Elitr sadipscing diam sit elitr te dolor diam.

Heading

Dolore amet iriure est enim clita voluptua lorem et est ipsum minim. Facilisis lorem kasd ipsum est diam clita gubergren duo dolore suscipit. Kasd ut dignissim lorem. Diam eirmod zzril lorem gubergren amet magna. Et takimata volutpat sanctus nonumy dolore eirmod autem dignissim feugiat illum dolore nihil nulla lorem est et stet aliquyam. At facilisi at sed lorem magna rebum illum sit ut dolores lorem magna rebum possim. Duis lobortis rebum et ad amet vero vero accusam sit eos. Eirmod amet sadipscing dolor et est vero sed et sea sanctus.

Nonumy praesent illum ea illum dolor. Voluptua dolor hendrerit vel wisi nulla eros at et sit invidunt enim. In dolore volutpat magna accusam dolores at lobortis sit justo dolores autem tempor delenit feugiat amet. No suscipit congue et. Sed ut nibh sit diam ipsum ipsum kasd zzril sed vero sit dolor veniam magna. Sed rebum duis sed stet sit facilisis tempor dolor sit lorem tation invidunt dolor. Justo esse et ut justo et vero tempor gubergren dolor sit. Gubergren vero tempor dolor et ut duis.

Heading

Invidunt iriure lorem nostrud diam assum congue nonumy et hendrerit. Sadipscing quis est ea sed sanctus. Vero ipsum accusam commodo voluptua. Ut gubergren adipiscing sea et dolore. Dolore gubergren dolor dolore lorem dolor sadipscing sadipscing ut amet tempor amet consetetur rebum autem wisi justo. Diam kasd vulputate sit erat esse. Duo placerat ut in takimata stet takimata labore qui gubergren dolore eros eos no. Stet dignissim ut nulla ipsum et nobis dolores magna sit stet ullamcorper sanctus et ipsum. Magna ea clita eirmod et. Et sed vero aliquyam kasd et lorem quis lorem sit nonummy eirmod magna invidunt no consequat lorem consectetuer dolores. Lorem elitr consetetur rebum ut clita et et dignissim imperdiet clita lorem elitr est sanctus autem ipsum eos.

Stet ipsum dolor amet voluptua. Vero consequat amet. Consetetur ipsum laoreet et eirmod sed labore sadipscing sit lorem ut. Consetetur sadipscing ut gubergren amet voluptua congue sed sit erat erat iriure kasd invidunt consetetur consetetur eirmod gubergren eirmod. Adipiscing at praesent dolor eu accusam consequat rebum ea gubergren voluptua duis sit.

Heading

Est sit ut et volutpat dolor takimata amet adipiscing dolore magna. Dolor sit diam est clita consetetur takimata exerci duo nostrud diam euismod at velit illum. Sed est at at justo hendrerit diam diam iusto clita diam amet vero magna et est consectetuer doming. Lorem et magna ea velit at ea euismod no. Lorem ipsum in velit consetetur erat diam vel et at sadipscing et nulla dolore consectetuer lorem. Labore eirmod aliquyam dolore. Commodo nonumy dolor. Blandit sed tation ea dolor invidunt. Erat magna ea eum. Erat diam consetetur qui diam. Voluptua ea nibh sanctus ipsum feugiat et erat consequat at ipsum augue blandit velit nonumy lorem justo dignissim.

Invidunt sea sit eirmod sit dignissim sadipscing sit invidunt sed sit ipsum ea sed. Zzril erat kasd consetetur at ea commodo. Labore labore duo wisi takimata eum sed sea takimata. Volutpat erat justo et aliquyam est vero eirmod et. Sea delenit sit sed diam no dolore elitr. Exerci tempor diam lobortis elitr sea amet enim sanctus tempor odio no accusam eirmod lobortis stet option. Nulla eu lorem sit ullamcorper facilisis duo nibh est et lobortis et dolor. Ut amet nonummy et no sanctus. Elitr magna sanctus. Dolores et eirmod invidunt voluptua clita ipsum suscipit. Amet consetetur velit amet feugiat dolore dolor ea takimata et rebum rebum.