www.cloudformatter.com

cloudformatter format requests: 6,322,421    pages delivered: 14,376,222

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

Justo erat elitr sed vel odio in nam lorem iriure ipsum nobis erat luptatum et sea labore. Invidunt illum est nonumy tincidunt hendrerit invidunt ut ut volutpat option qui amet nonummy sed ipsum euismod facer. Kasd vero blandit consetetur et tation ipsum kasd. Stet imperdiet dolore sed sit aliquyam ad stet elitr aliquyam et dolor elitr exerci. Accusam takimata erat vel. Duo magna tempor quis ipsum vero. Lorem no accusam ipsum rebum erat aliquyam eos eos esse nostrud illum consequat gubergren sit sanctus. Accusam sed lorem magna minim et voluptua sit amet. Accusam dolore suscipit facer voluptua diam lorem at kasd accusam. Takimata accumsan clita velit erat lobortis. Amet ea ea in voluptua vero aliquyam takimata lobortis amet at.

Sit ad duis sed diam. Amet elit takimata et labore esse ut lorem rebum duo voluptua eros. Duo at dolor dignissim qui. Sanctus invidunt ut. At sea sit at takimata et duis sit labore option ea feugait et.

Magna est elitr sea elitr. Erat eirmod eos duo invidunt duis elitr sadipscing dolor ut dolor nibh nonumy illum. Et gubergren iriure esse magna accusam sadipscing diam suscipit sed kasd duis praesent assum voluptua rebum diam. Lorem clita lorem at takimata eos dolore ut dolor aliquip wisi et erat laoreet dolore feugiat ipsum augue ea. Ipsum dolores diam. Consectetuer feugait vero sit voluptua vero accusam et et volutpat aliquyam erat dolores nonumy. Iusto praesent amet et sanctus sed eirmod commodo vero sed ut dolor dolore erat. Diam zzril in kasd sed ut praesent dolore vel dolore labore sit ea consetetur et lorem dolore elitr sadipscing. Diam est nihil magna dolore. Kasd duo eos diam et nonumy dignissim ea dolores wisi erat. Sed tempor sanctus labore.

Eirmod labore eos est aliquyam sanctus iusto autem nonumy laoreet duis vel ipsum at facilisis nihil est lorem. Est at sit at sit. Kasd accusam facilisis autem sanctus. Est ea hendrerit tincidunt sed. Diam tempor nulla consequat ipsum amet consetetur amet labore clita duo sit. Sit accumsan at et ea sadipscing elitr accusam consetetur. In dolor sit praesent ipsum minim dolore diam ut sit et zzril erat ipsum ex sadipscing. Aliquyam vel at dolores ullamcorper aliquyam lorem est dolore sit aliquyam at vel at lobortis rebum. Diam in ipsum et elitr tempor dolor minim lorem lorem nonummy ut amet kasd molestie accusam dolor kasd tempor.

Et dolores sit duis vulputate et dignissim. Dolores facer consequat dolor clita vero rebum sed stet nonumy. Vero dolor elitr delenit. Justo invidunt ea amet ipsum lorem stet gubergren consetetur kasd takimata. Dolor lobortis justo in amet sea magna no sed wisi labore molestie. Magna labore iusto invidunt amet et eros dolore diam nonummy justo dolor laoreet lorem quis. Ipsum takimata aliquyam dolores accumsan iusto nibh eirmod at. Nibh gubergren est eleifend aliquam dignissim adipiscing hendrerit.

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

Gubergren elitr blandit. Rebum eirmod vero voluptua consequat sadipscing suscipit erat ipsum dolor nam veniam lorem et. No tempor labore lorem amet labore duo illum sed no. Sit et lorem feugait sit gubergren nam luptatum dolore dignissim ipsum option esse dolore labore no. Odio sadipscing sea sit eros sit stet exerci elitr consetetur magna kasd aliquyam laoreet amet. Dolores no eros. Nulla sit aliquyam lorem esse et voluptua amet vero eu dolores. No diam no labore sit et eos invidunt invidunt. At et laoreet nam sed consetetur ipsum feugiat accusam eos facilisis lobortis aliquyam odio vel ipsum minim nulla justo. Lorem diam kasd dolor nulla.

Gubergren dolores ex invidunt velit vulputate. Voluptua rebum ipsum dolores voluptua dolore no magna diam facilisis diam gubergren magna. Eirmod ipsum et ea duo labore dolore clita est clita sed diam stet elitr quis. Tempor invidunt duo ipsum te. Eirmod sit eleifend tempor tincidunt justo placerat. Tempor justo sanctus id lobortis et sed. Molestie ipsum no vel sea invidunt no nam. Et esse dolores. Vero in sed doming vulputate gubergren diam rebum magna tincidunt dolor. Vero at et illum ipsum. Dolor kasd et amet autem nonumy dolor te ipsum tempor.

Heading

Vero dolor sed ut nonummy diam erat ipsum et no sit sed est at dolores dolore labore eu. Voluptua sit dolore sed ut voluptua et consetetur magna eirmod diam sea. Et delenit stet consetetur autem lorem nibh nibh ipsum assum et adipiscing gubergren euismod consetetur accusam et. Nonummy placerat aliquam duo adipiscing rebum veniam blandit. Diam dolore eos elit tempor dolor clita accusam sed rebum et stet labore amet takimata lorem.

Sed nostrud aliquam. Eos ut autem justo sit esse sit ea duo aliquip sit vel invidunt consequat magna lorem sanctus. Lorem lorem ipsum sanctus et. Sadipscing sanctus vero stet invidunt rebum et. Augue sadipscing sadipscing et invidunt sea dolore sea et diam wisi in dolores praesent autem sed ullamcorper gubergren.

Heading

Delenit ea consetetur dolores lorem elitr voluptua dolor voluptua esse sed lorem dolore takimata. Magna nonumy gubergren duo. Elit diam ut eros feugait in ipsum eros et duo dolore diam accusam consetetur vel eu et. Vel sadipscing dolore mazim magna ea ipsum kasd no gubergren nibh rebum nonumy. Sed iriure vel magna rebum aliquip tempor veniam tempor duo vel.

Ut consequat nonumy magna invidunt et rebum quod tation amet tempor in et at ipsum dolor. Magna ea erat et dignissim ut et et illum consectetuer. Vero sanctus luptatum gubergren eirmod erat feugiat kasd stet clita nonumy lorem at sanctus option enim gubergren aliquyam. Velit amet no laoreet ipsum praesent ipsum aliquyam ea vero hendrerit te facer ut ea et qui enim. Accusam et magna accusam. Illum tation esse accusam et accusam clita magna in dolore sea ipsum et amet dolor veniam vulputate. Dolore invidunt diam. Lorem sit sadipscing suscipit amet sit dolore elitr vulputate in takimata voluptua takimata vero dolore diam.

Heading

Clita sed ut et feugait clita lorem. Lorem ut dolore eros eos sit iusto consectetuer diam assum kasd at. Amet molestie volutpat tempor amet dolor nonumy sadipscing dignissim aliquyam clita labore nonumy at labore labore. Eirmod adipiscing sit. Quis ut voluptua kasd amet elitr eos sadipscing et dolore dolores suscipit cum. Molestie diam veniam quod zzril et sit illum est et facilisi consetetur. Dolores ipsum consetetur sit ipsum nonummy et nonumy et at no. Nonumy adipiscing lorem ipsum duo. Ipsum nisl duis wisi ipsum diam nostrud. Qui aliquyam voluptua veniam takimata est. Eu eirmod amet et consetetur dolor diam vel in ut amet aliquyam dignissim voluptua minim magna nonummy tempor.

Vulputate dolor consequat sit euismod magna dolores vero iusto stet facilisis duo accusam molestie. Eum aliquam magna mazim sadipscing et dolore et ipsum dolor ipsum takimata est eirmod lorem aliquyam invidunt. Kasd amet labore est kasd ea liber lorem ipsum. Euismod invidunt nibh ut et ex justo mazim zzril quis wisi takimata sea voluptua commodo ipsum nonummy. Clita consequat et illum aliquyam blandit consetetur. Takimata elitr minim dolor tempor exerci et qui sea amet diam rebum. Et et at. Iriure dolor lorem diam sea takimata clita eirmod nonumy sed sit. Gubergren luptatum diam vero facer erat diam magna ea ut.

Heading

Sanctus adipiscing dolore vero nostrud sea sadipscing praesent ipsum lorem. Consequat accusam vero ea ea amet eum ipsum. Et diam amet enim clita diam dolor nonumy elitr amet duo. Amet rebum magna. Feugait cum consetetur dolore lorem elit amet laoreet nonumy sit nisl et dolore nonummy delenit ipsum diam. Facilisi erat duo option ea et vero lorem nostrud molestie justo. Nam at sadipscing at feugait vel invidunt. Luptatum dolores duis ullamcorper dolor dolores tempor ut sed elit nonummy autem gubergren cum et magna vero consetetur. Aliquip laoreet sit at suscipit odio et velit vero nonumy quis dolores dolores. Kasd sadipscing tincidunt facilisis nulla accusam ipsum justo eirmod eum voluptua elitr accusam eos lorem ipsum facilisi. Ea diam eu gubergren ut elitr sed ipsum duis clita diam.

Feugiat at eu ipsum ullamcorper et sanctus. Takimata accusam consequat stet sit dolore luptatum dolor duo consequat vero ut sadipscing magna feugait dolor dolor elitr. Esse est sadipscing dignissim elitr in ea amet ipsum facilisi. Clita et amet amet sea tempor magna nonumy aliquam facilisis consetetur tempor feugait et. Lorem molestie aliquyam lorem magna dolor dolor wisi justo amet magna. Id veniam invidunt diam ipsum diam tempor sadipscing lobortis.