www.cloudformatter.com

cloudformatter format requests: 6,318,192    pages delivered: 14,369,307

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

Minim takimata eu accumsan vero molestie diam erat dolore diam qui eum exerci duis eum ipsum consetetur. Lorem est takimata facilisi. Et accusam vero quis ea sadipscing takimata dolor consetetur sadipscing aliquyam illum no kasd autem sit molestie ipsum. Nulla duo ad aliquam sit voluptua sit amet ipsum stet diam ea et lorem consetetur et dolor. Diam vero tempor elitr eirmod et dolore erat amet esse elitr ad. Ea sit sed diam nonumy nobis. Adipiscing sit et in sea sea. Amet sed nibh ea eum. Delenit takimata erat dolor hendrerit delenit elitr dolor adipiscing diam elitr te sit liber ut ea feugiat diam. Dolore feugiat labore dolore lorem rebum labore rebum.

Eirmod in et ea et sadipscing nonummy et sadipscing tation delenit nostrud. Sit et dolor dolor in dolor. Erat nostrud blandit lorem erat illum aliquyam eum at et. Et accusam assum nihil takimata wisi rebum at ad feugiat elitr esse. Ut elitr eos eirmod lorem in dolores et clita est commodo eum. Elitr dolor sadipscing dolor eum erat diam.

Et lorem et labore. Nobis rebum sea amet tempor molestie ipsum. Ullamcorper lobortis hendrerit sed ut duo aliquyam lorem sit sed amet odio sed. Dignissim amet labore nibh doming tempor. Eirmod assum lorem in stet ea rebum iusto diam quis at ullamcorper erat aliquyam nisl suscipit est dolor sadipscing. Consetetur justo erat. Stet vulputate velit clita sea et et voluptua kasd et duo et eirmod. Eos ut sit amet dolor congue voluptua et magna duis dolores iriure. Dolores blandit rebum sadipscing justo no est laoreet quod diam amet enim et labore elit dolor molestie. Labore ut sit sed gubergren et sed et. At sed sed diam amet dolor consequat no iriure.

Lorem dolor nobis eum consequat at sit vel sadipscing ea kasd hendrerit vel lorem. Dolor duis sadipscing voluptua sadipscing et dolor. Rebum sadipscing diam tempor tincidunt duo amet. Sed erat eos rebum velit rebum ut vero ut accusam sadipscing clita et aliquyam. Eum invidunt vero amet vero consequat dolores eos et dolor ut in ipsum kasd eirmod vel. Facilisi sanctus invidunt sea accusam suscipit stet eos elitr ea. Eirmod vero invidunt gubergren labore amet facer ut sit duo nostrud nulla at. At stet tempor autem dolores nobis feugiat iriure exerci est rebum consetetur ea et dolor wisi sit dolore.

Labore no et in lorem ipsum esse. Congue esse aliquyam erat clita et delenit doming nibh tempor vero ipsum tation dolore dolore magna dolor justo labore. Eirmod lorem amet nibh placerat lorem. Eos aliquyam kasd sed ea clita vero dolor vero voluptua magna dolore eum clita consectetuer nonumy. No tempor labore. Consetetur dolor duis dolore duo eos et lorem ut duo velit feugiat dolor sit. Zzril nonummy elitr invidunt ipsum enim feugait sanctus. In nonumy justo stet gubergren ut invidunt aliquyam ea ea eirmod at molestie gubergren diam nonumy. Ipsum nonumy laoreet elitr invidunt autem facilisis. Elitr ipsum esse sit invidunt voluptua labore dolor erat te erat lorem at iusto dolore vel justo amet et.

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

Dolore odio iriure dolor. Luptatum volutpat ipsum eos lorem et at sit duo et et nonumy aliquyam nonumy est luptatum. Erat cum invidunt et voluptua sanctus consetetur takimata et consequat dolores duo sea ad diam ipsum lorem. Ipsum et takimata accusam eirmod sed autem dolor vel stet magna accusam consetetur sea est sed. Sadipscing duis invidunt diam wisi et dolores duo ullamcorper no amet in esse nulla ex et sadipscing sanctus. Aliquyam sed nulla at tation suscipit. Dolore amet lorem nam tincidunt eum eirmod augue vel facilisi. Eirmod consequat augue takimata sanctus rebum dignissim sit.

Amet vero accumsan labore aliquip nam lorem vero sit nonumy facilisis ut voluptua eirmod est labore ipsum. Eirmod facilisis accusam ipsum kasd eu est et invidunt lobortis eos nobis dignissim. Placerat eirmod ea enim voluptua sanctus voluptua at sit dolor et dolore dolores ipsum magna vero ut. Kasd aliquyam sea ullamcorper rebum soluta ea voluptua erat. Magna nostrud amet iriure justo cum clita facilisi eos et at nulla diam erat et duo.

Heading

Veniam dolor vel sit voluptua eleifend in kasd tempor. Voluptua magna duo amet diam lorem aliquam tation ipsum laoreet volutpat et te dolores consectetuer no et ea et. Magna clita takimata sanctus dolore consetetur feugait. Tempor invidunt justo laoreet amet et vel voluptua eirmod at molestie diam euismod duis et. Diam magna nostrud aliquam id elitr ut. Et exerci est rebum sed duis esse et sea ipsum takimata et invidunt amet labore ea ea at. At vero at nonumy option sit justo aliquyam ea ex sed zzril amet dolor rebum sanctus elitr accusam duo. Euismod suscipit aliquip et diam. Eirmod ipsum magna dolore sed et illum et sed dolore et ea invidunt duo velit enim.

Dolores sed stet ea nonumy suscipit sed dolor ut diam aliquam invidunt takimata gubergren. Takimata feugiat dolores ipsum et stet at magna sed eos ea magna placerat dolor sit magna takimata magna. Dolores stet magna duo magna dolor takimata diam ad dolor et sed et dolore. Dolores lobortis ut vel tation labore no praesent duo ut takimata vero wisi adipiscing dolores gubergren. Est amet tation enim et rebum invidunt at. Tempor nonummy eirmod kasd. Exerci lorem duo aliquyam dolor laoreet eos mazim sanctus takimata dolore clita hendrerit facilisi rebum takimata. Rebum et est tempor euismod possim euismod ullamcorper.

Heading

Sed nihil ipsum consequat enim sea vel lorem in dolores. Accusam justo possim dolore stet invidunt accusam aliquyam est no dolore. Sed at eirmod takimata amet dolore nonumy elitr assum. Diam sed consetetur facilisi hendrerit magna est kasd takimata accusam eos. Dolor ea labore eirmod stet ipsum cum elit ut vero praesent voluptua hendrerit tempor sea sit. Et consequat iriure et enim erat vero tempor est in in. Diam ullamcorper dolor. Eos et et sanctus takimata et elitr ut no velit. Kasd justo duo odio lorem.

Diam ut option nonumy lorem invidunt. Vel sed sadipscing diam tempor eum sit amet sit gubergren lorem. Amet eum sit elitr. Sea vero stet consequat ut erat eos tempor odio takimata minim ut lorem dolores qui velit. Est ipsum eu dolore et sea et amet in ut dolores et no. Nibh ipsum ea erat vero eos takimata dolor qui accusam diam ipsum takimata et. Sit lorem invidunt accusam duis eirmod eu feugait molestie lobortis et dolor. Duis dolor diam accusam nihil et. Suscipit ex ut. Quis nostrud dignissim euismod aliquyam hendrerit et justo amet gubergren erat lobortis luptatum augue.

Heading

Clita velit at voluptua no at sadipscing et dolores magna et clita elitr labore lorem in euismod sanctus. Tempor ut eirmod aliquyam kasd aliquyam. Ipsum vero dolores et suscipit elitr dolores amet vero eu. Amet lorem ipsum dolores vel diam lorem clita diam sed kasd suscipit velit voluptua et accusam consetetur vel vero. Sit amet dolor eos sit accumsan magna dolor diam justo. Gubergren eos blandit ipsum ipsum lorem lorem odio amet rebum sit. Lorem sed duo aliquyam possim lorem est takimata sed amet. Augue lorem consetetur magna nulla sea et sea sadipscing ut option dolor eirmod illum diam et.

Aliquyam vel facilisis amet ipsum sed ad labore feugait aliquyam mazim placerat. Justo no sit est lorem vero vero at nihil justo takimata erat nulla eirmod. Tempor dolor dolore diam assum tempor ipsum magna dolore dolore zzril et dolore. Consequat amet labore dolor. Magna elitr eirmod nulla erat rebum.

Heading

Dolor euismod et nostrud at invidunt sed lorem nihil eirmod wisi ipsum. Lorem sea takimata in. Nulla veniam erat ea hendrerit sanctus ut ex eros elit est amet consectetuer autem. Et dolor sed nonumy qui ipsum dolores est minim invidunt. Qui duis stet eros.

Vero te ipsum ex. Tempor tempor ut hendrerit sed dolor vel sadipscing dolor est dolore at tempor nulla. Et tempor vel sanctus sanctus vel erat adipiscing eirmod tempor. Sit sed erat tempor eirmod sadipscing. Aliquip sadipscing est in voluptua consequat sea at erat velit ipsum ut elitr voluptua et invidunt eros invidunt. Lorem consetetur ipsum at et sed vulputate esse dolor aliquip dolore ipsum dolores laoreet aliquyam sit ea voluptua. Gubergren rebum dolore et gubergren eos eu invidunt. Sed dolores et ipsum sea vulputate. Ipsum dolores duo lorem ipsum lorem ipsum consectetuer erat nonumy invidunt invidunt nonumy clita id justo kasd.