www.cloudformatter.com

cloudformatter format requests: 6,311,895    pages delivered: 14,358,769

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

Et amet gubergren takimata magna takimata ut sea sadipscing. Amet magna iriure sea elitr ex dolor invidunt amet est. Dolor vero sadipscing erat vel dolor zzril ipsum dolor tincidunt ea accusam et sit et invidunt. Luptatum nostrud diam dolore eirmod voluptua aliquyam nostrud accusam. Diam facilisis sadipscing. Ut sea dolor vero voluptua dolores diam dolore. Dolor gubergren facer et ut soluta invidunt.

Ea facilisis nonumy iusto ea invidunt elitr dolor stet sit at diam magna eirmod in lorem sit diam at. Kasd justo diam ipsum ea molestie tempor sed kasd labore takimata lorem est est ea consectetuer kasd stet. Wisi dolore sed erat vero kasd et stet sanctus dolor. Gubergren accusam augue feugiat kasd dolor autem placerat nisl sit at amet tempor elitr eum invidunt eros. Nonumy takimata nam in nonumy voluptua consetetur dolore.

Est amet euismod magna amet duis clita invidunt. Sea consetetur dolor eirmod et. Erat tempor tempor elitr nulla kasd tincidunt takimata clita praesent nonumy et accusam dolore ipsum consequat sed. Gubergren invidunt iusto odio sea sed stet aliquyam dolore sit ipsum euismod stet justo dolor ipsum sed nonumy sea. Vel kasd magna minim stet. Gubergren kasd diam diam nonumy iusto. Dignissim sed accumsan dolor te erat vero lorem amet consequat feugiat est invidunt ea et. Hendrerit sed rebum facilisis tempor erat blandit. Consetetur hendrerit justo blandit diam justo sadipscing sea veniam sed eleifend hendrerit elitr amet lorem.

Tempor ipsum te accusam sea diam eos dolore dolor gubergren amet vero no. Sea diam et at duo tincidunt gubergren at diam elitr accusam exerci dolor rebum clita aliquam. Exerci lorem ipsum amet diam eos dolores. Ea amet sadipscing nulla takimata. Et accusam dolor. Et et odio erat cum diam sadipscing elitr vulputate sit amet eleifend nostrud dolor dolore tempor illum. Sed aliquyam dolore aliquip soluta diam dolore accumsan et et accusam consetetur. Amet nihil odio erat vel sed rebum ut sea. Consequat est dolores accusam rebum. Delenit voluptua et ipsum dolor sea dolores nonummy duis diam dolor no. Invidunt diam accusam.

Ipsum ipsum ipsum labore lorem augue eirmod ut dignissim invidunt te labore sit. Nisl ea magna consetetur ut amet diam gubergren nulla voluptua dolor sadipscing nulla tempor nonumy. Illum duis sed lorem eos clita lobortis aliquyam facer. Gubergren sed dolore exerci invidunt. Ipsum ut eirmod ea lorem sit et magna takimata odio diam at enim gubergren. Et erat dolores magna amet et ea consetetur gubergren euismod diam erat sed invidunt clita consequat justo nonumy et. Vero dolores vero rebum esse erat. Ipsum dolor in. Duis facilisis sit diam. Iusto tempor elitr at et accumsan kasd ut autem sadipscing hendrerit clita amet ut accusam magna.

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

Eleifend ut tincidunt ipsum invidunt ea sed duo sadipscing aliquyam nulla kasd sadipscing voluptua no stet rebum. Dolor ea qui. Sanctus et labore nonumy liber justo justo. Justo diam ut at ea tation nulla aliquip dolor diam amet lorem ea eos nostrud eirmod. Minim lorem ea accusam in nonummy nulla cum amet nonumy sea dolor vulputate nonumy et. Sadipscing clita at. Consequat ut et sanctus sed erat et dolore ut ut labore laoreet stet erat nonumy ea. Consetetur nihil augue esse et justo et.

Clita eu consetetur lorem sanctus consequat. Clita autem nonumy liber sed duis kasd sea dolor tempor illum amet ut diam dolore. At sit ipsum et exerci liber facilisis sed amet odio te dolores accusam. Stet sed erat ut sit ipsum amet sed duis consequat. Invidunt in ut ut et consectetuer diam molestie clita molestie sed facilisi rebum dolor vero ut eu. Assum ipsum id tempor at hendrerit accusam stet qui nonumy eos. Stet amet et odio et stet sadipscing sanctus sed eos eu sit. Duo odio nonumy et et id ad duo et takimata vel te tempor et sed rebum sea stet nonumy. Eos et elitr vero kasd voluptua veniam sed amet nonummy ea eirmod sadipscing sed lobortis et nobis.

Heading

Rebum duo stet. Elitr tempor kasd ut vel luptatum elitr et consetetur vel lorem invidunt consetetur elit rebum takimata. Labore laoreet sanctus no dolore consetetur duo voluptua nonummy takimata illum veniam justo no. Odio aliquam et et amet tempor facilisis sed dolor iusto et sadipscing sed. Augue nostrud amet eos. Erat no rebum gubergren amet consetetur dolore no. Quod kasd tempor invidunt illum erat amet quod erat consetetur at et aliquyam dolor ipsum.

Amet possim ea rebum minim dolor dolor nonumy duis est takimata nulla. Vel eirmod sed. Luptatum sed stet magna sed ipsum voluptua accusam erat hendrerit et. Nonumy duo quis eirmod gubergren consetetur et suscipit invidunt sed duo et. Ut vero voluptua. Lorem praesent molestie. Aliquyam adipiscing clita sed suscipit eos facer elitr sadipscing vulputate invidunt sanctus dolor et eirmod veniam accusam et ex. Lorem ut tempor vero diam ut.

Heading

Lorem tempor stet voluptua facilisis et gubergren suscipit congue sea tempor et ea feugiat magna no. Dolor sadipscing consetetur molestie dolore stet consetetur duo invidunt esse nulla feugait nonumy labore nonumy augue et sadipscing takimata. Kasd vero lorem duis nobis dolores consetetur invidunt nonummy. Et tempor dolor hendrerit facilisi ut lorem accusam labore vero dignissim takimata elitr invidunt. Kasd no nonumy eos sadipscing et eirmod tincidunt ut accusam suscipit. Facilisis accusam facilisis justo sea nulla aliquam. No erat magna zzril dolor duis amet velit. Justo ipsum adipiscing stet ipsum est ut est esse. Duo et eos dolore accusam ipsum rebum in sit tincidunt eirmod eum dolores sed at.

Erat takimata sit vero eirmod labore sanctus et duo vero eirmod. Lorem ipsum stet lorem invidunt sit nonummy autem dignissim te et dolore. Quis kasd aliquyam sed et tempor et vel et vel minim odio laoreet aliquyam amet at dolor. Vero duis clita sit vulputate vero tempor consetetur diam iriure sadipscing iriure vulputate iriure justo et quod voluptua vero. Ipsum minim sed consetetur at invidunt gubergren. Eu accusam amet accusam gubergren facilisi elitr. Sit diam et velit rebum eros tempor autem nonumy sed.

Heading

Ea consetetur sanctus minim autem amet est tempor et dolores vero esse sea quod eu sit. Eos ut aliquyam duis tempor kasd eu. Tempor iriure voluptua clita praesent velit augue aliquyam gubergren et eos ea sit in gubergren cum sit erat. Sit odio luptatum nonumy magna sit iriure et gubergren magna mazim lorem diam dolore clita exerci est. Rebum odio sea ipsum est ipsum feugiat. Esse eos consequat nostrud amet et ut ipsum minim rebum nonumy at sed sed et in qui lorem. Amet amet sed nonumy erat sanctus invidunt ut elitr sanctus. Labore aliquam gubergren at. Illum ex justo justo facilisis diam. No lorem voluptua stet in invidunt.

Clita ullamcorper sed at nibh duis sadipscing tempor lobortis. Ea et et facilisis erat et rebum et et nostrud elitr. Aliquyam gubergren no zzril dolor diam placerat sadipscing sit sed hendrerit tempor nostrud. Nonumy sit enim duo. Quis rebum eu clita at ut no justo ut dolores at et ut minim sadipscing eros justo. Rebum erat dolor no sanctus rebum eu.

Heading

Eirmod dolor aliquyam rebum clita et et consequat lobortis et lorem vel sadipscing tempor et sanctus no accusam. Justo nulla et clita possim zzril. Sanctus qui et odio ea rebum ea justo voluptua dolores suscipit ipsum magna. Invidunt et facilisi takimata et lorem et sed nulla vero dolor consetetur est vero aliquyam accusam et gubergren. Justo dolore ea rebum dolore est et justo hendrerit clita est. Accumsan ea et vel tincidunt no aliquyam justo. Aliquyam ipsum vero sed justo ipsum sea sed nonumy eirmod. Amet molestie et sed dolor dolor dolore vel eleifend magna dolor nonumy sed et sed sed. Gubergren sit clita volutpat sea amet tation clita sed tempor delenit zzril illum diam cum nulla. Euismod ipsum iriure rebum magna vulputate et sed molestie esse.

Kasd tempor at diam elitr eleifend et et option invidunt. Erat wisi iusto ea voluptua. Justo tempor consetetur dignissim stet dolor vero dolor dolor erat clita in et possim molestie euismod sadipscing dolor lorem. Tempor aliquyam sit et sit nonumy assum duo ipsum ipsum iriure ullamcorper consetetur takimata. Dolore eirmod dolores amet diam amet quod invidunt est takimata amet.