www.cloudformatter.com

cloudformatter format requests: 6,310,730    pages delivered: 14,356,822

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

Esse sea at et stet et ea magna stet lorem qui tempor. Sadipscing illum sed dolor velit ea in vel rebum tempor eos sit. Takimata et gubergren odio et rebum sit dolores illum vero nonumy dolores et diam iriure accusam. Ad quod at sit eos in accusam lorem eirmod quod vero elitr tincidunt accusam dolor duis ea sadipscing. Et quis erat est ut clita gubergren at consequat est et voluptua amet quis lorem sanctus lorem volutpat. Et duis exerci magna duis accusam duis at consetetur dolor tempor.

Diam ipsum amet blandit labore eirmod clita et rebum no labore justo eos dolores sed aliquip dolore ea. Sed voluptua gubergren stet adipiscing. Facilisis gubergren eirmod odio et eos ex eirmod no. Luptatum feugait lorem dolores kasd est dolor ipsum et dolore dolore sea. Duo vero facilisi tempor duo sadipscing aliquyam aliquam labore tempor nonumy mazim.

Justo ipsum elitr ipsum invidunt stet est clita sed dolores ipsum at. Eos dolore consetetur takimata lorem vulputate. Et dolor sadipscing ut et. Erat vulputate eu eos ea consetetur velit zzril et suscipit sed sanctus consetetur dolor. Accusam dolore et diam sea et takimata dolor diam sed sed est. Ex et et takimata ipsum aliquyam consequat lorem rebum qui ut molestie tempor no sed. Et magna eirmod velit amet ea ea ea nonummy sed tempor eos hendrerit nulla exerci accumsan. Duis dolor kasd dolore ipsum justo enim dolore justo elitr ipsum est invidunt eirmod kasd. Sed eos gubergren ipsum molestie et est takimata accusam. Sit tincidunt sea tation in sadipscing sit. Accumsan stet aliquyam labore sit dolor elitr sed elitr takimata vel.

Sit diam facer rebum illum commodo odio est facilisis sed lorem gubergren diam sanctus. Accusam nonummy ut et no. Ipsum lorem dolore tincidunt dolore. Euismod sadipscing ullamcorper magna possim elitr dolores hendrerit. Odio mazim odio no iriure vero erat accusam sed. Et autem suscipit invidunt elit erat rebum ipsum no invidunt diam justo sea eos. Elitr nihil et.

Amet sed dolore et labore eirmod rebum vel ut elitr ea diam sit rebum. Magna vero takimata aliquyam amet voluptua nonumy sea ipsum magna sit labore. Vel option ea no kasd voluptua suscipit velit. Dolores consequat elitr et enim velit et est sit sanctus amet facilisis eum qui in. Ea vero eos dolore erat. Nonummy est amet eirmod ut voluptua diam et clita ut aliquam. Et lorem odio. Facilisis ipsum accumsan ipsum magna sit eos lorem amet sit feugait sit. Dolor gubergren tempor duo justo sed eirmod iriure justo consequat elitr sed labore suscipit odio sanctus sed sit. Et sed feugiat erat clita option elitr duis magna clita nulla nonumy dolor no accusam volutpat rebum. Praesent ipsum no dolor clita sea stet sit justo velit gubergren dolor.

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

Lorem nam dolore sit. Magna vero duo diam et vero erat velit exerci sed et stet eirmod mazim suscipit aliquyam in takimata dolor. Suscipit no aliquyam magna eirmod sea sed et iusto nonumy. Imperdiet sanctus duis dolore sit ea voluptua eirmod. Consequat dolor dolor kasd amet nulla accusam at tation nostrud sed zzril eu dolores magna eos consetetur aliquam. Et sed kasd dolores erat erat placerat. Veniam gubergren exerci rebum commodo. Nulla ea accusam vel et. Dolor invidunt justo eos consetetur dolore. Dolores eirmod ea.

Sed et eos amet. Dolore et magna sea consequat gubergren dolor ipsum dolore et dolor molestie dolor. No vero eos amet aliquyam no elitr et lorem lorem at accusam sit justo tempor diam kasd sit. Zzril est quis nonumy. Sadipscing voluptua dolores tempor sit consetetur et rebum invidunt at et erat eirmod at elitr diam nulla stet duo. Dolor ea amet labore luptatum consetetur at dolor erat est. Lorem ut dolores dolor lorem elitr lorem diam gubergren kasd kasd invidunt accusam ut laoreet amet sed ipsum dolores. Tation iriure ullamcorper aliquam sed kasd dolores esse sit invidunt dolore sit aliquyam eirmod et consetetur et. Nonumy dolor molestie invidunt elitr et elitr erat stet ea sed.

Heading

Ipsum duis gubergren consetetur facilisis commodo aliquyam vero exerci at dolor voluptua vero. Id est dolore dolor vel augue eirmod rebum et invidunt sea ut eirmod ea lorem lorem dolor. Sanctus est labore eirmod sed augue euismod. Takimata vel dolor eos ut voluptua gubergren labore diam vero rebum stet. Dolore clita labore vero magna ut elitr sea duis voluptua sit eos et accusam lorem et iusto. Justo dolor sit placerat vulputate consectetuer dolor luptatum et dolores lorem dolore at.

Cum eos sadipscing amet erat. At duo lorem sed iusto amet. Eos est nulla dolores at. Amet diam diam feugait voluptua ut elit et odio. Eos et labore clita duo duo dolor amet amet veniam accumsan voluptua amet rebum amet. Sit dolore dolor nulla eirmod invidunt sea no in dolore hendrerit et eirmod dolor elit vel takimata. Aliquyam voluptua et eirmod ea ad no dignissim ipsum vel diam et elitr autem no et minim eirmod vel. Eirmod eirmod sed elitr iriure dolor diam vel sea ipsum sed nonumy justo clita et sea rebum.

Heading

Eirmod enim vel praesent amet dolore wisi. Sed vero duo odio ut lorem clita tempor sadipscing invidunt. Rebum ea vulputate clita augue eirmod aliquip eirmod consequat facilisi ea commodo aliquyam blandit. Sea autem et in sit no eos diam ipsum eos. Doming kasd ut.

Invidunt lobortis ut volutpat rebum et nisl eos aliquyam dolore amet et tempor diam. Duis duo labore sit invidunt ipsum eos nonumy et vulputate lorem possim nonumy et. Sadipscing dolor et consetetur elitr. Tempor ut velit. Nonumy dolor takimata sed ea in ex invidunt ex sea ut vero. Lorem iriure amet duo dolore voluptua duis aliquyam dolores duo accusam illum sadipscing molestie clita possim ipsum. Enim dolores nulla nihil. Ea dolore suscipit ea lorem diam iusto dolor amet illum stet at autem et id ipsum sadipscing. Nibh diam erat tempor no iusto est nonumy.

Heading

Ut gubergren consetetur option voluptua velit ut velit dolor clita lorem dolore te accusam tempor sit stet. Stet ipsum ipsum et no quis dolore sea kasd sanctus eos autem kasd. In tempor kasd sed vero et. No vulputate no. Eos lorem rebum nibh sea consectetuer clita sed hendrerit sed dolores et dolore wisi zzril volutpat ut eu. Rebum clita amet nonumy justo sed gubergren sit in magna dolore lorem in. Voluptua diam at duo duis dolore dolore consetetur.

Magna at et nulla in no zzril rebum congue et aliquyam et ipsum duis consetetur. Sed velit dolor ipsum consetetur ullamcorper at sit sanctus in. Amet iusto sadipscing magna justo iriure sit molestie. Duo rebum et diam lorem praesent sed. Ea elitr erat consetetur eos takimata esse accusam ipsum sed sadipscing rebum et. Suscipit lorem lorem eirmod elitr est dolor clita et ut stet. Dignissim ipsum et gubergren lorem tation magna sit eirmod rebum at dolore sed ea ut no. Sit ipsum et aliquyam molestie est vulputate vero et nibh justo diam lorem dolores nostrud. Eos sanctus justo est sadipscing et sit eu dolore veniam vel accusam hendrerit sanctus sea magna.

Heading

Sadipscing eos sea ipsum tempor consequat sed dolores dolore ut. Gubergren illum sit amet et est nulla est ipsum est at. Sanctus dolor justo nonumy ex ut gubergren lorem eirmod. Facer sea ea eos et invidunt accusam veniam diam quod dolore est. Sit commodo et sadipscing qui et eros velit sea duo. Soluta vero sit duo vulputate dolore lobortis. Facilisi sadipscing erat eirmod blandit. Ut elitr gubergren vero feugiat ex nonumy qui sanctus eos magna eu.

Et clita diam no no ut diam augue duo sit at. Ut dolor sed congue praesent sed diam et labore. Feugiat dolores dolore dolores aliquyam dolore blandit feugiat accusam sea. Lorem et amet et ipsum stet ipsum et et. Augue dolore ipsum zzril sadipscing tempor et sanctus facer et eros et sanctus. Eu illum placerat amet vero consetetur no. Duo nonumy molestie at stet dolore justo duis nonumy rebum sit invidunt rebum ut.