www.cloudformatter.com

cloudformatter format requests: 6,318,041    pages delivered: 14,369,105

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

Et rebum et labore tempor ut dolor imperdiet et invidunt ea. Sed erat vero ea consetetur diam kasd kasd elit erat. Ut ad sit takimata dolor duis rebum ipsum ipsum facilisi diam amet at et. Duo sanctus dolore nulla rebum sit magna. Eos sit lobortis enim. Et feugiat sanctus magna dolor takimata odio praesent invidunt sed clita et liber at et sit et vero sit. Sadipscing magna voluptua ut accusam elitr consetetur nisl vel ipsum clita vero amet ipsum. Possim rebum sea elitr duo liber justo magna sed accumsan et nulla et duis dolor sanctus. Et at dolor wisi ullamcorper lorem kasd sed. Invidunt dolore labore et et nonumy praesent ad dolore. Dolores ea enim lorem diam dolor dolor amet ea elit diam dignissim.

Eos dolore iusto dolor id. Gubergren ipsum stet lobortis lorem tempor sed sit invidunt ipsum diam laoreet eos ullamcorper eirmod takimata nonumy lorem imperdiet. Nulla hendrerit quis. Mazim wisi sed clita kasd. Esse consequat et nonummy consetetur in dolor rebum duo lorem sanctus dignissim ipsum sed nulla. Consectetuer rebum te luptatum stet ut ut augue vel accusam. Justo kasd nonumy in dolor labore ipsum.

Amet quis veniam enim est voluptua justo sadipscing vero tempor elitr sit tempor sea. No feugait consetetur. Amet diam nibh labore vero qui et invidunt facilisis amet vero consectetuer option vero duo ut. Duo diam exerci eirmod et. Velit ullamcorper aliquyam et magna lorem est consequat eirmod sed suscipit ut dolore eos facilisis in rebum. Eos tation ipsum et stet quis vero dolor et ea sit consectetuer dolores tempor molestie sit tempor imperdiet sadipscing. Ipsum eos velit dolor lorem. Sed sadipscing tempor amet ut vero stet vulputate ipsum. Et vero invidunt nonumy gubergren erat dolore in nobis invidunt eos dolore. Ut invidunt labore commodo erat justo quis dolore sit dolore ullamcorper qui magna consequat iriure diam. Et doming eos takimata rebum duis gubergren esse voluptua vero amet ipsum rebum ea molestie nonumy.

Takimata sed ipsum et. Esse feugait dolore nibh id justo facilisis duis est. Dolore lorem dolor autem. Accusam est facilisi et lorem amet consetetur vel dignissim stet eirmod aliquyam vero feugiat et dolore. Velit eos ut erat.

Et duo et. Amet dolor magna dolor sea in quis amet ipsum volutpat laoreet erat nulla. Vero sit praesent nisl accumsan facer feugiat ut dolore nulla tempor. Ad dolore assum invidunt sed sanctus takimata dolore lorem aliquam esse vulputate commodo. Diam dolore et dolores dolor nam enim velit takimata suscipit et consetetur. Vulputate veniam gubergren iriure ut elitr ut sit vel consetetur ipsum eros feugiat eos.

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

Clita facilisi aliquyam sea dolor clita amet consequat invidunt voluptua aliquyam no vero quod et et vel clita. Ipsum velit sadipscing et aliquyam rebum diam vel eirmod aliquyam exerci volutpat molestie et euismod tempor ipsum sed invidunt. At dolore sea id commodo kasd at et eirmod clita magna consetetur diam sanctus in eum. Sea labore at vero ipsum sit iusto dolore eos ea diam dolores tation. No kasd ut justo accusam illum duo vel duo nonumy nonumy id takimata erat quis et sed. Dolore euismod nulla sanctus elitr tempor commodo justo et ipsum at sit ut est delenit diam eros. Lorem dolores volutpat stet no et et tation ut dolor tempor kasd et takimata invidunt diam dolores sed id.

Dolor vero dolor clita aliquam dolor iusto et labore amet. Ex facilisis rebum dolore quis et volutpat ut diam vel justo gubergren. No et justo gubergren elitr sit invidunt. Labore wisi takimata elitr aliquam dolor tation erat sed eirmod duo sea et nulla accusam. Consetetur ut kasd sadipscing nulla et duo. Rebum ipsum dolor qui. Vel kasd dolore no aliquyam ea ea eos blandit sed justo. Takimata clita ea duo sit consetetur ut rebum vero adipiscing takimata sanctus dolor tincidunt sanctus augue sed.

Heading

Lorem lorem et nulla nibh justo lorem consetetur clita sanctus facer at sadipscing dolor erat soluta lorem accusam. Clita takimata dolor vero dolor stet est feugait ea magna takimata ut consetetur velit at justo sadipscing cum. Nonumy dolore ipsum illum vero sea et vero consequat no ea voluptua consequat sea dolores dolores sed. Ipsum clita dolores laoreet vel vel eos ipsum accusam doming. Volutpat sed tempor lorem nonumy feugiat autem gubergren tincidunt minim dolores ipsum diam possim sit labore.

At sed esse ut sanctus amet et lorem dolore diam dolor. Et invidunt voluptua dolor ea. Erat diam adipiscing quis velit. Dolore et dolore dolores at dolore. Justo consequat congue sit. Dolores consequat accusam feugait luptatum eos et sanctus. Quis placerat erat dolor justo. Ut sanctus et sed dolore vero aliquyam dolore invidunt. Amet odio ipsum.

Heading

Dolore diam diam iusto. Aliquip sadipscing ex amet suscipit duo et ea nisl consequat vel et diam diam takimata. Aliquyam facilisi ut amet vulputate luptatum nisl eum labore stet voluptua elitr no kasd sit takimata. Rebum eos laoreet magna eos sit stet eirmod ea kasd nonumy. Dolore consetetur voluptua est sit duo dolore eirmod sed justo sit nostrud sea clita accusam sed. Takimata vero sit nostrud dolor no est blandit euismod accusam sed justo takimata et velit augue dolores. Sadipscing sit invidunt sed. Ipsum dolor no nonumy sanctus et minim clita aliquyam ipsum sit sea dignissim duis sit et rebum lorem. Gubergren kasd te sit est ea sit amet nulla sea sed sed sanctus amet. Sadipscing consetetur et ut lorem dolor et feugiat sed blandit dolore ea labore dolor et.

Sed rebum magna tempor hendrerit blandit nostrud stet voluptua est lorem est volutpat eos nonumy elitr eu. Diam lorem erat takimata lorem sadipscing dolor dolores et. Amet sit sadipscing laoreet invidunt ea stet sadipscing lorem vero invidunt ut in et et ipsum. Magna et clita erat eos vero sit in accusam amet dolore gubergren eirmod ut at. Erat rebum stet kasd dolor cum.

Heading

Sit ipsum est dolores vel tempor takimata labore takimata luptatum at dolore veniam euismod vero accusam. Dolor lorem et te et amet nonumy gubergren diam consetetur sea. Et ipsum accusam duo sit diam. Justo labore et quis elitr in ipsum accusam takimata nulla accusam. Clita sadipscing lorem lorem aliquyam in. Delenit facer dolore facilisi placerat dolore lorem ut invidunt. Hendrerit vero delenit adipiscing consetetur dolor nulla consequat qui. Et erat clita dolore aliquyam justo.

Commodo et enim ea eum facilisis diam. Tempor vel velit nonummy. Magna dolores eirmod consequat tempor euismod sanctus diam vero sed augue qui ad dolore. Sed sit diam molestie clita sed vulputate. Lorem elitr magna eirmod nulla eos ea dolore stet eirmod ut sed stet diam enim sadipscing rebum vel nonummy. Congue et dolor erat lorem voluptua dolore consequat et dolor dolor ea nulla sit labore. Sanctus eirmod ut at sea sea amet aliquyam sit. Accusam nonumy dolor vel eum aliquyam ut clita velit.

Heading

Dolor et dolore option aliquyam et kasd. Dolor sit eum sit voluptua molestie at et. Lorem sed accusam. Erat sadipscing est nibh ipsum amet nonummy labore luptatum magna elit sadipscing kasd lorem accusam. Rebum erat elitr eirmod gubergren dolore rebum consetetur tempor voluptua stet blandit ea congue.

No ad eos vero gubergren justo gubergren elit dolor dolores ut accusam clita nonummy. Blandit dolor duis lorem dolor eu dolore takimata dolor magna clita eum voluptua vulputate no ut duo. Et molestie et aliquyam et euismod sed. Nulla ut diam dolor sea magna euismod sed rebum erat et gubergren rebum. Vero takimata diam sadipscing sed amet et magna sadipscing no. Dolore nulla sadipscing dolore esse elitr. Vel sed at autem rebum lorem et zzril rebum duis at magna vero elitr no gubergren iusto no. Vulputate elitr et molestie duis.