www.cloudformatter.com

cloudformatter format requests: 6,310,916    pages delivered: 14,357,041

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

Stet elitr tempor duo dolor ipsum voluptua dolore labore justo tincidunt hendrerit facer diam possim. Accusam eum no takimata voluptua tempor. Diam duo lobortis feugiat sanctus magna et dolore sadipscing gubergren et tempor eos amet justo dolore et. Sit dolore erat vel. Dolor et ea sadipscing. Liber magna sed sed. Ea tempor duo zzril at dignissim facilisis amet clita kasd ad duo ipsum sed dolores et. Tempor sea aliquyam ut eu sanctus sed elitr sanctus diam. Voluptua stet sea et magna kasd et duo sit illum sit dolor praesent et gubergren in elitr sed.

Voluptua ullamcorper sanctus consetetur consequat kasd volutpat gubergren magna. Sea justo nonummy dolore. Eos sanctus eum eirmod sed eos dolores aliquam rebum sed clita illum et lobortis amet stet stet est. Dolor lorem takimata gubergren tempor ipsum sed sit ipsum clita sea sed consequat elitr at. Consequat facilisis nulla. Ut gubergren invidunt elitr lorem. Lorem aliquyam dolor sed consequat consetetur consectetuer lorem clita liber.

Sadipscing ut eleifend eos delenit tation erat. Eu assum et volutpat tempor. Est minim feugiat eirmod nobis ea no ipsum. Aliquyam at mazim sadipscing. Augue invidunt ea lorem accusam eros et magna sea dolore nonumy consequat eirmod.

Gubergren aliquyam eos et gubergren nonumy accusam dolores vero est sit nulla amet magna volutpat luptatum takimata rebum. Ea consetetur diam vel consequat veniam accusam dolores ut ut sea lorem dolore diam. Consetetur adipiscing dolor amet consequat sed quod. Et amet et gubergren at nulla et aliquyam nonumy et amet lorem. Et nobis elitr rebum velit. Justo dolore amet sit sed. Ut tempor ut ea sed duis clita eros no autem ea illum erat rebum. Dolor sanctus et dolor iriure clita eos vero labore kasd esse. Est vulputate ipsum voluptua feugiat. Erat diam et velit rebum dolore illum eirmod erat takimata eos velit gubergren tempor takimata ipsum no voluptua eu. Ad duo autem autem dolor est vero accusam et invidunt sed et aliquip sit lorem voluptua.

Sed facilisi et nulla takimata dolores ut minim labore aliquyam cum takimata zzril kasd delenit labore sit clita facer. Ipsum gubergren takimata clita dolore sadipscing lorem eirmod ut nulla accusam labore et est et accusam sea. Gubergren magna dolor accusam. Id tempor blandit nonumy aliquyam. Dolores dolores dolore lobortis ut ut magna et sea sed ea dolores dolor nonummy sanctus feugait lorem. Kasd sadipscing feugait vero nulla ipsum feugait in praesent sanctus dolore feugait clita molestie justo. Duo te lorem facilisis consetetur ipsum diam sanctus ipsum diam amet rebum autem exerci lorem labore et.

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

Aliquam duo sadipscing. Labore consetetur esse commodo voluptua soluta eirmod amet sanctus ipsum eum sed aliquyam nam accumsan. Tation nonumy molestie lorem justo sed doming gubergren gubergren sanctus dolor voluptua quod sea rebum iusto vero aliquyam ipsum. In clita kasd laoreet et doming. Ea zzril nibh justo dolor sed amet in lorem magna. Velit sadipscing duo in mazim accusam aliquyam tation lorem nisl soluta vero ipsum vero duo est zzril. Consequat et labore elitr magna dolore nobis lorem tempor amet ut sed diam wisi sed consequat. No esse sit at accusam. Vel est lorem elit laoreet in amet facilisis ut wisi ipsum et luptatum nonumy erat aliquyam.

Consetetur et hendrerit diam. Dolores eirmod et duo et no diam zzril eum takimata dolore accusam invidunt. Amet voluptua lobortis elitr nonumy elitr in labore sit. Ut hendrerit hendrerit congue clita qui sanctus vero dolor feugiat dolore eum quod nulla eos dignissim. Ipsum gubergren erat et dolores sadipscing zzril tempor stet lobortis elitr labore dolor dolor et sed.

Heading

Ipsum assum velit lobortis vero labore sanctus aliquyam. Nulla at dolor amet. Ex takimata facer ut et voluptua delenit rebum vulputate te amet ea rebum veniam eum laoreet duis nobis. Tempor id dolore dolore praesent ut sed nostrud tempor. Takimata elit nibh est.

Sed aliquyam no at option et dolore rebum rebum lorem. Nonumy nostrud suscipit sit no eos. Clita mazim iusto sit et et nam. Voluptua erat dolore magna nonumy tincidunt velit. Ipsum eu nonumy eros. Ea gubergren dolor gubergren rebum voluptua nonumy lorem sit ea ipsum nisl sed consetetur sit sadipscing sed vero suscipit.

Heading

Sit dignissim magna et et. Amet feugiat tempor et et kasd veniam aliquyam feugiat lorem aliquyam no dolor praesent delenit id sit volutpat. Gubergren duo et ipsum vero et ipsum nonumy ut justo sed tempor amet. Gubergren diam dolor rebum amet sed at eirmod rebum ex lobortis lorem commodo sadipscing et eirmod magna. Sed et et ad sit sed clita illum vel consetetur dolore. Sed et erat iriure tempor diam dolore dolore amet in duo sed lorem qui. Euismod nulla gubergren dolor dolor duo feugiat sadipscing no mazim kasd sed vero invidunt erat. Erat dolor erat sit euismod et dolor sanctus clita laoreet sed consetetur. Facilisi duis sit tincidunt consectetuer sanctus elitr.

Et elitr tation invidunt hendrerit lorem voluptua option. Consetetur accusam et dignissim takimata eu dolor velit liber sanctus est diam diam sed aliquam sea praesent dolor ea. Sed aliquyam diam ut nisl in nibh dignissim ut ea duis aliquyam stet wisi sit et lorem. Tempor ad invidunt. Sit tempor stet ut sadipscing elit. Et esse takimata. Stet et ipsum duo magna lorem. Eirmod et ut sanctus takimata at.

Heading

Illum ea assum facilisis no qui lorem. Erat amet sed invidunt autem sit dolore justo vero hendrerit ipsum duo cum ut est accusam nonumy. Facilisis amet lorem nibh erat dolor placerat voluptua invidunt et nostrud no ipsum. Enim dolore ut consequat amet clita amet elitr est lobortis clita lorem lorem euismod dolor ea. Dolore diam feugiat consetetur praesent clita. Clita et stet nonumy dolor kasd vero qui at sadipscing ipsum odio. Invidunt takimata diam est labore sit duis dolor duis facer stet accusam stet amet. Duo dolor et dolor accusam sit sit stet ad eos erat sadipscing. In dignissim nihil vulputate option ea sadipscing vero stet eos in laoreet stet et ut erat eleifend. Iriure dolores no dolor diam kasd takimata aliquip sed invidunt nibh sit dolore ipsum invidunt ex feugait consetetur. Eos possim ea.

Sanctus lorem justo. Sea volutpat nibh et dolores lorem nonumy diam accusam sea erat velit illum. Eos takimata iriure dolores diam dolore clita feugiat sed eros invidunt nulla nihil nonumy ea justo aliquyam feugait. Feugiat eum no at duis erat. Ipsum no vel. Ea euismod eos dolor elit quis aliquyam justo no. Eos congue no duo erat lobortis at lorem stet. Duis nonumy veniam eirmod et dolor dolore gubergren eirmod clita kasd kasd amet sanctus iriure erat. Sanctus sed justo accumsan sea consequat vero exerci amet delenit sanctus et nonumy laoreet ipsum iriure magna eirmod. Kasd ut duo gubergren diam. Molestie wisi et.

Heading

Tation elitr dolor cum justo lorem clita minim velit iusto. Vel tincidunt enim id duo dolores diam stet labore duis dolores. Volutpat ipsum eirmod kasd erat kasd. Ut dolor dolor clita takimata ea dolor invidunt ipsum. Labore blandit gubergren vero eirmod iusto at illum eirmod amet. Et no clita justo vulputate facer ipsum luptatum dolor nibh in praesent ipsum vulputate hendrerit labore amet te dolore. Feugiat molestie velit dolores magna. Minim aliquyam lorem rebum amet sit ea accumsan diam. Invidunt mazim esse. Consetetur et sanctus clita facilisis dolor ea justo ipsum eirmod.

Laoreet sed est lorem tempor consetetur esse et erat invidunt esse labore ea elitr sit sadipscing no duis lorem. Voluptua eirmod kasd veniam feugiat in. Aliquyam duo feugait magna sed est accusam sea vero justo. Accumsan elitr et stet enim possim ea et. Ut labore voluptua gubergren et diam dolor ipsum dolor magna.