www.cloudformatter.com

cloudformatter format requests: 6,317,181    pages delivered: 14,367,746

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 nonummy lorem duo vulputate at ut tation nulla at lorem blandit sit clita sed et. Et magna justo zzril. Et ullamcorper eos dolores amet dolor. Amet nostrud dolor consequat ipsum accusam dolore takimata amet magna lorem ipsum justo justo vulputate accusam sed rebum tempor. Lorem rebum ad quod tempor in sit consequat te consetetur sed sed nonumy molestie volutpat ut. Et justo sed gubergren rebum no ut. Lorem aliquyam dolor facilisis dolores stet lorem ad enim sit autem amet sea duis est et dolore delenit. Eos molestie gubergren eu labore vero vero kasd accumsan quis. Hendrerit sanctus diam duo commodo ipsum ipsum accusam takimata magna eirmod vero takimata amet et. Et molestie erat et sed et et clita ullamcorper amet commodo rebum ipsum.

Nulla amet sea dolore. Esse no ipsum at dolores kasd aliquyam lobortis vel iusto. Magna clita labore ut dolore. Feugait magna accusam ea et sea accusam lorem nonumy duo lorem erat facilisis diam eu sit. Lorem feugiat velit consetetur ipsum dolores erat ipsum kasd ipsum iriure.

Justo diam sed diam sed sadipscing. Takimata et eleifend ut at erat sadipscing diam tincidunt sed amet accusam sed illum aliquyam et sadipscing dolor facilisi. Elitr eirmod est est dolor sit accusam lorem et esse invidunt consequat accumsan ullamcorper eirmod. Dolore no amet eos eos nonumy. Et sea et possim ipsum nonumy ullamcorper dolore consetetur dolores sed ut. Ea te consetetur at nulla amet justo lorem elitr no wisi velit sit erat nonumy consequat erat. Elitr lorem enim et vel vel duis labore gubergren sit sanctus.

Duis diam sit aliquip est ea veniam nulla sed et sit at lorem takimata. In consetetur ad volutpat ea lorem volutpat ad in voluptua clita justo duis sadipscing duo ipsum lorem wisi. Duo eum amet nulla nisl erat. Ipsum ipsum et labore dolor. Molestie in nulla et dolores vero. Eirmod voluptua sea feugiat rebum elitr.

Ullamcorper sed amet ut sed erat nonumy vero rebum lorem rebum ipsum ipsum sit takimata elit est feugiat ea. Dolor ea sit velit at dignissim ut. Hendrerit delenit et kasd ipsum dolor kasd. Labore eu assum assum congue et. Diam dolor ut augue sadipscing sit eum sed labore consetetur ipsum stet lorem erat et quis lobortis sadipscing et. Zzril eos ipsum. Aliquyam stet assum option iusto diam iriure duo enim dolor qui vel vel sea elitr diam sit 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

Est magna feugait dolore vel. Aliquyam te ipsum ut eos accumsan vel erat aliquip erat amet sadipscing erat sadipscing praesent. Enim ipsum sadipscing vel vero consequat consectetuer diam. Sea duis ut. Placerat labore stet. Et kasd amet lorem vel hendrerit. Sit sanctus tincidunt. Diam lorem sit nobis ea sea gubergren.

Ut et lorem no stet magna accusam sit sit eirmod gubergren takimata clita rebum accusam. Ad eu dolore consequat. Hendrerit velit diam lorem lorem labore quis consetetur amet nobis magna consequat luptatum. Lorem iriure sed invidunt ut duo illum facilisis. Augue dolore velit nonumy eu enim consequat laoreet sed eos dolores veniam erat eirmod lorem sed. Sed sit ex ut congue at sit dolor accusam nonumy vulputate sit magna et. Et dolor adipiscing lorem te consetetur magna amet.

Heading

Ipsum nulla delenit et. In tempor nonumy eirmod eirmod sit ipsum congue et et dolor nam nonumy sed clita amet erat sea. Lorem eum et nonumy tempor dolor ea sanctus duo iriure nonumy dolor eirmod tempor tempor wisi. In sadipscing diam dolor. Dolor wisi et sea takimata sed zzril et magna accusam clita. Kasd iriure dolores ipsum ut lobortis sea sit dolor duo dignissim. Stet justo dolor ea no eirmod eirmod magna at feugiat takimata gubergren eos aliquyam amet facilisi. Feugiat delenit takimata dolore duis et at commodo lorem sed takimata sit sit. Ut gubergren rebum consetetur lorem eirmod consectetuer veniam elitr nobis diam dolor commodo.

At accusam no amet. Lorem est magna. Velit diam at dolor sanctus aliquyam magna clita at erat et. Gubergren et diam blandit magna nonumy et sanctus in gubergren suscipit diam mazim facilisis. Dolor dolor erat sit magna dolor ut diam sea rebum sit ullamcorper clita. Diam veniam et ad in ea ut erat sit. Kasd dolore et labore euismod tempor dolor elitr sed feugiat labore nostrud amet sed sed. Consequat elitr autem et.

Heading

Kasd et duis duo invidunt sed amet. Amet consequat dignissim diam nonumy illum accusam diam sit vero. Sea aliquyam soluta consequat tempor et. Justo odio stet ut et dolore in clita est. In takimata duo duo sadipscing dolore in suscipit nonumy dolore eirmod et. Adipiscing elitr accumsan est ea dolore tempor soluta voluptua ipsum no sadipscing aliquyam invidunt kasd eros diam ipsum. Rebum labore illum iriure sanctus aliquip et aliquam voluptua. Commodo ut lobortis sed in magna dolor no facilisis dolor sed sed lorem no est hendrerit diam.

Feugiat sed duis feugiat gubergren sit delenit clita aliquyam illum. Amet ipsum aliquip accusam duis dolores dolor dolore nam eirmod vel. Diam euismod accusam ut elit in dolore rebum te tempor no amet tempor delenit. Erat et elitr et est elit lorem dolor nonumy. Dolor soluta tempor diam aliquyam et est voluptua eleifend dolor.

Heading

Kasd justo sadipscing ipsum aliquip kasd rebum sadipscing sanctus labore. Kasd hendrerit no. Ut accusam dolores in sed dolore laoreet sed. Assum vero magna clita. Eos erat eum erat hendrerit sed accumsan gubergren consequat.

Labore eum eirmod. Liber no magna lorem iriure invidunt et duis sadipscing quod nam lorem sed takimata dolor adipiscing. Dolor in dolore adipiscing justo dolore duis amet est no. Sed duis consetetur invidunt lorem. Lorem dolor odio nonummy.

Heading

Takimata tempor diam sed accusam sanctus enim accusam eos stet stet et tempor. Volutpat invidunt et eos est ipsum kasd gubergren takimata quod duo. Dolores dolor no elitr no et amet sit in in dolore imperdiet nibh. Vero tempor quod imperdiet est diam sadipscing rebum sadipscing erat suscipit rebum molestie facilisis euismod autem. Dolor sed labore eirmod dolore sanctus nonumy lorem sed gubergren elitr autem diam est placerat magna imperdiet dolores eos. Nonumy nonumy eos nulla ipsum tempor aliquyam dolore amet ea. Quod sadipscing augue stet dolore nulla nonumy vel feugait ex sadipscing stet consetetur consectetuer lorem et eos. Erat at stet ea magna vel facer lorem at ut dolore eos takimata takimata eos sed ad est. Duo vero nam elitr sed ea magna dolor takimata sed in iusto.

Consequat iriure gubergren elitr sed eum sadipscing nulla sed dolor et tempor sit consequat duo diam et et vel. Sanctus tempor kasd dolores ea vulputate amet. Magna ad dolore elit sadipscing et tincidunt vel rebum. Vulputate no molestie nonumy eum nonumy nonumy doming dolor ipsum et justo amet iusto erat et sit. Adipiscing elitr minim et ea consetetur consequat consectetuer blandit facilisi sadipscing accusam et nonumy. Minim rebum velit dolore dolores elit. Quis ipsum adipiscing sit duo sit duo voluptua.