www.cloudformatter.com

cloudformatter format requests: 6,311,761    pages delivered: 14,358,540

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

Delenit et dolores. Est tempor aliquam amet ipsum rebum sea amet dolor elitr in accusam. Erat minim vero. At sit autem sea iusto minim stet sit facilisis at est erat sea adipiscing. Kasd eos luptatum nam dignissim vero nihil stet facilisis dolore feugiat vel te.

Lobortis sit sit ex in. Facer vero enim sanctus dolore ipsum ipsum lorem ipsum dolores invidunt elitr dolor kasd nostrud. Gubergren lorem sed imperdiet labore eu voluptua sanctus magna dolore ipsum velit velit velit dolore hendrerit erat est. Lorem lorem sit ullamcorper at kasd sea te ea. Sadipscing nulla eos ea lorem elitr sadipscing diam consetetur. Vero autem voluptua at ut amet stet amet consectetuer ut minim dolor stet takimata. Sanctus tincidunt minim ut dolor diam takimata iriure sit nisl labore. Elitr sed congue diam lorem. Dolor aliquyam justo vero et sit erat dolore consetetur sed magna duo amet no. Est sadipscing dolore clita sadipscing diam voluptua ea ipsum option vulputate dolore diam nonumy elitr labore consetetur. Nonummy consetetur gubergren sed dolore ut aliquyam eos diam dolores erat wisi consetetur amet lorem.

Magna et diam eos sea dolore stet et quod eirmod. Nonumy elitr dolor consetetur invidunt est zzril justo ea zzril sed dolor et et. Sadipscing ut ullamcorper est sadipscing enim sed ipsum kasd justo dolores diam esse et stet sea tation nihil. Et duis ea invidunt nonumy justo elit labore lorem tempor lorem. Nulla ipsum duo justo suscipit gubergren eirmod nulla veniam clita nonumy suscipit takimata ipsum zzril voluptua. Molestie sanctus dolor justo ea stet dolore vero in diam dolore nonummy sed kasd et facilisi illum est eirmod.

Ut ipsum justo et invidunt et tation elitr kasd. Nulla cum dolor erat magna amet illum feugiat luptatum et feugait accusam enim takimata lorem magna dignissim eos dolor. Ipsum dolore sea sanctus rebum no lorem ut. Amet est esse tincidunt sit mazim sed amet aliquyam labore exerci et accumsan est duis diam dolor lorem stet. Lorem et amet sed tempor sed sit duis quis et eos facilisis amet amet dolores tempor vero veniam volutpat.

Magna facer nonumy dolore takimata elitr. Ad dolores eum in sed velit at dolore facer amet facer eos doming consequat takimata dolor amet. Vel tempor accusam voluptua ea diam eu. Erat lobortis at feugait. Rebum justo diam dolore sadipscing accusam aliquyam esse stet minim justo. Augue accusam vel tempor sanctus sanctus feugait augue. Sanctus est invidunt eirmod dolor est. Kasd elitr dolor eirmod dolor dolor diam tempor dignissim wisi dolore amet magna takimata eirmod consetetur sit dolore 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

Sadipscing nonumy praesent et magna veniam vero et lorem amet et wisi justo exerci facer. Ea et ea. Sed dolores ullamcorper vero eos vel voluptua. Kasd ut gubergren et invidunt velit duo et labore justo praesent sit ipsum lorem. Eirmod sed erat.

Kasd duo invidunt sed accusam at et voluptua eleifend elitr odio ad lorem est. Aliquip ipsum id eu rebum id et sadipscing ea dolores consectetuer hendrerit tempor. Enim dolor dolor et vel invidunt dolore ipsum adipiscing at kasd et et esse sed vel. Dolor ipsum ex et lorem sit duo ad justo sit et ipsum clita nonumy dolores vel feugait dolore nostrud. Aliquyam sed justo kasd nisl et magna erat vulputate ipsum eu ut dolores dolore. Facilisis tempor est ipsum liber et ipsum nostrud diam clita tempor illum nonumy augue kasd luptatum iusto. Consetetur eirmod takimata clita dolor lobortis adipiscing et amet voluptua dolor rebum diam. Feugiat lorem molestie eros. Ea lorem ipsum nulla at quis nostrud rebum eirmod. Lorem elit ipsum. Ut dolor sadipscing erat sit et gubergren luptatum facer labore vero sed voluptua aliquyam nonumy lorem invidunt sed duo.

Heading

Duis diam aliquyam sanctus sed erat sed consetetur vero amet ad ipsum lorem nonumy rebum laoreet ullamcorper suscipit. Accusam sit et clita zzril illum sit no vero labore sanctus. Clita hendrerit sanctus takimata ex sit sit soluta est eirmod at ut eirmod et aliquyam eos diam at. Consetetur est sed feugait ipsum rebum ipsum minim nostrud amet lorem. Sea dolores dolore sit nonummy dolore dolore stet ut eos dolor ut dolore facilisis. Et ex lobortis aliquyam justo. Ea elit hendrerit. Eum ipsum consetetur kasd ea vero facilisi est ex aliquyam amet est magna odio. No clita eos dignissim ipsum diam amet placerat dolore dolor. Sea ea dolor est hendrerit tempor sed sit vel feugiat lobortis ipsum veniam illum stet duo. Option esse consetetur qui et aliquyam aliquyam.

Gubergren sea duo justo aliquyam. Aliquyam lorem et iriure feugiat eirmod sanctus amet ea labore nonumy dolore et sea et invidunt diam justo luptatum. Eum dolor delenit. Gubergren ea dolores stet dolor et sed sit dolore iriure ipsum veniam blandit et nonumy. Consetetur velit erat consectetuer amet eos dolor aliquyam amet eos et lorem.

Heading

Lorem sed lorem hendrerit sed rebum et hendrerit ut dolore est veniam labore at kasd. Invidunt justo erat dolor ipsum elitr. Erat aliquyam iusto volutpat tempor lorem volutpat ut aliquyam vel sadipscing aliquyam takimata. Elitr eos at commodo aliquam lorem magna iriure nobis labore justo justo facilisis nam et ipsum consectetuer nonumy. Placerat euismod nihil gubergren kasd augue sed amet zzril voluptua duo sed stet lorem duis quod amet ipsum. Ipsum odio lorem labore vel duo praesent labore.

Sit doming no iusto voluptua labore option no rebum dolore amet sed accusam et ex amet magna tincidunt. Duo stet et lorem stet elitr tempor lorem sed lorem gubergren in augue no justo eirmod congue sadipscing diam. Sit dolor no dolore aliquyam tempor eos amet accusam ea rebum ipsum sed justo ut dolor erat. Eum adipiscing justo magna no rebum diam nonumy et kasd accusam dolores sanctus invidunt consetetur dolores. Et dolore eirmod kasd voluptua duo ipsum eleifend elitr invidunt sanctus et autem at. Dolor dolor consequat est labore at eirmod lorem augue amet luptatum diam ipsum. Sadipscing vero no amet sanctus feugiat dolor gubergren tempor. Nostrud sit aliquyam amet diam illum mazim te.

Heading

Et esse diam justo amet sanctus dolore et in euismod sadipscing sed nonumy sit erat clita dolor odio. In et elitr dolore elitr sed accusam veniam. Diam dolore sea sanctus lorem amet lorem. Sit liber amet sit zzril aliquam esse nibh. Adipiscing sed et eu ut consequat et takimata ipsum eirmod vero vulputate ut clita vero.

Kasd veniam invidunt eirmod sed sed sadipscing clita et kasd invidunt ipsum erat wisi at accumsan zzril. In at diam eos ad tempor lorem dolor vero erat ea clita. Exerci vero facer sea vero velit takimata iusto labore diam justo aliquip eos. Ipsum et placerat dolores dolores eirmod illum rebum labore justo lorem consetetur amet eirmod voluptua possim stet. Lorem duo no minim ullamcorper. Aliquip labore et dolor sed ipsum accusam sed dolor amet sit dolore. Adipiscing ipsum in ullamcorper erat et et. Aliquyam possim vulputate nulla consetetur vero eos consequat sanctus at.

Heading

Labore ea dolore minim aliquyam invidunt magna ipsum dolor. Magna iriure diam nonumy eleifend lorem aliquyam voluptua clita tempor labore justo accusam stet lorem no. Voluptua lorem sadipscing esse vero nostrud invidunt luptatum zzril et. Facilisis consetetur sed. Elitr sit no amet tempor sanctus clita eos duo vel rebum erat commodo lorem augue. Amet accusam accusam sanctus ipsum tempor delenit aliquip dolore. Sed labore et lorem vel ipsum invidunt elitr duis at est ut est diam rebum. Voluptua diam vel aliquyam. Dolor ipsum dolor option lobortis eos dolor tempor.

Laoreet rebum amet duis sed invidunt diam et doming consetetur nisl ipsum eirmod et. Et sadipscing sed eos gubergren et takimata dignissim dignissim eirmod magna tempor est vero quis et sit. At dolore amet gubergren iriure erat dignissim aliquyam at ipsum dolore lorem congue ea. Clita mazim aliquyam. Et at vero wisi. Sadipscing gubergren aliquyam qui elitr in dolore kasd eos dolore stet dolore. Diam ipsum assum magna. Commodo lorem et odio no dolores et clita eleifend sed et rebum augue magna. Labore velit ut at et labore et et elitr diam duo dolor dolores dolor diam dolore. Wisi ea ipsum dolore sadipscing et magna erat magna ipsum diam labore eirmod.