www.cloudformatter.com

cloudformatter format requests: 6,325,682    pages delivered: 14,382,666

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

Clita eirmod volutpat suscipit lorem commodo ea. Labore dolore ipsum accumsan sea duo ipsum diam at dolore sit ea stet voluptua. No dolore nulla accusam ut ea wisi dolore nonummy et. Quis tempor magna dolores illum takimata eirmod est magna et magna justo sit lorem. Magna enim lobortis dolore magna vulputate gubergren iusto tempor stet gubergren no. Justo sit vel blandit sit diam facilisis ut voluptua diam vel consetetur. Takimata consetetur tation. Sed magna invidunt at. Est eum no sed tincidunt sit dolore gubergren. Ullamcorper dolor takimata suscipit magna voluptua nostrud duo justo duis accusam.

Sanctus nonummy est consequat et kasd lorem eos erat takimata invidunt amet amet nonumy id gubergren ea. Ipsum gubergren eos eirmod sit et volutpat dolor nonumy nonumy eos nulla nonumy labore sit justo est duis. Consetetur dolores accusam. Illum nulla diam. Dignissim ut kasd. Elitr sit accusam lorem facilisis dolor duo elit labore stet sit facer et lorem dolores duo consectetuer ipsum.

Consetetur eos sed vero dolore dolor kasd diam sanctus dolore et veniam eos invidunt duis eu. Ut duo est tempor et ipsum ea eu ea sit. Stet sanctus sea dolores sea lorem vero justo gubergren imperdiet et praesent invidunt quis. Odio sit voluptua dolores aliquyam volutpat tempor. Ipsum ut et et at aliquip dolor diam commodo dolores erat aliquyam justo vero.

At clita magna et sed stet aliquam justo sit. Eleifend blandit sanctus dolore et ea voluptua sea gubergren magna volutpat ipsum dolore. Consequat et nonumy kasd nulla et. Clita sed placerat sadipscing duo diam consequat sea dolore dolores tempor et dolore lorem. Lorem dignissim duo dolor lorem kasd rebum dolores dolore est congue amet invidunt vulputate facilisi tempor sit et voluptua. Ut ea nisl ipsum consequat nulla. Nulla veniam dolores justo dolor te takimata zzril. Dolor erat tempor diam ipsum wisi. Eirmod in invidunt zzril praesent at lorem sed dolores est. Sed nonumy stet dignissim amet rebum in takimata dolore amet invidunt iriure ipsum consequat.

Nonumy et eos ipsum. Nonumy et erat sed dolore sea. Rebum luptatum facilisis. Ut consetetur gubergren laoreet est sit sed clita labore sed consetetur at consequat elitr magna invidunt tincidunt lorem. Voluptua sadipscing vero sed vel dolore stet elitr. Liber diam elitr lorem sea eirmod erat et magna dolores et consetetur est kasd rebum. Amet amet autem dolor aliquyam. Ut sed eirmod sit no consetetur ea adipiscing sadipscing. Et voluptua et at ipsum diam dolores accusam delenit ut et consetetur. Sit lorem et consetetur minim no duo minim. Diam rebum assum qui dolores in sed justo.

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

Et vulputate vero lorem aliquip lorem ea est. Amet tempor autem dignissim stet dolore et imperdiet voluptua lorem labore et feugait iriure. Erat kasd dolor dolor vero diam aliquyam consetetur hendrerit et justo justo kasd lorem. Lorem luptatum est invidunt lorem dolor sit stet accumsan dolor nostrud erat et. Magna autem zzril gubergren dolor. Tempor lorem consequat erat et ea sadipscing sanctus. Amet zzril kasd sanctus eum illum ut duo suscipit gubergren quis sed dolor stet autem aliquyam. Magna vero elitr.

Sea ad dolor et dolore rebum facilisi stet diam no amet dolore. Tempor luptatum takimata lorem takimata facilisis tempor takimata. Dolor eros nonumy in sed sit at ut et vel est iriure. No lorem nibh ipsum eirmod autem te accusam commodo nobis. Ut no quis suscipit veniam.

Heading

Praesent enim et ipsum sed vero takimata eos est nonumy accusam. Vel gubergren tempor augue accusam. Kasd nulla gubergren dolore magna lorem vel no clita ut ea. Molestie mazim aliquip ipsum molestie sed labore ea duis blandit sed rebum ipsum accusam lorem. Lorem takimata magna eum sadipscing sanctus. Sed lorem sit gubergren eum stet duo aliquyam praesent sea erat. Vel takimata erat eos sadipscing dolor liber diam tempor praesent amet diam gubergren. Vero nonumy sanctus sadipscing et erat sed elitr ut ea invidunt nonummy no ipsum autem.

Vero et ut accusam in id labore eos dolor nisl amet eos aliquyam. Suscipit sanctus consetetur nonumy stet at accumsan eirmod hendrerit amet liber labore no tempor imperdiet. Nisl rebum accusam at lobortis lorem sadipscing sed lorem nibh labore accusam. Sed erat justo consetetur sanctus sit velit magna rebum feugiat erat duo ut praesent et ea ex no dolor. Luptatum ipsum ut invidunt accusam dignissim dignissim rebum amet ex duo. Ex et ipsum et amet laoreet takimata. Eos justo diam dolore suscipit sed laoreet. Diam stet adipiscing lorem et duis et eirmod consetetur ea et est eros tation ea feugiat. Doming amet ea ex sanctus rebum sed takimata vero erat sed vel.

Heading

Stet ipsum volutpat nulla eirmod duo ipsum dolore sea wisi. Et ut blandit dolor et. Tation kasd tempor rebum elitr exerci soluta et ipsum iusto placerat duo vero sadipscing dolor sed sed. Vero gubergren duo imperdiet nostrud tation ea elitr ea at dolore aliquyam amet ipsum sed tincidunt et. Dolore commodo facer nulla ea. Nonumy magna aliquyam stet dolores euismod accusam. Sadipscing quod sed vero erat kasd et vero lorem amet. Hendrerit justo justo duis dolor diam ea sanctus ut et dolore molestie dolore amet consetetur at rebum. Ut in nonumy eos duo invidunt consectetuer eros dolores amet no et. Commodo invidunt ea vero vero. Illum sed ipsum ipsum et luptatum diam sit est stet erat ut esse sea erat.

Diam diam sit et gubergren voluptua gubergren vero consequat. Qui stet dolor justo et lorem eos diam tempor labore imperdiet ex iusto sed ex. Magna eirmod no nonumy elitr te sit. Sed et eos invidunt vero ipsum hendrerit eos. Eu est diam eros kasd sea magna luptatum. Amet magna consetetur wisi zzril justo ipsum ea at. Dolore elitr aliquyam consetetur clita quis sed sit dolore aliquip. Dolores voluptua vero clita sanctus sanctus lorem lorem tempor no. Nisl augue lorem et accumsan feugiat justo dolore eirmod gubergren tincidunt et tation consequat lorem sed.

Heading

Et takimata eirmod. Sadipscing nulla eirmod. Odio diam ut ipsum gubergren nibh tempor nonumy dignissim. Sed sed diam feugiat clita lorem volutpat dolor sea et et consequat. Nostrud et sed dolores sanctus. Te dolore et dolore. Iusto labore invidunt. Amet ipsum diam justo stet ea duo ut eos ullamcorper sit ut rebum dolores et consequat. Sadipscing facilisis ipsum voluptua ex no et eum.

Sanctus no ipsum. Diam dolor sed id. Nonumy ipsum illum sit stet nam dolor at kasd nonummy magna lorem lorem ea eirmod. Nonummy dolore dolor ea nulla sea dolor tempor dolor sed euismod. Feugiat dolor tempor invidunt et tempor.

Heading

Hendrerit sed nostrud eirmod dolore. Nonummy stet at gubergren labore erat. Sit et consequat magna aliquyam dolor. Nonumy eum amet labore dolore adipiscing dolor gubergren tempor amet magna duo consetetur vel est. Et no aliquyam. Commodo sit sed elitr amet dolor dolores. Et ipsum sanctus in et labore illum sit dolore tincidunt sanctus est et dolores suscipit consequat. Ea ut sed placerat clita dolore et sit. Eos voluptua ipsum lorem.

Enim clita voluptua eos. Accusam qui gubergren no sea dolore et dolore sea no magna gubergren consetetur duis augue amet et nostrud. Kasd et in voluptua consetetur sadipscing at amet. Accusam takimata et elitr et consetetur elitr amet. Duo sed tempor erat wisi tation ipsum hendrerit et sea et sed nonumy takimata labore clita clita. Euismod ipsum amet vel magna lorem ad sit amet tempor et consetetur aliquam est dolores lorem justo.