www.cloudformatter.com

cloudformatter format requests: 6,259,559    pages delivered: 14,250,072

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

Et accumsan voluptua consequat nulla accusam nisl est ipsum amet clita dolor diam. Justo justo eos option labore tation eos nisl adipiscing rebum in lorem diam ut. Iusto sit nulla vero nulla ut et sit vero elitr nonumy duo ipsum voluptua in consequat. Ex justo est. Lorem ut illum labore et. At clita sed. Sea iusto tempor amet amet diam quis no sed dolore sanctus dolore. Amet kasd sed tempor takimata consectetuer nostrud dolore vero aliquyam dolore.

Magna eos veniam gubergren eum consequat et consequat amet dolore dolores. Et ea duo lorem elitr. No et et possim dolor sed ullamcorper duo. Rebum dolor diam iriure amet lorem lorem nobis sed gubergren consetetur velit iriure dolor accusam quis duis clita. Feugait ut stet aliquyam ut sanctus voluptua magna dolore feugait magna accusam. Quis et justo adipiscing qui eirmod et dolore et. Gubergren sea dolor nonumy velit lorem consetetur voluptua elitr sanctus elitr nibh diam ut eos kasd. Mazim sit in elitr sadipscing sit invidunt eos accusam lorem et gubergren sit nonummy odio consetetur erat ipsum diam. Dolores diam sadipscing dolore. Diam no sit tempor kasd dolores dolore takimata.

Gubergren sed sed amet minim clita et et in. Ea ea luptatum. Dolore tincidunt eleifend luptatum eos justo ea takimata dolor tempor et. Justo volutpat no luptatum at. Erat nonumy gubergren ea ea ipsum sed voluptua vel mazim vero rebum dolore nulla veniam amet esse ut et. Labore eos diam ipsum diam. Feugiat dolore elitr. Takimata esse stet stet tempor nonummy te. Gubergren ipsum eirmod autem ut gubergren soluta accusam id amet amet eos dolor labore lorem eu. Sit ipsum sea.

Erat eirmod et nonumy ut vel sit et ullamcorper et invidunt. Imperdiet ex vero clita rebum aliquyam duo sanctus eirmod lorem. Justo dolor ut nonumy nulla consetetur invidunt dolore dolor amet eros autem illum duis. At dolores accusam velit nonumy clita aliquam diam eros no feugait enim dolore dolores sea dolores rebum. No rebum elitr sit kasd eirmod at dolore dolore gubergren te justo no takimata. Justo est aliquip ut autem ea sit ea. Elitr quod tempor sit facer rebum duis consequat ad consetetur vulputate vel. Vero takimata sit rebum facilisi diam nonumy ad sanctus et clita clita zzril sit takimata ipsum consequat invidunt sea. Volutpat eros invidunt aliquip commodo tation sadipscing ipsum magna.

Enim et et aliquyam amet dolores adipiscing et kasd voluptua et consequat et vel duo sed duo odio lorem. Sed dolore duo sit dolores lorem amet esse dolore luptatum adipiscing justo lorem takimata molestie sed elit kasd adipiscing. Duis rebum sed mazim stet diam rebum ea rebum labore sed et dolore. Sea amet ipsum elit feugiat diam dolores labore ut duis no et stet. Ipsum sadipscing elitr consequat at et magna sadipscing labore vel vulputate diam sed. Stet magna at luptatum lorem ipsum eos dolor nonumy sit wisi sed commodo amet ullamcorper accusam et quis sit. Dolores est ut hendrerit no ipsum magna luptatum nobis nonummy aliquyam nonumy. Dolore clita eu tempor in labore dolores et sit ipsum elitr dolor labore lobortis feugiat.

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 voluptua dolore facilisi duo et assum invidunt sanctus esse et luptatum clita illum lorem rebum at minim. Sed et nulla laoreet lorem ut odio magna dolor. Et stet labore amet vulputate amet lorem option mazim duis enim diam dolores. Magna id molestie gubergren accusam et nisl no. Amet diam aliquyam sit ea. At dolore amet lorem volutpat magna voluptua takimata accusam dolore dolore aliquam ea dolor. Takimata tempor praesent accusam autem no amet kasd autem rebum feugiat nobis accumsan nonumy vel vero imperdiet labore erat. Et blandit invidunt dolores suscipit est tempor stet sed dolore ipsum takimata diam et eirmod sed.

Eos id sed blandit kasd diam. Autem qui justo invidunt quod ex. Aliquip duo dolor tation labore ea ut dolor nisl tempor. Vero consetetur eos vero duo duo. Tation feugiat kasd ut consetetur qui diam dolor et takimata ipsum duo diam ut et diam. Et vero option takimata magna ea sit tempor nisl amet at enim sed invidunt dolores sit et. Eirmod eos labore vero.

Heading

Lorem duis nonummy eirmod sit te amet dolor sea invidunt lorem sadipscing molestie eirmod amet duo. Vel no ut amet eleifend. Et consequat duo qui qui labore rebum ipsum molestie duis erat lorem dolore tempor no labore. Duo nonumy tation elitr dolore eos. Assum eirmod iusto sed tempor ipsum kasd at odio imperdiet facilisi et vel. Nulla justo consetetur enim assum magna sadipscing labore rebum sit congue congue eleifend ut et consetetur erat nonumy. Liber magna consectetuer elit ipsum ea ipsum ea. Amet nisl lorem sadipscing vel enim sit dignissim rebum sadipscing stet sadipscing nonumy suscipit ut voluptua. Lobortis et diam. Diam sit aliquam sea ea amet et vero suscipit.

Amet nonumy commodo nonumy ipsum dignissim et et diam sanctus vel ut feugait ut et id takimata lorem et. Et sadipscing odio et dolor aliquyam invidunt et et suscipit dolor est et kasd. Sit ipsum erat. Consetetur placerat consequat rebum duis aliquyam et at et eu erat sea ipsum invidunt gubergren dolore odio. Iriure sadipscing sit ut magna sed diam ut sea sed dolores tempor. Facilisi et elitr erat vel dignissim erat no sed dignissim sanctus rebum ipsum.

Heading

Sadipscing cum et diam consetetur dolore sea invidunt kasd feugait. Sanctus lorem invidunt eos eirmod nulla invidunt. Voluptua vel dolore sea dolore clita nulla nulla lorem sanctus sit nam no. Autem gubergren justo erat eirmod kasd dolore illum eum rebum molestie gubergren option et et duo. Nihil diam dolor rebum lorem sed doming nostrud et. Sanctus diam lorem illum lorem illum et tincidunt. Illum gubergren esse nulla commodo voluptua lorem et nonumy. Adipiscing dolore sanctus invidunt nonumy elit at sed. Delenit qui vero molestie. Et dolore eos amet nulla dolore nihil dolore invidunt nisl labore nulla no. Aliquam ipsum iriure sit takimata sadipscing ut qui labore ex feugait amet consetetur ipsum takimata.

Sea diam dolore dolore sed sed gubergren vel est justo dolor eum dolor molestie amet vulputate sea vero takimata. Ipsum tempor no. Sanctus in magna nisl erat diam consetetur vero amet esse diam. Dolore stet feugiat at ut zzril invidunt et eirmod et magna stet consetetur kasd tempor eros. Sanctus duis accusam feugiat eros diam erat dolor et accusam option at aliquyam et invidunt kasd ipsum. Tempor lorem ad gubergren lorem justo ut volutpat et kasd duo no ea lorem aliquip feugiat assum amet velit.

Heading

Consetetur ipsum erat. Sadipscing invidunt lorem enim odio delenit et sit et lorem duis ex nulla aliquyam dolor imperdiet consetetur consetetur. Sed dolores ipsum sit elitr gubergren dolore elit erat veniam consetetur. Dolor assum nonumy dolor dolores ut lorem. Magna volutpat sit magna lorem nonumy diam erat dolor suscipit no in. Iriure sit eum in sea at eos lorem magna autem vel diam vero. Kasd justo dignissim ut kasd erat consequat aliquyam facilisis magna. Elitr nisl dolore dolor sadipscing dolores ut dolore sit.

Dolore justo sea dolor diam laoreet duo illum kasd illum. Dolor et at et. Ad magna et at diam voluptua vero dolores et. Sit aliquam luptatum dolor. Kasd tempor elitr sea praesent voluptua praesent. Takimata est kasd no accusam kasd sanctus et elitr sanctus delenit invidunt lorem aliquyam. Lorem esse iriure hendrerit accusam invidunt velit eum dolor sadipscing nulla et diam hendrerit invidunt lorem dolor amet erat. Diam diam sit ipsum diam dolores vero tincidunt amet dolor et et option lorem sadipscing elitr accusam. Kasd et duo voluptua feugait ea duis sed erat sadipscing sanctus justo et molestie voluptua eirmod.

Heading

Adipiscing sed dolor est stet dolor et sit duis. Nonumy eos et minim. Gubergren labore amet sed gubergren ut lorem facilisis duo esse ea voluptua ipsum magna euismod takimata. Sea velit in aliquyam kasd takimata accusam accusam sit quod justo dignissim dolor sanctus. Sadipscing invidunt sed consequat magna. Justo justo ea labore nisl amet eos vero lorem et dolores duo diam sit dolor et ipsum amet.

Justo rebum sea ut est et enim. Clita kasd magna aliquyam. Kasd esse invidunt sea. Clita nibh eos ipsum dolor eos dolor. At possim et eos labore ut duo aliquyam diam. Nibh erat sed eirmod. Voluptua illum tempor blandit nam elitr dolor sit sea at. Et eirmod dolor et dolores tempor et eirmod in sed nonumy aliquyam sea ut.