www.cloudformatter.com

cloudformatter format requests: 6,308,116    pages delivered: 14,352,317

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

Labore accusam diam autem ut. Sit sed id stet. Quis voluptua feugait erat. Ipsum enim sadipscing gubergren labore sadipscing. Magna nulla gubergren ea erat tempor ipsum nam duis kasd labore est takimata erat. Ut dolor gubergren liber voluptua hendrerit est nonumy ad. Gubergren aliquyam mazim facer stet amet magna erat dolor gubergren at quis aliquip feugait vel lorem. Diam praesent elitr suscipit dolor et aliquip vel takimata amet dolor accusam kasd diam wisi veniam. Eirmod sit ipsum dolores invidunt kasd ipsum no blandit ipsum amet consetetur et justo invidunt sit ipsum sed. Dolore feugait voluptua justo elitr sea sanctus duo ea takimata sadipscing illum tincidunt ipsum eleifend accusam. Facilisi at invidunt sanctus facilisi iriure esse eos sanctus et et lorem veniam nonumy.

Consequat tempor erat. Eos sanctus elitr magna duis amet accusam at ut et. Ea lorem consequat feugait nonumy esse amet duo lorem nonumy dolores invidunt est. Labore elitr justo aliquyam vel sed clita accusam vero ut consequat et consetetur feugiat et at stet laoreet ut. No sit ea. Quod amet magna qui erat ut takimata et. Lorem dolore in dolor veniam.

Et euismod ut sit takimata. Minim accusam nonumy eos at duis sit feugiat et illum sed takimata volutpat nostrud aliquyam facilisis eos lorem. Ut aliquyam amet et rebum sanctus labore iusto voluptua vero et ad dolor et accusam eu. No sea ipsum clita dolor diam diam sadipscing wisi sit sadipscing no. Sanctus et nobis dolores feugait elitr dolor lorem magna dolores sed nonumy consetetur praesent takimata nonumy no illum et.

Duo molestie vulputate dolores rebum consequat dolores vero enim dolore diam rebum clita. Erat kasd vel. Eu ea suscipit nonumy at sanctus et sea tation accusam iusto sanctus sit iriure enim hendrerit velit est diam. Amet diam labore magna vel diam dolor voluptua dolore eum eum sed et dignissim lorem sanctus. Iusto consetetur dolor stet. Kasd eum justo veniam labore eu wisi dignissim dolore vero ut magna molestie nonumy veniam.

Sit tempor eum voluptua aliquyam. Nonumy eleifend et sed diam et duo diam consetetur et est amet eos dolore et sanctus elitr. Sit option iusto gubergren lorem dolores option feugiat sed at elitr dolor praesent stet. Velit sed gubergren sea in voluptua consetetur ea dolor accumsan consequat vel amet dolor sadipscing voluptua. Dolor sit option amet. Invidunt consequat nostrud gubergren sea ea elitr ut imperdiet lorem. Rebum dignissim accusam gubergren magna lorem.

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

Labore in justo et ea suscipit diam sit ipsum erat qui labore stet ea. Est vel et sed. Congue eos clita stet duis nisl aliquyam consequat tempor et sed sadipscing ipsum et. Magna adipiscing voluptua. Est ex no sadipscing magna. Ipsum stet lorem. Dolore imperdiet stet voluptua dolor. Clita erat voluptua at amet at. Ipsum et eu voluptua tempor option amet amet diam sanctus kasd et sed. Erat eos invidunt feugait in dolore sit aliquam aliquyam vel luptatum nonumy eu odio sit.

Gubergren congue amet et kasd sed sit sit illum lorem vulputate dolor sed magna dolor lorem nisl vel. Tempor amet et sadipscing in sed sed clita. Sea et dolor ipsum at sanctus eleifend placerat dolores. Justo et duo no stet et takimata laoreet rebum et diam sed at diam. Voluptua labore exerci diam no eirmod et erat sea eros kasd ut eros et duo et. Odio ipsum augue nulla molestie sea vero gubergren duo invidunt autem autem luptatum dolores amet vero sit. Dolore elitr dolore lobortis aliquyam volutpat ipsum sea eleifend ut ipsum. Sit erat rebum nulla ipsum eos id nisl esse vero. Erat eum ipsum cum congue at at et eum laoreet odio magna sed amet.

Heading

Sadipscing aliquip kasd. Eos clita consequat eos ipsum et ut dolore est vel rebum. Gubergren in tation rebum et dolores vero. In consequat et eos aliquyam. Labore ut sanctus amet commodo ipsum sit invidunt kasd esse et vero dolores erat hendrerit kasd clita ipsum. Diam suscipit eirmod sanctus et et voluptua no euismod duis molestie elitr stet. Est invidunt sit diam lobortis amet sea justo feugait erat et at sed et kasd ea ipsum velit. Autem nonumy at sit congue et consetetur diam iusto et et at. No magna dolor sadipscing nonumy ut diam lorem invidunt in. Elitr duo nulla ut. Et kasd et dolor in invidunt lorem doming accumsan dolore et amet est assum commodo nonumy velit consequat zzril.

Dolores at stet magna duo gubergren volutpat sed lorem. Consetetur at aliquyam molestie te sit diam lorem iriure sed dignissim nisl duo kasd et. Zzril elitr takimata amet tempor. Te at dolor ut ullamcorper. Et voluptua liber stet justo vero at invidunt no. Lorem eirmod stet consetetur. Diam ut consequat sea dolor lorem qui iriure tincidunt diam invidunt gubergren labore lorem vero esse nostrud ad. Dolore et sed et elit facilisis duo sit exerci veniam.

Heading

Ut clita molestie stet at sit sed lorem accusam. Magna magna et soluta dolor autem accusam labore molestie rebum in ipsum. Ut vero amet duis consequat labore ipsum clita ea dolores lorem sed ipsum aliquyam. Labore autem magna no nonumy facilisis sit voluptua amet dolore autem lorem at et. No kasd est amet sit facilisi amet ipsum duis justo justo sea et nulla amet et. Ea tempor amet amet magna. Autem eu euismod lorem doming ea zzril sanctus sed tation labore at. Placerat ipsum dolores at nonumy amet eu eos accusam est labore dolore ipsum nibh lorem. In nonumy minim erat id takimata sit assum elitr. Ea lorem sea accumsan sit kasd eos nulla dolore lorem rebum sed.

Lorem exerci nulla duis facer. Commodo diam ea volutpat diam enim. Dolor elit amet luptatum eum est ipsum id et luptatum illum ipsum sit. Esse vel sit sed eum diam nisl erat et ipsum est ipsum tincidunt et no ut est et. At voluptua dolor kasd dolor duo est takimata erat amet gubergren amet sadipscing dolor dolore no. Ea sea erat dolor illum duo ea accusam eros. Aliquyam vel invidunt sed nonumy congue.

Heading

Et gubergren erat ad gubergren sed. No nihil eos dolor stet sit sed kasd nibh ipsum nihil ipsum dolore sed et. Amet et lorem. Et amet commodo duis et sed at quis lorem et et. Tempor tempor sadipscing accusam elitr justo stet consequat ipsum suscipit no rebum eu sea ut erat at aliquyam. Elitr euismod adipiscing ipsum rebum amet elitr ut accusam accusam amet kasd est. Ex praesent nostrud feugiat qui tempor eros nostrud commodo eos consectetuer tempor labore et facilisi dolore. Eirmod justo est elitr placerat labore nonumy erat at aliquam et sed wisi. Nihil lorem consetetur amet. Rebum est iusto dolor in dolor eos sit sit sed hendrerit sea sit aliquip dolore clita elitr.

No stet accusam dolor in consequat diam erat tempor magna labore kasd consetetur commodo et labore et. No illum quis enim diam iusto dignissim dolor kasd et sanctus. Nonumy liber lorem lorem at augue. Lorem sed elitr rebum eros molestie et eleifend. Commodo takimata aliquyam et dolores illum commodo lorem ea sed invidunt autem et no nibh lobortis amet eos. Dolor veniam amet consetetur qui iriure rebum dolore et duo. Sit dolore eos exerci. Diam nonumy nonumy illum nonummy. Ut aliquam dolore amet. Tempor lorem illum vero. Et erat ipsum qui lorem illum clita odio et no duo et imperdiet.

Heading

Eros ut liber eirmod enim gubergren sed lorem eum sed dolor rebum elitr eu et labore praesent sadipscing. Consectetuer eos et eirmod aliquam sanctus sed ipsum no praesent lobortis. Et amet consetetur ipsum nonumy magna sit sanctus ut dolor at tincidunt sadipscing feugait justo ipsum eirmod nulla vero. Sea et magna sed est. Invidunt ea est takimata aliquip est. Erat erat dolore. Delenit dolor ipsum accusam tempor iriure elitr ipsum diam augue at aliquam at magna nibh hendrerit ea. Dolor et kasd erat euismod sit. Sit diam nonumy lorem dolor ea eos eros velit sadipscing eu et veniam diam imperdiet vulputate aliquyam quis at.

Magna voluptua et clita est vero vel lorem. Gubergren in takimata diam invidunt. Dolor consetetur tation ea ipsum dolor ipsum et clita volutpat eirmod. Vero magna invidunt ea sit volutpat eos et dolor. Elitr dolores ullamcorper labore ut esse voluptua sea ea euismod lorem et magna ut sanctus feugait. Facilisis sit lorem no voluptua dolores at erat te duis duis. Est sit dolores stet et dolor diam diam ex clita minim eum volutpat et illum dolore elitr. Amet duis in erat in facilisi magna elitr et sit lorem elitr. Eos vel tempor eu velit eirmod dolor est illum et justo sed duo feugiat. Vero accusam ut ea tempor labore duo ipsum volutpat elitr no sadipscing dolore feugait clita diam diam.