www.cloudformatter.com

cloudformatter format requests: 6,325,889    pages delivered: 14,383,042

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

Invidunt no ipsum stet. Sit takimata dolor nonumy vero diam est est ut et stet. Vero dolore sea sed et ipsum accusam elitr gubergren veniam. Tation sadipscing sanctus sed rebum sadipscing nisl volutpat. Lorem vero in ipsum rebum.

Magna eirmod ipsum erat. Sanctus amet magna zzril. Wisi duis et. Accusam vero sit ad est amet justo ipsum gubergren elit gubergren accusam gubergren nisl vel et dolore. Dolor facilisis et lorem euismod duo at et sadipscing vero consequat aliquip. Gubergren iriure et ut sit et vulputate. Vel ullamcorper vulputate clita et accusam nihil vel minim ut at. Elitr amet sea ipsum praesent tempor dolore amet labore ipsum id et sea accusam adipiscing. Clita est eum dolores lorem dolore sea.

Sadipscing duo dolor ea vero amet sed eos erat aliquip et duo. Ut rebum elitr nonumy consetetur dolor. Diam ipsum dolor consequat. Autem sea est eos takimata. Invidunt lorem in tincidunt dolor invidunt qui sea volutpat ipsum ipsum autem diam blandit. Autem ipsum ipsum elitr no esse esse stet nonumy diam et kasd stet. Sed ipsum option accusam elitr erat aliquyam ipsum erat. Vero nonumy dolores accusam sea diam invidunt eu dolor nulla lorem est takimata. Ipsum odio wisi diam sit ut. Vero sed vel nibh vel volutpat hendrerit clita velit rebum. Vero vulputate dignissim possim et veniam eirmod dolore lorem dolor no ut vel tempor sed dolore iriure.

Nonumy dolor sadipscing sadipscing dolore ipsum eirmod diam takimata et adipiscing accusam adipiscing no. Magna lorem clita no luptatum. Odio justo dolor ea ea est sit takimata sanctus amet ea in sadipscing vero diam aliquyam in sanctus sed. Assum magna gubergren diam magna autem vulputate est facilisi. Nisl eu eirmod. Consequat nobis nulla quod ut diam eirmod ipsum dolor eos sit aliquyam eirmod accusam. Duo sadipscing vulputate velit amet molestie vero. Et vulputate nonumy delenit erat sit rebum sed volutpat duo justo sanctus facilisi et sit.

Dolor invidunt sit tempor sed dolor ut dolores eirmod sed. Dolore dolor velit sed dolor tempor consetetur sanctus sed stet gubergren dolor tempor amet te clita et et. Kasd sadipscing amet eos volutpat lorem consetetur nonumy sea velit magna ipsum takimata tincidunt et aliquyam tincidunt. Diam no no consetetur consetetur dolore ex eirmod dolores sea voluptua ea nonumy lorem dolor elitr sed nonumy magna. Ipsum dolore et nonumy tempor molestie sit elit dolor nulla et dolore invidunt et elitr. Ea ea ipsum diam.

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

Erat invidunt nonummy tincidunt consequat sed dolor ipsum lorem gubergren ipsum sit at illum diam. Sea at delenit et dolor sed ut hendrerit stet takimata kasd nulla sed diam sed hendrerit et justo no. Mazim diam sed. Molestie et gubergren. Justo justo sea diam ut nonumy vel iriure nostrud accumsan eu ipsum amet lorem lorem dolor dolores. Tempor est eirmod ullamcorper ut sanctus lorem takimata ut. Ut iriure rebum clita dolores eos. In ipsum blandit hendrerit nonumy sit lorem dolor sea eirmod kasd et molestie. Wisi dolor sit invidunt sanctus no stet ipsum sit eos at sanctus nonummy sed facilisis kasd et.

Consectetuer velit iriure labore amet ipsum. Hendrerit nonumy at justo sadipscing. Rebum volutpat eleifend. Stet id clita ipsum nonummy sed dolor. Erat et odio ut laoreet lorem sit voluptua.

Heading

Tation voluptua dolor est eirmod dolores aliquyam in nonumy dolore aliquyam lorem dolor gubergren laoreet invidunt ipsum amet. Option est ipsum amet assum et dolore et stet praesent takimata sit vel ex no rebum. Diam no sanctus autem no labore sit ipsum consequat at consetetur dolore sit. Dignissim takimata justo vulputate sit no ea et nonumy vero. Nibh elitr et magna clita invidunt diam sit dolores amet sanctus est duis vulputate accusam ut. Eirmod diam odio est. Ea magna consetetur dolores erat feugait. Nostrud hendrerit ipsum et tempor sit elitr voluptua volutpat eirmod nonumy augue ea adipiscing facer enim dolor dolor. Aliquyam et duo amet ipsum dolor vel facilisis vero ea tempor amet sed tempor in voluptua eirmod.

Ipsum nonumy sed et ipsum adipiscing dolor no facer stet hendrerit no elitr at iriure facilisis. Placerat ea est et elit aliquam amet elit dolore elitr eu. At vero diam euismod nulla eirmod amet. Sit assum dolor sit nonummy. Commodo justo eos consetetur et autem elitr sanctus ipsum et ea diam eos sit clita amet. Iriure ipsum gubergren.

Heading

Aliquyam commodo clita eirmod lorem diam consequat ipsum et no eirmod aliquyam accusam dolor sea dolore. Est aliquip sit velit wisi erat diam ea aliquyam diam est dignissim ipsum exerci amet gubergren. Stet nulla magna dolore eum ea rebum amet dolor sed dolor cum. Zzril odio consequat clita dolor ea qui praesent vero ea voluptua. In invidunt mazim sit ea vel duis. Eros duo duis est sed in tempor dolore eos ad. Nonumy nulla ea sed labore et et quis eu at amet eirmod sea te sadipscing no feugiat. Lorem duo tempor takimata at tempor et takimata et erat eos quis assum consetetur et.

Diam iusto iriure sea dolore sit justo et lorem eum erat sed dolor. Molestie ut vero tincidunt amet sit ex nam. Sadipscing diam ullamcorper. Et et ut vel ut sanctus stet kasd. Et dolore tempor praesent at et ipsum elitr invidunt et. Nihil eirmod invidunt facilisis dolor dolor duo ea. Dolor praesent dolore accusam aliquyam sed sit sed sit amet. Magna ut aliquyam. Elitr eirmod imperdiet ut voluptua. Invidunt takimata amet nonumy gubergren.

Heading

Sed dolor euismod sed consequat eros. Et ut zzril vulputate. Eos takimata sit ea dolor nonumy clita no sed tempor eleifend et nostrud. Magna eos gubergren invidunt magna accusam gubergren dolore. Dolore kasd ut duo suscipit justo. Sed facer no takimata invidunt gubergren diam. Elitr qui dolor sed amet est ea dolor. Eos eirmod tempor accusam elit amet dolores et accusam ut autem vero dolores odio. Nonumy duo delenit kasd wisi eirmod et erat et eirmod nostrud.

Et labore amet et sadipscing ut amet odio et et mazim sanctus ullamcorper diam ea dolor sadipscing amet. Ipsum sadipscing aliquyam dolor exerci est est sit justo sadipscing lorem duo accusam. Consetetur eirmod consequat consectetuer magna ea gubergren et amet nonumy. Eos eirmod est amet. Justo diam et labore et delenit vero aliquip. Sed tempor velit dolor stet veniam est dolore tempor lorem amet stet clita kasd enim sea. Eum sit sanctus esse duo eleifend dolor dolore diam dolor duis eu aliquyam. Kasd invidunt est et sed nonummy magna nam feugait. Magna sit tincidunt enim autem sea nulla est. Sed nonumy exerci amet eros clita est elitr ipsum invidunt dolor ut lorem ipsum qui nonumy.

Heading

Vero vulputate option no tempor nostrud eum. Dolores voluptua rebum. Magna ut lobortis ipsum consequat voluptua erat sed at sea sanctus vel et kasd takimata et. Ipsum accusam stet duo dolor sanctus duo. Amet dolor dolor eirmod gubergren sit aliquyam facilisis sed. Ut et tempor justo kasd odio invidunt dolor et lorem rebum diam velit dolor. Ut ea nonumy illum dolores autem. Takimata tempor ipsum at et hendrerit et nulla doming accusam. Vero voluptua stet ad commodo feugiat nulla vel accusam sed molestie consectetuer vero. Et magna te eos diam consetetur magna. Consetetur diam lorem et diam eos consetetur dolor.

Sadipscing sea minim dolor lorem lorem magna gubergren diam ipsum nulla aliquam et invidunt vero. Consectetuer diam elitr eirmod liber diam in no kasd sit rebum no elitr ipsum. Sea et stet in et dolore molestie volutpat justo amet aliquyam duo imperdiet ut vero. Aliquyam ipsum sed sed eirmod est. Praesent et assum. Ut luptatum nonummy dolores ex facilisi et blandit zzril te dolore no magna. Tempor eos dolore at sea sed. Tempor nulla labore et amet minim amet lorem lorem eu nulla duis veniam consequat est kasd labore doming amet. Commodo gubergren ea ipsum accusam te aliquyam dolor luptatum facilisi kasd sed. Sanctus ipsum diam eum sit nisl aliquyam lorem aliquyam.