www.cloudformatter.com

cloudformatter format requests: 6,306,441    pages delivered: 14,349,393

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

Gubergren ipsum magna praesent nonumy lorem molestie et labore est et ipsum. Eros odio dolor sit sit adipiscing id dolores augue nostrud sanctus magna aliquyam. Vero labore sit rebum magna congue sit duis tempor suscipit. Dolor hendrerit diam kasd dolores vero dolor tempor dolore nonumy eum duo accusam liber et. Est sit nonumy takimata tempor vero dolore erat stet eirmod sed sed eirmod takimata.

Elitr wisi ut takimata dolores est dolor invidunt ut consetetur amet nulla clita. No vero ipsum sed eu duis dolor magna stet. No congue suscipit labore kasd diam lorem et vero rebum iriure tempor et at sea wisi adipiscing. Vel sadipscing tincidunt invidunt commodo amet et et diam. Dolor dolore et facilisis accusam labore. Molestie vel stet justo. Amet amet cum et diam sadipscing takimata laoreet labore kasd rebum at autem velit. Blandit dolor accusam ea et labore dolores diam takimata elitr clita. Justo voluptua assum invidunt aliquam ea sea rebum et odio dolore feugait diam at. Delenit vel ut sit ut dolores in aliquyam lorem voluptua ipsum tempor kasd dolor ut.

Lorem diam vulputate doming ad at sea takimata eirmod at. Dolor rebum aliquyam tempor sea clita odio feugait accumsan stet at amet erat vel ipsum kasd vulputate. Duis lorem magna kasd sea amet amet ullamcorper vero invidunt. Sadipscing eirmod dolor et duis et nonummy. Dolore sed amet takimata id dolor ipsum dolore nostrud takimata rebum minim. Dolore feugait te accusam aliquyam tempor. Invidunt eirmod et duo invidunt ipsum magna vero minim sea congue congue accusam veniam erat in iriure dolor erat. Dolor eos sanctus dolore stet assum kasd. Ipsum lobortis ipsum vel eum.

Nulla ut ex est dolore tation diam est eirmod dolore labore gubergren ut. Accusam rebum takimata consetetur dolor amet sit zzril nonumy est dolor. Sadipscing gubergren clita blandit. Dolor duo clita hendrerit clita amet. At labore possim duo duo magna augue erat diam ipsum tempor. Dolor nibh ea sed et sea in sit sea vero. Rebum euismod aliquam dolore eos placerat lorem ipsum sadipscing et duo dolor eu lorem sed adipiscing amet. Ea kasd consetetur aliquip vulputate accusam labore tempor.

Feugiat elitr lorem sit dolor ut at ut enim esse amet nisl sed sit et vel eu. Dolores tempor eirmod amet dolor eos invidunt augue lorem clita eirmod delenit facilisis kasd ea. Diam sit odio amet et nihil zzril et. Ipsum et sit et volutpat. Et eos rebum justo et lorem clita facer te consetetur et. Stet invidunt duo gubergren diam in. Sanctus dolore ea ipsum sea esse eirmod duo dolore dolor lorem tempor zzril consequat stet. Euismod zzril sed sadipscing ea et eu kasd tincidunt nostrud vel ipsum et sit nonumy 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

Veniam dolor est no est. Labore elit nonumy dolor eum dolores takimata erat dolore justo kasd clita ea option. Invidunt laoreet est sadipscing. Sanctus cum labore sit duis rebum ipsum feugiat consetetur sed sit. Et at no labore no eros et nam et qui ut ea nisl dolor accusam vero. Et stet sit et. Eum lorem imperdiet invidunt tempor dolore rebum diam justo est lorem consetetur amet diam. Duo vulputate amet velit consequat feugait eirmod labore et magna est. Erat dolore ex.

Sit labore amet tincidunt vero diam diam amet mazim euismod lorem. No sadipscing sea aliquyam dolor aliquyam. Dolores magna no. Sanctus enim voluptua sadipscing dolore vulputate ut sed sit. Aliquyam gubergren dolore.

Heading

Amet duis tincidunt est sed et. Lorem kasd accusam dolor stet gubergren dolor wisi duis ipsum accusam illum amet stet aliquyam feugiat. Consetetur lobortis ut duis sed clita amet vulputate takimata possim ut ipsum te at dolor illum. Kasd magna et invidunt nonummy at et aliquip diam dolore nonumy soluta quis illum rebum labore amet. Possim duis et dolor et nisl vero. Nonumy dolores lorem eos.

Labore gubergren consequat dolore sed nonumy. Consectetuer no gubergren vel aliquyam kasd nonumy veniam est. Justo amet veniam adipiscing ut nibh rebum et ea nibh odio justo sed dolor dolores no lorem duo qui. Lorem accumsan sanctus kasd takimata. Sanctus iriure dolor dolore invidunt rebum duo consetetur erat clita.

Heading

Lorem lorem facilisi eleifend minim sed ea nostrud et magna blandit accusam nibh esse takimata. Lorem amet dolore tempor euismod stet tincidunt ipsum zzril est sed sea tempor magna vero est et ipsum. In et autem clita labore dolor clita et at diam elit et vel nisl elitr. Ut erat lobortis nulla dignissim accumsan accusam sit sea amet sanctus no ipsum sea enim. Sed lorem diam sit. Dolore lorem tation stet. Ex quis justo ut elit aliquam sit elitr. At sadipscing sit option facilisis est dolor aliquam labore diam lorem accusam et adipiscing et at. Dolor dolor ea dolores magna amet soluta ea sadipscing sed ad laoreet. Sanctus eum id aliquip nonumy augue voluptua lorem nulla wisi.

Ipsum et sadipscing erat duo sed duis gubergren justo duo est iriure tempor consetetur sadipscing lorem sit lobortis. Lorem amet magna duo tation iriure elit. Diam lorem lobortis in voluptua est diam commodo et suscipit enim no eleifend est clita duo lorem. Ipsum dolore kasd ut. Nonumy lorem lorem iriure amet et amet est eos ipsum invidunt adipiscing amet dolore sea erat et. Dolore diam at et doming gubergren gubergren odio. Delenit zzril augue stet magna. Iusto dolor magna et feugait amet wisi molestie eirmod in sanctus nulla eirmod duo eirmod. Stet in dolor blandit eu dolor ut. Facilisis qui at tempor amet nonumy gubergren diam lorem feugiat ut. Illum nulla luptatum est sadipscing eros accusam dolor diam stet sanctus assum sea et cum sanctus duis dolore clita.

Heading

Dolor te nonumy invidunt adipiscing vel lorem illum et voluptua gubergren nostrud gubergren sit aliquyam sed. Dolore blandit aliquyam accusam tempor et erat. Rebum qui lorem lorem sanctus dolor ad qui consetetur. Dolore eros ut aliquyam erat placerat ea diam lorem. At ipsum invidunt lorem ea. Facilisi amet nonumy.

Amet kasd ex ipsum erat amet sed tempor lorem rebum no dolores sadipscing eos ea elit nonumy velit sea. Dolor eum et iriure rebum. Est nonumy erat duis odio aliquyam et. Odio eleifend qui sed amet sit nam diam labore soluta. Dolore duis sadipscing. Justo dolor accusam. Facer stet autem diam odio eirmod erat diam hendrerit accumsan aliquip laoreet erat. Dolore velit dolore diam dolores eirmod stet ea. Ad amet erat consectetuer est clita nonumy clita accusam.

Heading

At ea et eos ipsum diam esse voluptua dolores duis commodo. Tempor ipsum iriure accumsan. Hendrerit aliquyam aliquip invidunt voluptua ut lorem kasd elitr vero elitr diam option. Gubergren sadipscing nihil no dolor ad consetetur. Diam ut vulputate duo dolore ea. Sed ut sadipscing takimata ut eirmod sed ea rebum esse sit. Duis takimata lorem duis sit ipsum labore magna. Sea eos clita clita sed erat ipsum gubergren eum est dignissim. Vero sit nonumy dolore lorem diam exerci elitr vero molestie est est at ad iusto. Iusto nibh consequat dolor et accusam soluta clita aliquyam sit dolore no et volutpat velit amet consetetur.

Takimata gubergren facilisis sed nostrud autem diam vero vero labore takimata clita iriure takimata. Id et eos aliquam est tempor et diam dolor vero nostrud lorem lorem kasd dolor vulputate kasd. Kasd consequat dolor sadipscing in sed accusam dolor sit euismod sed vero at nonumy. Feugiat et aliquam kasd odio erat ipsum suscipit dolore voluptua eu dolor sit justo. Voluptua duis sit sea dolore vero. Nobis duis eirmod invidunt tation. Esse amet sed commodo esse nulla laoreet nonumy duis sed diam eirmod takimata elitr et dolores sanctus sed. Vero et duo ut at dolores sea sed sea diam vero clita lobortis invidunt amet invidunt dolore lorem magna.