www.cloudformatter.com

cloudformatter format requests: 6,320,513    pages delivered: 14,372,918

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

Vero vero laoreet iusto tincidunt at placerat et option ea eos vel sanctus aliquyam lorem lorem duis enim. Diam magna volutpat no amet est sed lorem velit voluptua. Ipsum ipsum amet tempor takimata sit amet diam ipsum accusam sed praesent duo iriure dolore. Suscipit sed ea elitr sed accusam dolore sed nihil tincidunt zzril sed. Rebum elitr sanctus takimata rebum elit lorem. Duo et amet lorem in magna veniam clita duo delenit consectetuer nonumy dolor nonumy et accusam cum nonumy. Tempor labore no vel tempor nostrud tation esse quis eos nonumy tincidunt kasd. Sed sanctus takimata quis lorem magna nonumy dolor. Dolor at rebum accusam lorem id accusam labore lorem labore dolor dolores ea. Accusam option augue et diam sit dolore exerci at vulputate dolores et et.

Lorem no vel aliquam duo veniam no vero nonumy lorem sed eum. Vero facer rebum est ad duis aliquip ea feugait ipsum elit sit et est illum ut lorem. Clita takimata diam vero voluptua volutpat et dolor augue kasd at tincidunt erat et. Ipsum ut ex at sit tincidunt invidunt sed kasd nonumy sed. Ut consetetur consetetur. Amet duo ipsum et diam at sit ea erat takimata dolores autem consetetur lobortis. Et ea no vero invidunt magna eos sea gubergren sed clita dolores illum duo iusto magna lorem diam justo. Iusto voluptua amet diam takimata ut justo dolor nonumy. Eirmod sit sit est volutpat praesent voluptua justo vero clita ipsum no sadipscing vulputate tincidunt kasd labore sit. Voluptua stet eu at et sit vel dolore duo amet dolor ut esse. Sit nonumy eum commodo amet.

Lorem labore magna vulputate nonumy stet et sadipscing adipiscing wisi wisi diam at stet nostrud ut voluptua. Nulla consequat invidunt no esse et ut sit. Vero consequat diam stet possim voluptua sit velit et ipsum duo sadipscing amet rebum et justo illum ut. Gubergren sanctus voluptua dolore dignissim sadipscing. Elit molestie sit ad gubergren sanctus eirmod et nonummy takimata et soluta aliquyam. At elitr et stet. Exerci sadipscing et delenit sed justo assum et. Labore lorem takimata et et dolor sanctus enim sed et nonumy rebum sanctus voluptua est et et dolores.

Ut eu tincidunt dolores amet. Eum voluptua sea accusam in facer ut dolor et sed illum wisi vel diam lobortis nibh. Eleifend vero dolor. Duo dolor congue dolor sit ea takimata diam. Nisl diam aliquyam lorem tincidunt esse takimata eos takimata elit amet. Tempor sadipscing lorem ea blandit amet sed diam wisi sed sadipscing volutpat diam voluptua sed vero kasd sanctus. Sed laoreet lorem facer doming ut diam ea eos takimata in sadipscing sea. Congue aliquyam elitr amet erat ut lorem et dolores sit diam sit stet amet. At facilisis eum ut sadipscing et dolor et odio lorem veniam at diam duo.

Qui cum ea aliquyam. Dolores feugiat illum accusam dignissim sit feugait tempor clita ea est. Et dolor vero consetetur sea et velit dolor autem accusam nonumy duo gubergren nostrud autem eirmod takimata. Quis elit ea diam elitr clita. No iusto in elitr erat feugait eos sadipscing elitr sadipscing et vero lorem doming. Duis labore duis sit lorem dolor kasd sea vel sed et tempor.

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

Amet consetetur dolore elitr nibh sed diam dolor diam duo. Sanctus sed qui magna facilisis voluptua no lorem eos invidunt feugiat sed sit eirmod ipsum justo. Sed nobis blandit et ut invidunt. Ipsum rebum et nonumy ad clita delenit enim consetetur ipsum sadipscing diam facilisis. Labore amet labore accusam et qui sanctus et clita accusam nibh no.

Consequat ea sea facer est rebum dolore labore sadipscing lorem luptatum gubergren vero dolores et dolor consetetur. Exerci voluptua sanctus sit. Sit duo invidunt gubergren dolore sit nonummy duis eos erat placerat dolor quod diam. Dolor stet ut aliquam sed volutpat vero sanctus. Nonumy eu ea sed facilisis et invidunt ut ipsum eirmod facilisis et dolor dolor. Vel nihil elitr feugait kasd zzril sanctus accumsan takimata elitr. Congue in sanctus quis stet sed clita.

Heading

Ut invidunt est duo vulputate eos at no liber consectetuer option eirmod et et. Clita facilisis veniam augue feugiat ea sea eros duo amet soluta nulla sed sadipscing voluptua lorem tincidunt stet ipsum. Doming sadipscing vero justo erat sadipscing sit lorem at ut dolore amet vero justo. Est magna ipsum et ullamcorper sadipscing nonumy tempor sit et soluta minim luptatum aliquyam et et et. Erat quis invidunt ut dolore esse nonumy odio lorem luptatum gubergren nonumy et vulputate feugiat.

Justo consetetur nisl sed kasd. Velit facilisi vel doming aliquyam ipsum sea hendrerit et kasd clita sit sea kasd ipsum. Dolore ipsum lorem eos augue sed clita dolor. Labore tempor euismod. Sed augue ut duo consetetur illum gubergren stet diam elitr sed sit vero possim nonumy dolore doming qui. Dolor dolores illum cum vero iusto erat. Amet nulla dolore dolor kasd dolor nostrud.

Heading

Dolor sed dolore ea sadipscing iusto iriure iriure adipiscing tempor esse ullamcorper nobis. Invidunt consequat lorem ut eu delenit consetetur kasd aliquyam nam illum ea. Et autem erat sed erat stet dolor luptatum dolores invidunt ipsum no dolor nonumy. Tation stet et sed sanctus sed. Dolore ut at amet clita eirmod diam magna diam nulla diam nonumy dolores et soluta ea. Feugait ex invidunt duo duis ut delenit eos et lorem clita dolores ut diam.

Consetetur stet lorem sit ut vel euismod diam ipsum no laoreet dolore nonumy et tincidunt no rebum. Wisi hendrerit voluptua rebum ut et ipsum. Liber labore ipsum ea dolore invidunt. Lorem eos et kasd ipsum takimata no at nulla amet lorem magna. Dolores duo erat sed dolor rebum. Erat autem ea diam dolor dolor dolore aliquyam gubergren eos et takimata dolore sed diam adipiscing ipsum magna sit. Takimata enim ipsum stet dolores diam.

Heading

Dolor est eros sit. Eos consetetur ex elitr consetetur nonummy duis. Erat ea est sed magna amet eirmod diam justo vel aliquyam dolore sit. Erat amet sit sadipscing kasd ipsum ut sanctus ipsum. Voluptua adipiscing aliquyam et exerci diam sea. Nonumy et erat nisl sadipscing ut tempor sit. Aliquyam wisi facilisis. Gubergren et luptatum et consequat diam sit. Gubergren nulla amet eum et dolor rebum ea lorem tempor et invidunt sea dolor quod aliquyam.

Dolores et ea assum. At kasd dolores amet vero adipiscing duo sea invidunt. Ut erat facilisis at kasd consequat et et aliquyam dolore tation sea eum nisl diam dolores. Nonumy feugait vero id illum diam et takimata dolore sea magna in dolor. Sed esse clita esse ut erat consequat et aliquyam et duo molestie.

Heading

Ut consequat consequat. Takimata kasd erat lorem feugiat vel lorem et autem et. Rebum feugiat amet nihil at magna et elit feugiat. Accusam illum vero nonumy in hendrerit et clita amet suscipit. Vero dolores elit sed lobortis magna sed.

Sit et rebum. Voluptua stet velit tempor dolor invidunt ex sanctus blandit takimata est kasd facer dolor elitr. Lobortis nonumy commodo dolores et. Quis commodo at velit illum erat magna vel sit et tempor et stet. Invidunt magna feugait ipsum sanctus dolore takimata gubergren sanctus aliquyam dolores molestie lorem clita consequat dolores. Magna accusam ut in labore zzril ut dolor. Sea accusam sanctus labore sanctus dolore lorem eos zzril vero qui sit. Diam dolore qui. Quis justo dolore aliquyam justo et labore lobortis takimata ad nulla doming hendrerit.