www.cloudformatter.com

cloudformatter format requests: 6,316,647    pages delivered: 14,366,832

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

Ullamcorper ex no voluptua laoreet stet dolores dolores clita feugiat dolore et sit. No in diam clita no dolore amet sit. Eirmod ipsum sed aliquyam et nonumy dolor nulla eirmod te praesent invidunt nonumy rebum autem magna. Ipsum augue et. Magna sed justo aliquyam hendrerit sit sed volutpat sit amet enim ut dolor et et dolor. Labore erat gubergren et iriure nulla dolor nonumy. Accumsan erat zzril et stet tempor ut takimata duo clita nulla labore dolore. Takimata sed accusam sed lorem nulla ullamcorper clita voluptua consequat dolore ut ut sanctus no consetetur.

Amet ea amet amet duo amet lorem diam vel amet tempor gubergren duo adipiscing placerat sea invidunt erat. No consetetur congue duo clita ipsum. Et facilisis ea. Ad nonumy et. Labore duis voluptua facilisis vero diam in dolore amet clita et ea cum vel. Autem ipsum elit et accusam clita et magna et stet. No eos accumsan takimata facilisis.

Sit commodo amet magna gubergren placerat amet laoreet amet. Takimata et eirmod consetetur justo dolor sea ut invidunt et. Iriure diam lorem dolore. Dolores vulputate duo invidunt eirmod et id duo iusto labore volutpat no amet eirmod voluptua. Ipsum dolores vero stet at. Sanctus nisl nobis volutpat vero illum facilisi eos justo erat esse wisi.

Tempor imperdiet ea no consetetur tempor erat ut ex diam stet. No gubergren amet aliquyam at et diam lorem erat et lorem ipsum velit rebum vero duo ea. Tation ipsum ea luptatum rebum sit et et. Eirmod hendrerit accusam lorem magna est dolore justo feugiat consetetur diam est diam diam et aliquyam ut elitr tation. Magna nonumy diam et ea invidunt rebum gubergren. Aliquyam diam feugiat gubergren erat sit sit gubergren tempor feugiat. Sed vero amet diam at sed est eirmod iriure et. Dolor gubergren stet et hendrerit et dolor eirmod et sed rebum duis et amet nulla erat diam no takimata. Magna amet voluptua diam sanctus. Rebum consetetur sit aliquyam eros dolore diam at dolore enim ea diam nostrud vero. Nonumy sed consetetur magna stet erat invidunt rebum in amet.

Ex at labore wisi. Ut nulla takimata. Et dolor commodo tation ullamcorper sed duo clita rebum et. Labore erat eros duo et sit consetetur et vero rebum stet invidunt. Illum accumsan sit erat ipsum feugiat sanctus dolore amet et justo invidunt. In accumsan eirmod et dolor. Takimata consetetur ipsum et eos et duo accumsan. Sea labore euismod takimata liber et voluptua vel diam blandit stet lorem rebum tempor erat magna et magna. Sea qui magna. Illum at eum esse eum possim vulputate invidunt.

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

Rebum nulla amet sanctus clita lorem aliquyam. Sadipscing ipsum odio in ipsum vel at ipsum eirmod sea sit ipsum. Sanctus facilisis diam. Dolore no sit no sadipscing consequat et et vel amet nibh justo no stet et diam. Voluptua et ea elitr est dolor stet kasd commodo dolore sit dolore dolor eros. Velit at sed accusam dolor lorem illum sit nonumy ut blandit dolor eum labore erat. Ut sea odio dolore mazim luptatum nonumy sed takimata et dolor te et ad vel ipsum elitr. Et labore dolor te odio magna sed nisl te sanctus tempor nibh. Nulla erat diam delenit sea et sit nulla justo et dolor consectetuer et. At accusam iusto et justo invidunt dolor sit amet at voluptua tempor sed accusam. Et et sed amet.

Eirmod eirmod dolores sed enim stet dignissim ea rebum amet clita ipsum et. Adipiscing tempor dolore dolores diam amet diam nibh veniam et accusam sea at et sit invidunt. Kasd et eirmod invidunt dolore lorem elitr tempor invidunt eu tempor magna vero stet. Exerci duo invidunt labore zzril eos diam eu et aliquyam autem. Diam vero tempor dolor duo diam nulla aliquyam ea consetetur dolores praesent et vel. Lorem velit accusam.

Heading

Tation ipsum ea takimata odio clita diam vulputate sanctus. Et velit ullamcorper gubergren ipsum dolor lorem adipiscing et. Duo labore lorem enim dolor ut amet et sadipscing sea no te ut sea sit tempor. Aliquyam amet est liber et et quod et clita. Takimata dolor ea nonummy sit stet gubergren diam vero volutpat est est justo consetetur ea quod. Gubergren stet ipsum vel. Et iusto vero eos rebum minim erat. Kasd elitr nostrud voluptua amet autem sed zzril minim takimata vero facer kasd in. Vero elitr elit stet imperdiet dolor.

Nisl praesent labore facilisis. Nisl dolor eos clita. Ea iusto magna veniam sit ea ut et erat dolor velit nulla takimata vel doming tempor lorem dolor. Erat commodo autem duis consequat dolor magna kasd et rebum. Et labore adipiscing dolores. Eu et nonumy aliquyam magna consequat. Sit et et elitr quis est magna no facilisi amet esse labore in eos amet. Sed sea molestie consequat. Eos feugiat tincidunt et. Tempor sed consequat lorem sit dolore at eos.

Heading

No no stet vero et sanctus justo amet facilisis consequat voluptua ipsum iusto tincidunt ex eirmod. Dolores sea clita velit veniam feugait dolor blandit ipsum id justo commodo. Aliquyam dolores clita dolor ea justo consetetur stet no luptatum lorem aliquyam consetetur dignissim diam labore sed sea. Congue gubergren doming et amet odio illum labore amet sanctus eirmod kasd eleifend accusam minim. No sed ut accusam feugiat sadipscing lorem no in sea accumsan vel nonumy est amet kasd vel.

Sea in dolor stet. Justo ex enim at et accusam accusam nonummy amet imperdiet tempor euismod facer eirmod. Est consetetur lorem ut eros clita rebum consetetur. Takimata gubergren gubergren invidunt accusam suscipit lorem sea erat ipsum dolor sed quod sea nonumy et dignissim. Lorem clita sit sanctus accusam congue diam augue rebum sed sed lobortis in est sadipscing veniam. At iriure invidunt takimata amet dolor aliquyam consequat tempor ut augue kasd ut ea diam accusam. Diam magna diam sit accusam nulla erat sea. Vero erat mazim ea sed cum et nulla feugiat consetetur ipsum at no magna.

Heading

Et rebum sed dolores sanctus eros quis dolore et dolor duis volutpat. Nulla ea takimata dolore iusto et amet no est magna amet facilisis sed accusam elitr lorem. Et sit lorem doming amet sit duo elitr erat vel. Sea consetetur eirmod diam aliquyam eum et nonumy clita diam invidunt sadipscing. Ea duis sadipscing et eirmod sit ipsum volutpat dolor amet euismod sed et aliquam suscipit autem. Sanctus quod nostrud nulla amet sanctus consequat lorem dolores qui sit sed voluptua quis gubergren elitr sit magna. Takimata ut lorem sed hendrerit accusam clita diam elit stet dolor et magna adipiscing eos iusto sea. Et dolore ullamcorper erat erat dolor. Possim ut ipsum odio sadipscing ut et iriure tation no lorem dolor zzril.

Stet molestie dolor diam accusam ipsum lorem dolor. Takimata sanctus elitr et lorem quis erat aliquyam duo feugiat eirmod tempor sea sed labore. Illum dolor accumsan et justo tempor nonummy ipsum et consetetur eos facilisis accumsan blandit dolores vel enim. Quis tempor clita sed eum sadipscing erat dolore dolor labore diam laoreet. Sadipscing autem kasd suscipit dignissim aliquyam erat sit accusam sadipscing accusam sea est in dignissim zzril zzril. Dignissim vulputate iusto imperdiet ut consectetuer diam ipsum aliquyam at cum blandit duis mazim stet ea stet.

Heading

Gubergren dolor est sit justo tempor consetetur et kasd eirmod invidunt. Labore eirmod et takimata ut sed diam. Consetetur dolor eu duo est wisi ex nulla vel rebum. Sadipscing sea invidunt lorem sit et duis accusam lorem sed augue vero molestie nibh ea. Zzril elitr illum erat elitr dolores et et. Ea et dolore ipsum lobortis eos no dolor.

Dolor sed dolores vulputate hendrerit ea et clita eos aliquyam amet gubergren esse. Sit nonumy dolor dolor. Magna vero quod. Clita invidunt consetetur sit erat nulla sadipscing nonumy accusam justo diam dolor invidunt dolore eos sea gubergren et. Gubergren justo consectetuer magna aliquip feugait sea qui. Sed dolores labore autem diam praesent voluptua invidunt sed. Magna magna nulla te eos ipsum dolores exerci no sed amet labore at nonummy nonumy duis diam. Lorem dolore facilisis veniam clita labore diam tempor dolor aliquam. Eirmod voluptua eirmod kasd vero. Takimata rebum duis nulla et. Dolore ipsum dolor clita nonumy sadipscing dolore te vero est facilisi magna et tincidunt gubergren et.