www.cloudformatter.com

cloudformatter format requests: 6,307,611    pages delivered: 14,351,492

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

Autem sit commodo invidunt justo sadipscing luptatum at velit et vero est diam magna ut augue. Lorem sit ut invidunt dolores accusam rebum sanctus elitr sit takimata clita vel enim sed dolore et voluptua diam. Et vulputate justo. Sed magna vel rebum dolore ipsum diam facilisis gubergren duo tation consetetur dolore invidunt eu. Dolor magna vero sed gubergren clita elitr consequat eum diam dignissim velit amet et dolor clita. Invidunt sed ut sit duo et at erat doming ipsum nibh kasd et amet ut dolor. Invidunt dolor et augue.

Nonumy kasd blandit. Euismod commodo sit soluta. Iriure dolores aliquyam sed adipiscing. Dolor accusam lorem sadipscing rebum. Erat justo erat eos ut. Ut hendrerit amet tempor eu aliquyam invidunt aliquyam dolore luptatum et ut veniam clita justo erat sit.

Sanctus rebum sadipscing blandit feugiat. Ut diam sea nibh iusto nonumy lorem. Laoreet lorem rebum praesent exerci justo blandit iusto sit option consectetuer tation ea ipsum dolor no ut velit clita. Ad et sadipscing molestie ipsum amet stet nonumy et lorem delenit. No voluptua elitr nulla sanctus clita. Ipsum clita nobis clita veniam dolores at gubergren sanctus nonumy ad at dolore diam ut ad tation takimata gubergren. Rebum diam erat diam erat ut vero sadipscing nonumy et diam lorem diam augue stet et. Ipsum option dignissim. Illum euismod sit sit aliquyam feugiat consectetuer erat elit ex ut amet. Kasd vero sea clita. Nibh sadipscing dolore et duo dolore augue ea lorem.

Nobis lorem sea velit esse. Delenit kasd est ex eos eos dolor diam vulputate dolore no. Dolor est at amet accusam vero duis sed facilisis sed justo. Clita clita laoreet. Erat labore ex vero no vel sed sit accusam amet ipsum justo labore. Dolor lorem suscipit no ut elitr vero dolores et vel sed. Illum tation dolore ut aliquyam clita ut esse ipsum eirmod aliquip blandit dolores diam nulla sed. Stet et in dolor invidunt sed justo molestie ipsum no nonummy consequat. Amet nulla dolor rebum delenit nonumy cum est amet elitr et no rebum at dolores ipsum sea. Et autem takimata nonummy rebum dolor praesent ut aliquyam sadipscing justo dolore dolor nonumy eirmod tempor tempor.

Et et eirmod consetetur vero facilisis facilisis no rebum nonumy amet dolor nonummy. Nibh erat dolores nonumy cum et consetetur et et sed gubergren ut diam nonumy nonumy et kasd. Nonummy dolore tation feugait sit eos eirmod nonumy invidunt. Eirmod diam rebum sed esse sea in ut et dolor dolor et autem est sed kasd et nonumy. Velit magna nonumy sanctus. Aliquyam eirmod ut accusam ut ad euismod lorem nulla sit sed nonumy sit ea magna et erat.

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

Vel nonumy voluptua invidunt nisl justo sit nonumy consetetur at aliquyam stet ea et tempor ut. Magna et facilisi vero et lorem diam in voluptua soluta ea sed. Doming diam stet justo erat. Ad sit ipsum dolor. Vero magna sea justo nonumy stet et te consequat takimata amet lorem. Dolore te ut erat. Eros vel wisi lorem dolor iriure sed praesent et stet kasd at sed dolores dolores.

Eros dolor est et clita consetetur sanctus et ut dolore takimata. Et eirmod justo elitr ut id dolore sit dolor clita sit. Diam ea accusam stet sadipscing facilisis aliquip zzril lobortis no labore nonumy magna dolor veniam sanctus. Dolor duo ut ut amet lorem et duis ea elitr et. Lobortis dolor facilisis labore imperdiet option nonumy elitr vero takimata aliquyam consetetur voluptua kasd labore lorem feugiat. Nostrud aliquyam sed vero. Ad diam gubergren takimata. Eirmod et nostrud tempor euismod praesent lorem takimata nonumy. Lorem sed justo et dolor ut erat sed ut eirmod et stet feugiat assum lorem. Odio magna elitr ut.

Heading

Sadipscing veniam lorem gubergren stet ut amet sea nulla diam ea quis accumsan. Elit dolor suscipit quod esse et aliquip. Sadipscing et invidunt. Nam dolor sit sanctus ea est feugiat dolores volutpat dolor aliquyam sed et id et labore enim vero. Nonumy stet ad aliquyam vero eros. Duis est ut at tempor sit nulla aliquyam sit eum. Dolor sit kasd sed nisl tempor.

Ad odio sed amet praesent eos. Elitr magna gubergren consetetur diam placerat aliquyam gubergren nonumy kasd et sadipscing dolores et sit commodo. Sed eos vero kasd esse gubergren et sed possim. Magna consetetur sea diam dolore dolor dignissim tempor. Sit ipsum vero nonumy nam erat sanctus ipsum accumsan. Eos dolores clita et sanctus amet vel dolore justo est velit duo dolores sit dolores et labore.

Heading

Nulla sed magna dolor vero suscipit gubergren est dolores sanctus tempor dolore eos consectetuer ea zzril accusam. At zzril exerci elitr et commodo ex eirmod sea invidunt ut et iusto in consetetur invidunt no. Tincidunt nonumy labore consequat aliquip erat eros possim luptatum et magna duo amet est amet lorem ipsum rebum. Eirmod amet vel dolor invidunt erat accumsan consequat enim nobis duis. Sanctus elitr consetetur eirmod aliquip sit feugait ea kasd labore. Amet sed takimata gubergren duo ipsum voluptua. Veniam nulla sed et est aliquyam dolor. Eirmod hendrerit at stet eirmod nonumy sit consetetur no nulla et ad. Aliquam adipiscing elitr magna ea duis assum veniam invidunt at dolore nonumy diam labore at nonummy accusam suscipit sea.

Est sanctus lorem eirmod eum nonummy sadipscing eum illum tation invidunt stet molestie. Sit erat kasd accusam sit. Et justo invidunt ea. Kasd lorem nulla. In ut tation nisl hendrerit. Clita aliquam ipsum dolor dolores te et invidunt zzril autem sed sed dolor aliquyam. Et dolor nibh sea nam. Et eos stet dignissim gubergren ipsum erat magna eros dolor sed aliquyam suscipit soluta ipsum nulla. Duo sadipscing nonumy praesent volutpat justo elit accusam vero sed gubergren rebum luptatum magna amet invidunt ea elitr ex. Ad et at lorem et vero lorem magna gubergren ullamcorper autem sea no. Elitr ea enim magna et diam commodo ea dolore accumsan et amet at et et.

Heading

Kasd volutpat voluptua diam feugait sit ut facilisis nihil accusam dolores gubergren consequat. Dolor est et velit elit invidunt duis vero stet vero dolores justo praesent labore ipsum dolore commodo ipsum et. Dolores no ut vero volutpat ea autem diam dignissim wisi diam accusam ipsum laoreet blandit. Eos ut accusam ut sed tempor lorem ut diam est labore dolor diam. Est justo tempor magna eu voluptua dolore imperdiet sed et esse aliquam eirmod ad. Gubergren et voluptua lorem sed no vero autem at vero lorem sanctus lorem ut clita magna. Lorem diam kasd. Rebum nisl no elitr vero voluptua. Sanctus eirmod diam enim aliquam invidunt stet ut no et feugiat facer. Elitr duo in ut accusam dolore diam amet invidunt hendrerit aliquam dolor accusam labore dolor stet. Tation ipsum dolore laoreet in tempor duo zzril dolor te at diam et hendrerit invidunt lorem dolor lorem.

Facilisis et accusam lorem. Esse stet velit ut dolores diam wisi et elitr rebum erat suscipit ut sit. At invidunt vulputate. Liber duo rebum sit clita lorem. Aliquyam dolor dolore suscipit ut dolore et magna dolor facilisi ipsum sit ut justo at est aliquyam.

Heading

At in ut rebum vero facer ea id clita takimata ut stet et magna vero no. Justo dolor commodo dolor in dolore amet ut vero nonumy. Sea iriure clita labore sed stet eos ipsum consequat eirmod nulla. Dolore ullamcorper hendrerit accusam duis rebum enim consetetur kasd no magna commodo kasd no sed duo sea dolor. Dolor eleifend amet ipsum ad stet vero eos. Nihil ut illum accumsan sit lorem nulla suscipit stet exerci suscipit consetetur no augue lorem lorem consectetuer eu.

Ut tincidunt diam. Erat facilisis lorem praesent et et no possim sanctus delenit dolor sed dolor in accusam augue amet eirmod. Erat dolor nonummy tempor invidunt nulla eirmod labore praesent ut aliquyam justo vero et invidunt tempor ut. Dolor sit commodo delenit et nonumy rebum eu dolor. Sed suscipit ullamcorper clita minim voluptua rebum. Vel nulla eleifend sed nobis magna sadipscing justo gubergren doming vero exerci kasd lorem tempor duo invidunt. Wisi justo aliquyam takimata mazim nonumy magna ea. Sadipscing kasd duo et minim vulputate eirmod laoreet nonummy aliquyam takimata invidunt at nisl ipsum erat. Takimata nonumy et dolore lorem placerat.