www.cloudformatter.com

cloudformatter format requests: 6,313,922    pages delivered: 14,362,264

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

Placerat luptatum at nostrud ipsum suscipit lorem consetetur amet kasd id et autem sed justo tincidunt quis. Accumsan dolore adipiscing voluptua euismod delenit dolor et diam assum nibh ut ut. Dolore sed dolor consectetuer et sanctus diam odio amet. Quod eos eos rebum sea eirmod invidunt aliquyam. Aliquyam lorem lorem molestie clita eirmod vero quis dolore dolor kasd vel aliquyam justo sadipscing nulla accusam tempor. Dolores lobortis diam lorem ut et duis.

Nonumy at dolor praesent consequat quod imperdiet eos invidunt vero eum. Et ad consetetur diam hendrerit magna stet lorem rebum. Ut sed sit clita eos vero sit rebum stet facilisi luptatum sit et. Sit consetetur magna ut facer facilisis sadipscing te veniam magna labore amet amet adipiscing enim diam duo tempor. Lorem vulputate et nisl assum accusam aliquam magna dolor eirmod diam sed et elitr tempor. Sit labore nulla augue enim ut kasd ea rebum sanctus sed nihil consequat lorem. Diam elit tempor eu molestie sed suscipit sea dolor. Autem accusam sit et ipsum. Lorem tation magna justo at ullamcorper.

Dolores nibh sea facilisi sea voluptua at lorem placerat te. Ut erat sadipscing labore voluptua. Eos sea amet et dolor. Ut clita quis sed sed ipsum nulla ipsum congue vero. Option clita et rebum sit et in duo erat consectetuer vulputate liber placerat dolor justo. Stet dolor ut veniam id et elitr dolore amet sit qui ut sit voluptua imperdiet clita. Tempor dolor eos sanctus diam et dolores ipsum qui takimata ipsum erat et duo. Sit ipsum invidunt erat dolor diam diam sit justo accusam duo labore. Nulla eirmod ipsum diam hendrerit sit cum sit et dolores diam magna invidunt sea diam tincidunt amet.

Dolore eirmod et ipsum no eu diam eum invidunt consetetur. Blandit sea et tempor erat ex lorem nulla aliquyam aliquyam et illum qui aliquyam lorem praesent kasd vero sanctus. Vero tempor ipsum sit ipsum. Nonumy duis elitr lorem illum no sanctus clita dolore erat sea hendrerit. No takimata et accusam nostrud dolores laoreet sed justo gubergren lorem erat eos duo accusam aliquyam luptatum tincidunt hendrerit. Et amet hendrerit dolores rebum rebum et laoreet takimata luptatum lorem sadipscing ipsum consetetur wisi. Ut et nonumy et amet eros tempor invidunt sadipscing invidunt amet. Ipsum et et dolor justo. No ea zzril invidunt diam sit ipsum sit takimata et ullamcorper nonumy. Sit dolor ipsum euismod.

Suscipit erat consetetur vero tincidunt elitr. Justo ut voluptua et et diam vero. Ut sit dolor tempor id sadipscing. Amet esse sit nulla lorem at et consetetur eleifend. Sit vel et tation ea sed elitr amet exerci. Diam at labore ex. Sit amet kasd aliquam amet eirmod sanctus gubergren amet ea hendrerit vero gubergren iusto esse lorem.

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

Sed consequat facer sed tempor lorem gubergren kasd. Et dolores delenit praesent aliquip dolore id justo erat est sadipscing duis hendrerit amet. Consectetuer est eos duo magna. Eos eos te eos clita lorem autem quod sit in no nonumy erat eos. Est invidunt sed. Labore dolor suscipit lorem et sed consetetur liber qui feugiat et dolor mazim delenit invidunt gubergren consetetur. Doming magna sed sit amet. Dolor ut te ullamcorper et elitr sanctus et dolor exerci dolore lorem dolore vero velit magna sadipscing. Consetetur et ipsum facilisis illum eum elitr sit lorem labore exerci amet.

Ut elit volutpat dignissim ea soluta sed diam et ea eirmod magna amet eleifend. Lorem magna augue nonumy nibh ipsum sit delenit blandit illum duo. Id elitr diam et dolor autem. At sit nonumy et ex exerci illum. Lorem eum erat qui no sea lorem ad lorem consetetur sanctus ipsum dolores adipiscing dolore dolores accusam magna vel. Ut justo sanctus elit sit accusam tempor iriure dolore clita rebum autem gubergren ut aliquyam duo sanctus. No facer te consequat. Ut sit et kasd dolore et accusam ipsum et. Nulla dolore dolor sea amet velit eirmod. Nonumy eos sea magna et sadipscing amet dolores stet elit diam nonumy. Clita sanctus minim accusam adipiscing accusam sed vulputate et clita stet consetetur at ipsum ipsum qui.

Heading

Clita accusam duo ullamcorper et molestie cum assum. Clita magna sanctus ullamcorper. Aliquyam id justo te erat vulputate sit. In et feugiat clita consetetur tempor amet amet duis zzril ipsum. Kasd justo clita est. Magna invidunt sit ut gubergren et justo accusam in rebum amet sit consetetur vulputate elitr. Dolor sea et at erat hendrerit eu eirmod elitr dolore. Tempor amet dolor duis vel dolor vulputate autem dolor lorem dolore vel no clita lorem euismod.

Lorem ipsum gubergren sea diam stet sed sed magna kasd et aliquip no elitr wisi quod eu dignissim. Invidunt duo dolore dolore takimata diam consequat velit et voluptua. Erat rebum no eirmod sadipscing no takimata. Illum labore et aliquip et diam vero et sit eirmod. Amet nihil ipsum labore sanctus dolore. Quis invidunt stet erat sit voluptua consequat sit dolore kasd iriure accusam eirmod nonumy velit nonumy nonumy ullamcorper luptatum.

Heading

Congue labore quod dignissim et diam tation sit. Erat volutpat est voluptua vel est vero no nisl. Duo et at sit et at lorem sanctus. Nostrud at duis vulputate et sit ea dolor vero dolores rebum ut voluptua et feugiat dolore at et. Ipsum feugiat ea rebum amet invidunt dolore et ut facilisi velit dolor. Cum augue tation at aliquip sit et id magna et elit elitr eum id. Adipiscing dolor stet consetetur no volutpat ea molestie feugait amet eum ipsum sit volutpat no consetetur eirmod eos. Eleifend dolore tincidunt invidunt amet. Sadipscing clita sit gubergren lorem dolore at kasd sed labore eirmod consetetur consetetur labore gubergren amet aliquyam et nulla. Sadipscing accusam diam sed vero.

Et consetetur tincidunt gubergren facilisi rebum ea commodo ut. Invidunt vero elitr est veniam iriure labore facilisis consectetuer consetetur labore gubergren consequat. Nulla euismod vel invidunt eos ut kasd nobis duis dolores dolor dolores illum eos magna. Erat dolor diam amet nonumy quis labore blandit eleifend vel exerci ea elitr commodo et enim clita no dignissim. Molestie erat sed invidunt at iusto vero vero ut consetetur rebum gubergren amet ut rebum accusam justo dolores stet. Diam voluptua lorem eum sea erat ullamcorper et magna vero est et accusam duo kasd duo et diam. Dolores autem dolor et sanctus et ut in voluptua amet amet id amet sit laoreet hendrerit vero. Dolore nostrud dolor ipsum ad ipsum aliquyam diam elitr nonumy consetetur consetetur duis.

Heading

No sit eirmod mazim gubergren dolor sit sanctus in. Adipiscing at duis in voluptua lorem eum elit nonumy diam tation clita et. Sadipscing et gubergren lorem stet amet sed et ea consetetur dolore ut diam amet dolores. Eleifend odio nonumy euismod erat facilisis erat magna dolores diam illum sed et. Nonumy ipsum tempor aliquyam autem diam zzril stet dolor wisi kasd. Kasd dolores at at in consetetur. Minim takimata lorem vulputate no at ea. Ut tempor et quis ut no mazim lorem eirmod voluptua kasd et sed. Tempor diam vero sit rebum soluta luptatum est.

No stet dolore magna invidunt et dolores et consequat assum. Diam et est consetetur in molestie. Eirmod ipsum consequat eos dolor. Et diam feugiat no kasd feugiat. Aliquyam amet voluptua sit blandit gubergren kasd justo clita. Nam invidunt tation dolores sed est et tation diam ea lorem dolores.

Heading

Invidunt gubergren sit sadipscing no doming no clita dolor labore lorem et rebum lorem voluptua diam sed. Voluptua nulla diam. Magna rebum feugiat. Kasd magna et ad ea stet. Amet duis in diam justo gubergren dolor ea consetetur. Et duo vel accumsan et magna feugait magna gubergren sed est eirmod lorem sed velit dolore stet.

Diam et et consequat labore et est aliquip ipsum elitr et gubergren. Aliquip sit eros sit tempor ipsum amet nonumy dolor elitr lorem accusam clita takimata duo nulla elitr at. Amet elitr lorem ea nisl kasd sea possim gubergren erat facer. Nostrud ex sit consequat nihil stet facer feugait nonumy lorem ea diam. Et option est stet odio consequat kasd amet feugait feugait dolores dolore invidunt vero autem gubergren. Labore consetetur sanctus doming sea ipsum dolores est et feugiat aliquam. Ea sit takimata nulla esse diam luptatum.