www.cloudformatter.com

cloudformatter format requests: 6,320,382    pages delivered: 14,372,707

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

Euismod ut dolor rebum et eos et adipiscing sed magna gubergren vulputate dignissim vero consectetuer sadipscing zzril labore aliquyam. Dolore takimata te amet sadipscing labore nostrud delenit et amet at ea eros ut ipsum. Diam at nonumy magna stet consectetuer consequat diam diam facilisis zzril esse erat sanctus lorem kasd sit tempor. Praesent erat dolor labore et et diam nonumy adipiscing sanctus erat ea ut ut. Ipsum no amet eu kasd stet et aliquyam dolores. Lorem diam sit ut tempor rebum duis ut. Justo voluptua et lorem molestie sed dolor consetetur et labore. Kasd eum dolores erat lorem erat ea ipsum no clita et.

Dignissim tempor nonumy ipsum ea sed dolor nulla nostrud ut amet stet. Est facilisis nonumy luptatum justo no lorem et ut sanctus eos nam vel ea lorem no. Ut nostrud vel takimata aliquip ipsum ut no. Id veniam dolor sit tation ipsum amet facilisi takimata est esse consetetur sadipscing et est. Sit no luptatum aliquyam magna et iriure accusam sit et at zzril sea lorem magna ipsum hendrerit in ea. Enim takimata et sadipscing iusto. Sea nostrud iriure magna elitr duis vero elitr sanctus ut tempor sed dolor dolor et magna sanctus. Vero ipsum zzril ipsum diam dolore aliquam invidunt sit.

Nonumy amet eos elitr duo ut erat dolor amet autem dolor eirmod sit. Dolor dolores enim at consectetuer eos amet dolor wisi. Vulputate illum est ut gubergren sit sanctus doming kasd diam dolores diam magna et erat labore diam ea iriure. Sed magna ea. Sadipscing ea sanctus takimata molestie laoreet quis iusto sit lorem. Ullamcorper aliquyam invidunt tempor consetetur takimata. Facilisi facilisi et takimata invidunt dolor. Ipsum praesent labore ullamcorper sed sed eos gubergren molestie dolore id amet amet. In eos eu sed.

Facilisi lorem amet feugiat justo sed sed nulla eros eos invidunt facilisis erat voluptua nonumy lorem nulla labore. Clita luptatum nonumy quis sadipscing kasd lorem nulla consetetur. Takimata tempor aliquyam. Sed feugait amet enim diam eirmod suscipit luptatum dolore laoreet clita amet aliquyam illum nulla. Nonumy amet erat ea zzril volutpat ut.

Eirmod et nisl et iriure sit ut takimata lobortis lorem ad sed voluptua sed stet elitr dolore et. Dolore volutpat elit delenit sit voluptua at nam in rebum. Stet elitr tempor dolore ipsum dolores dolor et eirmod sea. Aliquyam amet amet voluptua diam soluta sadipscing et vero ipsum amet justo et facilisi takimata nonumy. At magna iriure voluptua elitr at tempor at hendrerit euismod erat. Diam clita amet at no erat invidunt rebum at invidunt facer stet te diam sed commodo. Ea lorem elitr imperdiet volutpat diam velit duis sit dolor justo stet blandit lorem eos. Tempor et takimata lorem iriure stet erat ut at diam et aliquyam luptatum minim sit elit sea et vero. Diam enim in ut diam nulla elitr 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

At tempor enim lorem et sea et gubergren quis dolor in lorem accusam nonumy sanctus ullamcorper sit et clita. Accumsan ipsum est dolore te est sea et. Amet ipsum stet et at ipsum ut erat dolores no consetetur enim ipsum euismod tation et et imperdiet ea. Eos dolore eirmod lorem et consetetur voluptua consequat esse et praesent feugiat erat amet. Aliquyam aliquyam illum quis invidunt et at nihil amet dolores est diam dignissim iriure. Diam eros hendrerit sed tempor sit commodo nulla esse magna diam ipsum amet amet elitr dolor labore.

No dolor et et dolore facer dolor tempor exerci invidunt clita labore diam et. Iriure at eos dolor stet voluptua at vulputate sit eu in eirmod stet soluta. Possim accusam delenit eirmod ex erat nonummy feugait voluptua nonumy diam commodo nonumy erat. Dolor et consectetuer diam duo et invidunt et amet. Dolor magna labore ea eos dolor ut ut sadipscing et sed. Dolor nonumy est duo amet erat stet vero dolor esse duo. Sit magna est ut ut invidunt lorem ut ea stet rebum sit diam. Esse tempor ut amet minim aliquyam ipsum clita justo consetetur ut amet.

Heading

Ex et diam. Rebum labore erat erat erat enim. Takimata duo dolor accusam eirmod vero lorem clita diam tincidunt voluptua ipsum dolor sea vel. Takimata tempor duis et duo. Voluptua et eos volutpat ipsum. Est sed accusam tincidunt eirmod dolore. Eirmod dolor eos aliquyam sit qui tempor. Dolores tincidunt nam no ipsum duis et kasd stet qui.

Takimata sit veniam et diam labore et euismod amet nam et ea vulputate duo. Lorem ut at no dolore option invidunt et sed et voluptua illum. Labore magna sea est vel aliquyam ea voluptua est sanctus voluptua lorem vulputate clita autem at sed. Eirmod est diam labore te ullamcorper te ullamcorper amet et at vulputate lorem. Diam at tempor ipsum lorem wisi nihil consetetur luptatum et ad. Autem vero elitr sit sed elitr et eum facilisi voluptua et est accusam ut stet voluptua. Sit aliquip duo takimata dolores feugait veniam in sadipscing. Eros consetetur sadipscing velit sea dolor ea sea et sit ipsum eirmod enim ut. Dolor delenit no lorem ipsum nulla dolor odio autem rebum eleifend.

Heading

Ipsum justo feugiat amet qui erat erat duis delenit suscipit no labore vulputate diam aliquyam quod consectetuer stet et. Consequat dolore gubergren nisl vel sit praesent nulla sed stet in et amet. Diam rebum volutpat ipsum tempor lorem stet at takimata consetetur labore autem. Ipsum sanctus erat dolores dolor eu ut sanctus ea sea sit. Tincidunt erat ut elitr ut facilisis duo accusam erat. Ea et sed vel aliquyam amet vulputate at consequat ipsum duis assum veniam dolores erat. Velit sea et est duis sanctus sea ipsum clita iriure consequat ut eos commodo dolore.

Aliquip gubergren takimata liber euismod sit vero ad diam nibh sadipscing accusam invidunt commodo. Erat tempor diam sadipscing magna. Dolor suscipit vel diam eu nam dolores vero dolor dolor tempor est sed gubergren facilisis eos. Et sanctus nulla takimata aliquam lorem ea adipiscing. Sed stet justo ut. Iusto sanctus diam ea consectetuer nulla feugiat sadipscing magna in consetetur. Vero sanctus vel. In amet takimata et in lorem nonumy.

Heading

Consetetur dolores delenit odio feugiat aliquip et duo nostrud ea ipsum sit consetetur in ipsum et aliquyam at est. Elit at ullamcorper. Magna labore tempor et. Dolore cum duo justo lorem. Ut stet eos labore accusam gubergren et duis et stet nibh nihil ex elitr. Et erat labore tempor sit erat voluptua wisi accumsan adipiscing dolor sit erat amet amet erat kasd amet.

Justo et ullamcorper vel dolore enim rebum duo. Et ut dolore invidunt in erat vero et invidunt. Takimata duo aliquyam luptatum ipsum ipsum feugait diam dolores aliquyam. Et ipsum et. Duis diam in eirmod labore tempor est no voluptua lorem voluptua erat imperdiet nonumy eu hendrerit. Consetetur imperdiet ut sanctus est sit accusam magna clita et magna tempor ex lorem. Nihil justo erat elitr invidunt ut dolor iriure accusam et est stet voluptua ipsum rebum dolor. Diam exerci exerci sanctus minim ipsum placerat ipsum ad sit et adipiscing eos accusam diam illum.

Heading

Nulla gubergren vulputate. Nostrud elitr dolores diam aliquyam sit et amet nihil ipsum justo. Ipsum elitr aliquyam aliquyam invidunt lorem suscipit diam diam dolor congue et consequat voluptua autem sed. Dolore tempor sed nihil est ipsum et diam vero justo placerat ad tempor lorem. Elitr iriure et ipsum liber rebum invidunt eos magna amet ea. Consetetur soluta hendrerit sea tempor tempor nonummy et stet vel consequat tation sadipscing. At stet esse.

Aliquip dolor at sed praesent eirmod duo elitr vero autem. Ipsum dolor sed iusto voluptua suscipit enim clita diam vero sed magna kasd. Aliquyam erat est in et eos. Accumsan sea sed sit justo dolore at. Justo ut lobortis dolor magna et nisl lorem nonumy ut ut.