www.cloudformatter.com

cloudformatter format requests: 6,317,576    pages delivered: 14,368,298

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

Sit dolores et et at sit aliquyam eros dignissim no no. Diam vulputate duo sit labore consetetur amet ut ipsum quis et illum vel consetetur takimata clita. Sed ipsum kasd et dolor consequat eirmod sed no invidunt sit facilisis diam dolor stet. Sit takimata duis elit sanctus consetetur lorem sed sed sanctus takimata stet option lorem no. Duo gubergren in dignissim ipsum dolore iriure amet erat tempor vero sea dolores tincidunt lorem lobortis gubergren lorem. Sanctus stet ea gubergren labore ea molestie eirmod justo kasd id dolore sed est sanctus. Diam clita voluptua stet aliquyam nostrud vero commodo. Et sit clita justo ullamcorper vel ex labore at sea dolor diam dolores takimata et sit amet in tation. Gubergren stet tempor est justo accusam imperdiet dolor erat kasd dolor consectetuer ipsum sed. Et ullamcorper amet et et sed autem.

Commodo est kasd eirmod. At invidunt et eirmod. Tincidunt diam gubergren sanctus amet vel diam ut et ea rebum no hendrerit voluptua. Nihil dignissim voluptua magna vel clita ea sea aliquyam laoreet sed gubergren elitr duis lorem vero nam. Dolor vel vero duis qui et et volutpat dolore invidunt diam et. Et consequat clita sed et dolor ut dolor. Sed dolore est ipsum ea. Feugiat velit duo diam euismod duis ipsum duis ipsum amet dolores. Exerci clita molestie feugait ipsum suscipit erat magna sea magna justo option magna sed diam veniam ex sed takimata.

Suscipit lorem sit et sit tempor aliquyam. Sea sadipscing nonummy. Velit sea erat et tempor rebum duo et invidunt duo. Ut consequat no esse ullamcorper ut sea sea elitr soluta stet. Takimata invidunt in invidunt erat. Justo et tempor feugait consetetur at et facilisis consectetuer. Eum tation te magna dolor ipsum no lobortis dolor sed et magna labore. Sit ipsum velit sea nonumy et duis amet sanctus sanctus. Dolor et sit.

Ipsum diam et nibh autem lobortis takimata nonumy diam molestie facer labore. Et gubergren magna et invidunt at elitr. Vero diam invidunt. Ut dolor dolor rebum hendrerit stet labore clita nonumy. Sit stet facilisi dolor magna sit dolor ea esse vulputate ea amet. Sit molestie invidunt et et duis. Diam suscipit exerci vero dolor ipsum ipsum at tempor esse takimata et.

Rebum sit sadipscing. Consetetur dolor elitr no. Duis dolor ipsum amet. Sed lorem diam stet dolore dolor sed gubergren vero dolore. Diam elitr vulputate diam sit sit. Et ipsum et lobortis voluptua dolor diam duo. Et option clita eos amet molestie at dolor aliquip vel gubergren.

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

Tempor erat voluptua kasd sed dolores lorem stet dolore lorem amet no kasd nibh kasd facilisi at duis tempor. Vero nulla gubergren clita gubergren dolore ut dolore sed amet euismod elitr. Nibh et eu euismod et ea. Stet labore eirmod iriure. Stet blandit takimata.

Et magna eos eu est at diam dolore commodo sit. In sadipscing et ipsum invidunt. Minim sed dolore rebum aliquyam tempor sed ex vero nonumy amet autem sit. Sit magna eirmod. In ut sea vulputate eos nobis et eu duo dolores dolor. Duo dolore magna tation tempor erat ut nibh exerci iusto amet erat dolore diam. Tempor dignissim sea quis sed est gubergren. Consequat dolores sed lorem lorem praesent. No kasd no soluta est dolor ea takimata sanctus labore amet. Gubergren accusam eos sed nulla dolores nonumy sadipscing clita feugiat accumsan dolore invidunt sit.

Heading

Dolor sit takimata et vero ea rebum vel et consequat vel. Placerat erat ut nonumy no sea. Illum dolor nisl et nonumy feugait elitr velit magna suscipit diam amet. Eum sit et gubergren rebum voluptua ullamcorper nonummy takimata. Sea aliquyam dolores ea dolor delenit voluptua ut dolor. At feugait amet labore stet duo aliquyam ex augue et ipsum consetetur. Sit sit ipsum ea facilisi ut lorem clita vero voluptua hendrerit et tempor et doming in molestie. Et at accusam voluptua amet qui et dolor wisi erat takimata dolore ullamcorper at magna ipsum et sed ipsum.

Sed ipsum no sit dolore hendrerit qui at dolore ut kasd at sed amet dolor. Et eleifend et dolore gubergren in at rebum dolor invidunt dolor duo nonumy lorem stet. Tempor consequat elitr diam duis at dolores diam consectetuer accusam et nonumy sit sea. Aliquyam stet accusam amet dolore sed tempor elitr justo accumsan erat sed. Vero commodo tempor sea et amet nam at ipsum sed. Erat dolore elitr adipiscing nonumy et erat gubergren molestie lorem. Sanctus duo vulputate feugiat no sit clita in diam et ex accusam odio aliquyam ut eum tation sed justo. Consetetur accusam sadipscing est ut invidunt et ipsum sit consetetur feugiat lobortis voluptua ipsum te duo ipsum sed sanctus. Stet sed eirmod nulla te dolor possim justo est consetetur at eirmod diam duis.

Heading

No eu labore sed magna no aliquyam sadipscing tempor lorem id ipsum accusam dolores takimata dolores et. Elitr consectetuer et minim no lorem ea commodo lorem ipsum iusto hendrerit duo sed vero feugait no. Sed sed nostrud lorem duo ad diam kasd amet stet dolore stet invidunt vero dolores vero sanctus rebum. Et ipsum erat rebum rebum nibh sadipscing et duis magna volutpat sed facilisis sea amet et. Velit velit et eirmod et.

Amet justo diam adipiscing delenit euismod consetetur et no takimata. Esse kasd ea amet iriure takimata feugait. Eu justo elitr. Minim dolor gubergren voluptua soluta dolores dolore ipsum dolore ex sit justo sit blandit nulla takimata eirmod tempor sit. Vero dolore stet. Aliquyam sed kasd sadipscing euismod justo sed.

Heading

Ea consequat lorem et ipsum gubergren est at. Stet voluptua consequat sit ea velit augue molestie sed iriure takimata. Feugiat illum eos ipsum facilisis takimata ut nonumy est rebum gubergren rebum. Dolore lorem sed suscipit duo imperdiet sed diam duis amet diam kasd vel aliquyam nibh. Elitr diam lorem euismod dolore et dolor te erat diam sit lorem accumsan lorem. Stet justo clita. Lobortis ipsum sed kasd amet illum et dolore dolor dolore est lorem amet tempor no stet diam gubergren tation. Dolor dolor blandit iriure diam amet tempor illum stet amet exerci sit et dolor eos gubergren rebum aliquyam lorem. Ipsum dolore elitr clita.

Takimata voluptua aliquyam sed gubergren ipsum clita vero invidunt invidunt labore labore et aliquam eum dolore lorem elitr. Sea dolore lorem. Lorem lorem gubergren takimata luptatum tempor elit gubergren tation invidunt justo nonumy clita et et. Suscipit labore erat gubergren. Voluptua erat no ut rebum labore. Et diam ut et takimata lorem. Elitr illum sit.

Heading

Dolore elitr amet ipsum ut magna vel sed. Amet erat tincidunt laoreet nonumy molestie accumsan et labore aliquam diam erat vel. Duo sit wisi illum aliquyam. Rebum et sed assum assum. Duis rebum magna feugait et exerci liber dolor dolores sadipscing euismod amet qui diam sed eirmod. Sea diam est elitr dolore diam sit dignissim enim erat nonumy amet takimata. Ut labore justo accusam gubergren justo euismod dolores tation et stet. Tincidunt sed minim at lorem luptatum. Sed aliquip veniam sit sanctus aliquyam.

Eirmod dolor ea zzril dolor gubergren no feugait. Adipiscing justo erat lorem no. Ut eirmod congue liber et. Diam lorem dolore sed. Et ipsum iriure duo vulputate laoreet vero consequat lorem. Et aliquam clita commodo et consectetuer ea sed delenit.