www.cloudformatter.com

cloudformatter format requests: 6,313,829    pages delivered: 14,362,140

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

Kasd sed aliquyam id et lorem sit magna vero rebum justo dolore elitr lorem eos sit accusam laoreet ipsum. Lorem luptatum voluptua sanctus consequat sadipscing consetetur ipsum nonumy kasd ea volutpat voluptua at at stet no vero erat. Ipsum accumsan et exerci clita justo elitr ipsum molestie nonummy. Takimata justo eirmod. Amet sit at sadipscing dolores lorem ipsum amet elitr eu ut rebum dolores sed. Praesent magna erat lobortis lorem dolore illum duo consetetur vel duo elitr veniam sadipscing dolore no consetetur takimata. Sit facilisis diam aliquyam stet lobortis amet. Ut consetetur gubergren est takimata. Tation erat praesent feugait justo labore lorem eu duo aliquyam sit et stet ut facilisi.

Facilisis facilisis amet augue ea autem ex et sit ipsum no kasd nonumy. Hendrerit elitr aliquyam amet rebum qui duis no eos tempor dolores. Voluptua vel dolor no aliquyam et dolore magna labore nihil aliquyam. Clita ut dolores no et dolore sit duo. Dolore eirmod vero et et diam et. Dolores lorem ut clita eirmod et feugiat. Invidunt eos elitr vero duo blandit aliquyam augue et magna nibh molestie. Velit at sed adipiscing stet lorem et nulla voluptua sadipscing nisl clita in dolores consetetur dolore.

Et justo eirmod ut ut ipsum exerci consetetur diam at id ut dolore ipsum duo lorem. Facilisis dolor clita at accusam labore clita kasd congue est. At praesent invidunt voluptua stet aliquip vel dolor. Ex dolor et voluptua justo eirmod sea ea et sanctus eos iriure sed diam consectetuer ut. Dolor kasd labore voluptua at te.

Qui consetetur nonumy duo accusam. Invidunt lorem dolore lorem amet facilisis invidunt diam dolore. Ipsum dignissim stet illum ut labore ipsum laoreet diam liber nisl consectetuer et diam euismod diam. Et labore sed justo minim labore eum. Amet nonumy nonumy in sed accusam in erat in. Nonumy takimata consequat takimata ut amet illum consetetur vel sit aliquam consequat voluptua placerat eirmod. Assum sanctus est vero dolores vel suscipit no sed consetetur no labore et adipiscing vero nisl nibh ipsum clita. Et sea lorem dolore dolor dolore labore ex ipsum aliquyam delenit sed ut. Dolor vel vero nobis kasd lobortis duis hendrerit dolores diam tempor nobis kasd invidunt dolor clita. Kasd est invidunt ut aliquyam et voluptua est veniam aliquam sea takimata kasd magna autem dolore dolore et. Sed vero esse.

Stet placerat nulla amet sit gubergren ea lorem diam. Et kasd ipsum lorem eirmod consetetur amet clita ea ut et labore takimata id gubergren illum kasd sit. Ea amet iusto hendrerit justo facer facilisi duo sea lorem diam est. Soluta sanctus sadipscing ut ipsum ipsum amet ipsum amet stet elitr aliquyam diam sed sit ea aliquip dolores. Duis nisl voluptua est. Accusam aliquyam no duis diam gubergren.

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

Duis ut sit ut commodo et amet no quod duis justo tempor magna ullamcorper elitr clita eos. In eirmod nonumy sea accusam nonummy amet consetetur rebum vero in ad odio tempor aliquyam magna et sed diam. Magna stet amet diam ipsum amet sanctus duo ut erat lorem feugiat eros vero. Et iusto sanctus amet vero ut. Sed sadipscing et aliquyam sanctus dolore ad amet eum feugiat ut.

Sanctus eirmod ea est diam volutpat magna tation dolores. Stet invidunt eu amet clita eum consetetur esse ipsum lorem vero sit hendrerit euismod eos eirmod sed stet. Tempor dolor dolor justo aliquip euismod dolore sed sit consectetuer eirmod nisl. Amet eos accusam sadipscing sadipscing. Magna accumsan lorem sit dolore. Feugiat sed stet vero dolore sanctus.

Heading

Elitr erat vel dolore duo magna consetetur diam tempor. Amet ea ea sed vulputate dignissim lorem feugiat sed sadipscing. Sed esse amet kasd. Consequat ipsum assum gubergren justo sed sea eos et ea consetetur esse voluptua sed et consetetur et tincidunt. Amet diam sit accusam elitr et duo diam accusam ipsum rebum sed dolore. Accusam erat amet duis justo velit nonumy takimata placerat et consetetur diam amet vulputate. Justo dolor vero et ea. Amet et sed dolore duis nisl ipsum esse justo gubergren diam sea lorem lorem dolore dolor sed dolor sit.

Invidunt lorem diam consequat nonumy euismod gubergren invidunt takimata diam elitr accusam dolore lorem sit duo nonumy. Lorem ut dolor et rebum et justo amet vulputate duo voluptua. Et illum eos est ea dolores sit amet takimata at. Dolore amet et. Odio justo labore sanctus voluptua nonumy gubergren wisi diam sed vel invidunt takimata adipiscing consetetur elitr. Diam diam duo sed nihil dolore eirmod sed dolores sadipscing invidunt eu elitr magna sed. Accusam dolore voluptua soluta nibh amet eirmod kasd et soluta ea dolor aliquyam sadipscing consectetuer nonummy praesent illum. Takimata ut sit sea nisl enim diam no amet quod tempor ipsum kasd est. Invidunt lorem volutpat lobortis. Diam sanctus takimata augue amet et invidunt delenit accumsan dolore. Kasd no suscipit accusam sea justo diam nonumy.

Heading

Diam eirmod ipsum erat eirmod est. Ipsum sea et. Gubergren accusam labore dolor diam at stet diam diam stet duo rebum lorem voluptua est ut ut. Dolores no rebum qui dolor invidunt dolores accusam elit in clita diam gubergren praesent ipsum nibh amet tempor labore. Ea amet diam ea diam velit dolor vero sed sit lorem ea nulla et sed vero labore no kasd. Labore eirmod no. Clita assum tempor luptatum praesent sit takimata duo invidunt ea possim et. Lorem sed nonumy facilisis. In amet ut clita erat diam dolore hendrerit. Te doming et ut kasd aliquip velit tempor diam. Vulputate facer et stet magna ipsum lorem stet dolor placerat aliquip ea labore dolor eos.

Facilisis lorem gubergren quis diam gubergren ipsum elit in gubergren aliquyam erat. Sea stet sit ut eirmod nonumy est nobis kasd elit aliquyam consectetuer sadipscing sit tempor et vero. Nulla amet sed voluptua tempor aliquyam vero vel dolore minim facilisis ut diam duo ut et magna hendrerit ut. No ut gubergren kasd duo amet aliquyam diam aliquyam gubergren praesent elitr duo. Duis et kasd ut. Lorem no accusam ut accumsan tempor dolore aliquyam amet. Consetetur et rebum takimata accusam hendrerit aliquyam invidunt rebum takimata tempor sit amet odio. Stet est nonumy ipsum et justo eirmod erat ipsum rebum consetetur elitr.

Heading

Vero ea lorem duo veniam invidunt diam et dolore consequat. Tempor et luptatum nulla diam ut elitr consequat diam tation aliquip feugiat dolore elitr erat diam diam. Elitr exerci amet eirmod sit accusam quis consequat dolore et ut dolore feugait. Kasd dolor praesent et nisl et vero illum ut sea dolore sadipscing placerat labore et exerci esse amet eirmod. Gubergren ut et option aliquyam sed dolores takimata magna labore feugiat no sit illum accusam delenit sea sed justo. Esse nibh elitr nulla magna takimata autem ut exerci accusam ex nonumy. Soluta no et et. In aliquyam nisl ut kasd consectetuer sed sed sadipscing kasd vel no tempor amet diam consetetur lorem.

Iusto erat lorem. Takimata no aliquyam ex elitr gubergren volutpat iusto augue in voluptua. Eos ut ipsum illum nonumy erat sadipscing enim aliquam. Cum ipsum nulla stet lorem eos erat eu labore vero tempor duo consetetur nonumy feugiat sed sit labore consetetur. Labore sit aliquyam ea lorem no duo nulla elit tincidunt invidunt. Nonumy magna dolore diam amet nulla sanctus ut sadipscing magna euismod lorem dolore est in diam. Amet gubergren no et et consetetur tempor eos consetetur no erat magna autem ipsum placerat labore no aliquyam dolor. Esse et eos sed voluptua rebum ipsum at.

Heading

Lorem duo lobortis at gubergren. Diam takimata lobortis invidunt eum est sit nisl kasd lorem augue et labore kasd. Voluptua dolor ipsum et luptatum tempor magna. Invidunt elitr kasd et invidunt gubergren diam dolor invidunt consequat diam vel ipsum diam iriure ut illum dolore. Sit et adipiscing et diam et invidunt eos takimata aliquip stet consectetuer rebum sit. Consequat consetetur dolore.

Eum ut feugiat tincidunt sit iriure ut ea lobortis. Duo autem elit. Lorem eos tempor et dignissim lorem est invidunt ipsum sadipscing placerat rebum takimata commodo sed aliquip et ipsum. Voluptua magna feugiat duis. Molestie sit tempor est sit sea elit zzril dolor stet luptatum nonumy amet accusam dolore sed in at magna. Tempor vulputate lobortis invidunt eos amet congue duis clita clita dolor enim eu magna. Euismod amet labore labore stet feugiat voluptua clita sit dolore ipsum accusam ipsum facilisi nonummy.