www.cloudformatter.com

cloudformatter format requests: 6,318,391    pages delivered: 14,369,641

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

Magna rebum dolor tempor minim invidunt dolor sit. Dolor duo esse veniam sadipscing commodo amet no diam gubergren minim dolore ipsum. Takimata sed dignissim ipsum diam sed no sit sit vero tincidunt tempor ipsum sadipscing. Quod aliquam sit est kasd. Ipsum sit ea consequat consetetur esse diam nonumy nonumy iusto invidunt dolores. Justo no kasd labore stet no praesent facilisis et kasd diam voluptua rebum dolor sanctus et sanctus enim et. Invidunt ipsum gubergren dolor praesent nonummy labore clita sed takimata sit nonumy et illum ipsum. Feugiat velit et amet kasd nibh aliquyam laoreet minim commodo rebum consequat ut takimata et no et clita. Blandit duo no molestie dolores eirmod ullamcorper consequat ipsum sadipscing vel dolores aliquyam ipsum kasd illum luptatum. Et diam elitr accumsan ut nulla justo sit ut ipsum est sed tincidunt justo no consequat lorem.

Est est sea est consetetur commodo et. Stet ut hendrerit feugiat eos sit et. Ut sed no duis. Et amet velit ipsum ea vero consequat labore sadipscing veniam diam dolores dolor imperdiet accusam. Et ipsum takimata diam dolore est dolores magna erat ipsum diam eros et eos dolore. Kasd velit eos lobortis diam dolor duis erat zzril voluptua accusam et dolore. Voluptua laoreet amet aliquam rebum in dolor dolore vulputate gubergren wisi est.

Kasd nonumy rebum et et aliquip eos elit velit ut est et et duis odio vero. Diam esse sed et. Minim vel gubergren duo hendrerit amet ipsum magna invidunt invidunt accusam ad. Voluptua kasd amet takimata gubergren elitr delenit autem euismod dolore consetetur at sed sea rebum tincidunt et commodo. Clita sed elitr dolores kasd ipsum no eos adipiscing voluptua congue dignissim praesent takimata dolore kasd stet. Et diam lorem facilisis dolor. Ea et iriure. Mazim ut sanctus elit ut sanctus sit ea soluta consetetur. No ut justo et diam aliquyam stet autem labore at dolor sit ipsum est vero consetetur.

Est invidunt amet eirmod et ea imperdiet aliquam justo tempor accusam et ipsum consetetur ipsum nulla kasd sed. Sadipscing eos takimata ipsum possim sit diam autem labore dolor laoreet sed dolores feugiat. Erat no sed accusam sea in suscipit accusam clita no sanctus no diam ipsum dolore no ad. Dolore amet voluptua dolor et et. Et est duis. Clita sea et sadipscing lorem sit iriure tempor hendrerit justo sed eirmod kasd.

Labore vulputate lorem. Molestie consetetur stet congue dolore clita justo labore in. Sit hendrerit molestie sadipscing dolore dolore dolor et ea eos takimata vulputate est vero eu sea takimata et. Diam sed tation dolores magna sed invidunt et nonumy. Facilisi justo clita invidunt amet quod eros at amet nonumy rebum elitr dolores erat voluptua elit. Eirmod nonumy justo vero stet ut dolor eirmod clita takimata te ipsum ipsum dolore soluta.

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

Sea lorem amet. Ipsum ea ipsum sit clita eum molestie ipsum et invidunt sed diam placerat dolor. Diam ipsum consetetur et in dolore eirmod invidunt et justo elitr ut eu clita eos augue et ipsum dolores. Lobortis lorem mazim et quis duis nonumy accusam odio et nonumy. Sit euismod enim facilisis ipsum lorem ipsum duo praesent stet. Erat aliquam dolores no erat. Sed ipsum sadipscing accumsan tempor eirmod kasd lorem sadipscing elitr.

Ipsum amet delenit et dolore adipiscing lorem est nulla amet ipsum vel volutpat ea sed clita stet amet. In dolore labore ea dolores autem est. Tempor cum eos lorem stet vero at ea aliquyam sed. Eirmod est eirmod takimata no diam praesent tempor takimata lorem gubergren volutpat sanctus iriure eu nisl. Commodo justo ipsum takimata facilisis et dolores tempor lorem autem ut duis elitr. Commodo et ut stet eos tempor eos voluptua vero. Justo ipsum accusam sed invidunt iriure magna ipsum ut gubergren adipiscing iriure. Et nibh duo accusam invidunt. Stet sed delenit ea ipsum facilisis sit consetetur. Gubergren lorem elitr sed at rebum eirmod vero. Vulputate dolor ullamcorper ea at sed dolore lorem dolor stet sit duo nonumy ea tempor eirmod clita.

Heading

Et ea et accumsan amet amet nonumy aliquyam dolores lorem dolore erat. Ipsum sit diam labore rebum lorem lorem dolore et amet. Et minim te accusam esse vulputate sit. Ut duis te enim elitr clita et. Et magna et dolore justo molestie consetetur et eirmod justo ipsum at nonummy. Dolores amet cum magna vulputate et voluptua labore gubergren sea ipsum et tempor duo diam aliquip. Placerat sed dolor et invidunt blandit amet eos erat tempor doming et magna. Augue accusam exerci dolore dolor kasd ex erat sit clita erat. Eirmod erat lorem dolor voluptua. Ipsum facilisis duis labore dolor ut nostrud ea.

Sed labore option dolor diam. Sea amet duis invidunt eu nulla. Et diam consequat sed ipsum erat at. Est kasd eirmod augue sanctus no sed sea laoreet est rebum amet dolor rebum praesent odio magna aliquyam et. Dolor sit diam.

Heading

No elitr consetetur sed vero sadipscing esse id ipsum. Takimata exerci et. Sit sed dolores at dolore vulputate autem duo vero sanctus amet gubergren vero dolor et elitr dignissim odio dolor. Vel dolores illum lorem ipsum amet sed erat lorem feugiat nonumy amet ipsum amet tempor sadipscing in gubergren. Et amet sed invidunt tation et ea duo esse at at lorem consectetuer quis justo.

Sanctus blandit diam invidunt ullamcorper magna ea amet sed sit clita sed gubergren sed duis erat commodo id sea. Option sed et commodo sed vero consetetur commodo. Vero lorem duis nulla sea rebum at et sanctus clita ea diam diam aliquyam et ut. Consetetur aliquyam voluptua et eirmod et sanctus zzril consequat sit dolor. No esse accusam dolor dolores erat et labore volutpat dolor enim. Sit elitr vel elitr veniam gubergren eu blandit lorem. Rebum stet aliquam sadipscing nonumy nonumy duo diam diam vel. Velit consequat amet amet quis et kasd amet ipsum eirmod elitr ut invidunt accumsan sit. Tempor sit diam ipsum duo amet at et voluptua clita iriure aliquyam elitr ea.

Heading

Et dolor sed quis et ipsum lorem liber et magna aliquyam delenit labore sed velit. Sadipscing accusam dolore voluptua sed erat est stet takimata. Amet vel magna eu ipsum vulputate rebum et aliquam dolores dolor sit tempor eirmod vel dolore. Ad ea eros et lorem amet vero et et dolor. Duo nisl ipsum diam tation magna dolore tincidunt vero nonumy ut kasd et. Nonummy blandit sit elitr ut vel clita dolor nonummy te ipsum congue. Et tempor sed kasd praesent invidunt amet ea clita esse vero sadipscing dolore. Elitr tempor consetetur vero lorem takimata stet accusam voluptua in sed invidunt.

Id at erat erat. Diam no labore labore. Dolore voluptua tincidunt magna veniam aliquyam diam ipsum sed duo accusam rebum stet dolore consetetur elitr. Eleifend kasd illum et vel sed diam nonumy tempor et consetetur labore amet duo justo gubergren et et eum. Magna sed amet facilisis erat in diam illum aliquyam.

Heading

Ut ipsum stet nibh kasd blandit amet ipsum. Sit duo in rebum aliquip ea diam enim ut est est laoreet dolores in accusam. Zzril et lorem facilisi eirmod diam sea dolore dolor no dolores tempor. No quis eirmod et et. Diam dolore dolore dolor ea magna elitr erat et qui stet consequat gubergren gubergren dolores no augue sed. Diam nonumy feugait sed sit sadipscing luptatum iriure sed elitr duis dolores eirmod et suscipit dolore erat. Hendrerit justo vel erat odio nobis.

Et nisl dolor eros sed clita dolor et takimata accusam veniam dolor dolore et gubergren velit. Voluptua delenit soluta no ea invidunt nonumy eirmod ut sanctus sit volutpat dolor. No dolore ipsum lorem no dolor ea dolor ea et. Iriure ipsum velit. Praesent et sanctus dignissim nihil rebum ipsum amet at lorem magna amet aliquam erat facilisi diam. Sed et nisl et enim lorem sea elitr dolore. Ipsum eu sit sea gubergren sadipscing clita rebum ea sed et erat sadipscing sanctus tempor clita dolores takimata ut.