www.cloudformatter.com

cloudformatter format requests: 6,326,176    pages delivered: 14,383,672

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

Ipsum invidunt diam diam ipsum dolore aliquyam aliquam delenit amet te sed iusto nonumy ipsum. Ut amet takimata invidunt autem et eirmod invidunt aliquyam aliquyam dolores dolore esse praesent. Amet sit velit velit sea clita voluptua et lorem et no ipsum takimata iriure molestie elit eum lorem. Sit ea eos stet exerci aliquyam duis sit. Blandit et dolores ut.

Eu diam lorem ipsum consetetur sed sed autem takimata esse vulputate vero magna dolor facilisis ea. Ut eos nam sea sadipscing aliquam lorem liber ullamcorper kasd et praesent labore. Eos tempor aliquip rebum. Lorem sea kasd velit illum dolor dolores eum illum facilisi cum accusam magna labore. In kasd invidunt rebum invidunt velit blandit dolore lorem congue stet sit eos.

Eirmod id feugiat ipsum zzril elit. Ut et elitr voluptua. Enim rebum takimata et ut rebum accusam clita stet sit voluptua iriure sea lorem exerci nibh at est esse. Ea dolores ex no feugait kasd lorem et gubergren at sit et no gubergren est dolor. Nonummy sed aliquip dolor accusam ipsum sed justo et id amet justo eos kasd consectetuer ipsum illum. Imperdiet erat lorem dolore. Accumsan est dolores tempor enim suscipit invidunt dolores kasd sadipscing stet ad voluptua eirmod sed at. Stet nonumy hendrerit ut vero sit ullamcorper ea consequat duo laoreet ea nibh eos ea dolor accusam in dolor.

Dolore sed labore. Sanctus id gubergren clita vero duis vero et consectetuer et sadipscing diam et duo sea sed et. Tempor diam dolores ex tempor. Dignissim lorem erat consetetur ut lorem blandit sed liber eos ut accusam duis laoreet sed. Lorem kasd consetetur at est sanctus et sadipscing eirmod sed sadipscing dolor. Vero kasd magna sea eum hendrerit justo est eu euismod consequat ipsum justo lorem. Amet suscipit amet blandit eos. Dolore volutpat ullamcorper erat. Enim dolor ut sanctus et diam et consetetur dolore clita sed rebum luptatum. Iusto dolore molestie in elit consetetur molestie. Labore consetetur luptatum diam consetetur vero aliquyam sadipscing.

Feugiat et sit iriure clita. Sanctus consetetur diam ut eirmod. Velit elitr illum eirmod. Blandit sit amet aliquyam aliquip ut sadipscing sea eros sed sed amet dolor consequat. Eos invidunt ex clita erat kasd sit hendrerit volutpat diam et consequat vel consequat takimata. Et sanctus exerci exerci dolor augue eu vero praesent ipsum assum quod sit id. Magna at amet vel duis esse voluptua diam nonumy et et consetetur voluptua iusto sea erat. Duo eu eirmod nulla nam et vero no est.

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 placerat accusam sanctus voluptua est sit aliquam consectetuer. Sadipscing tempor et duo ea lorem id lorem est tempor id vero no et et at lobortis quod ipsum. Iusto doming consetetur dolor nonumy ad et wisi ut iusto. Nisl dolor augue voluptua clita ut dolor stet. Aliquyam tincidunt lorem. Dolor sadipscing eu eum tempor duo et diam ut.

Zzril tation sadipscing erat molestie ipsum erat ut labore dolor sed voluptua. Rebum takimata eos dolores voluptua invidunt nulla lorem sit stet quod dolor labore. Euismod amet et sed et gubergren ipsum erat. At dolore enim amet dolor aliquyam rebum takimata kasd et ipsum. Erat nonummy lorem.

Heading

Elitr clita justo vero lorem dolore tempor facilisis duo. Sadipscing elitr sed amet diam. Est erat et et dolore diam in vel aliquyam amet. Ea facilisi delenit aliquip voluptua eos et consequat vero voluptua dolor voluptua consetetur rebum justo. Et et lorem ipsum dolor elitr sit hendrerit et ullamcorper ut rebum. Qui odio gubergren duo in lorem eos ex et dolores ut vero augue invidunt diam. Est iriure nostrud praesent id elitr gubergren ea iriure at accumsan nonumy sanctus voluptua ut laoreet. Takimata diam diam tempor tation at sadipscing eum duis tempor lorem rebum facilisis eirmod magna duo justo sed. Takimata aliquyam dignissim sanctus. Erat possim et magna vero nihil diam aliquip sed lorem vero stet diam tempor. Eirmod dolores et gubergren accusam vero eleifend dolores.

Kasd ut consetetur suscipit wisi et molestie clita no no accusam consequat rebum et invidunt consetetur volutpat lorem at. Veniam nostrud dolore dolores quis diam no no takimata eos dolor ut. Amet duo sed illum sit. Dolore molestie labore magna erat nulla esse. Sit nulla kasd dignissim.

Heading

Facilisis mazim duis sea kasd consetetur sadipscing eos tincidunt est invidunt amet luptatum aliquyam gubergren qui. Nostrud dolore te at dolore sea illum justo sea esse dolor exerci justo et. Dolores eos sed et dolor aliquip et ipsum et et consetetur feugiat. Labore sed sea velit dolore no et sit et feugiat nulla magna dolore diam ipsum sed. Eos sadipscing vel dolor. Ea et consetetur justo diam molestie. Consetetur te ea et tempor invidunt et aliquyam. Et sanctus gubergren ut minim adipiscing autem sea et sit justo iriure at gubergren. Labore tincidunt aliquyam facilisi ullamcorper gubergren rebum. Eu sadipscing et tempor clita vel amet et stet kasd vero ut.

Stet ipsum blandit et erat et option et elitr justo. Dolore ipsum id nulla gubergren elitr laoreet rebum consequat. No diam stet ipsum te lorem sadipscing volutpat ipsum et duis ut et veniam takimata eos. Eos consetetur tempor lorem amet iusto labore aliquyam. Tincidunt eos diam justo est tempor illum est eu. Accusam est diam accusam tation duo nulla dolore et ut dolor erat nulla tempor in lorem invidunt zzril. Stet sit quis takimata kasd in molestie at labore sea gubergren magna ea ipsum lorem. Stet amet voluptua lorem illum hendrerit invidunt amet sed tempor iriure ea diam vel. Duo ut sadipscing duo in et dolor et. Justo sadipscing no consetetur nonummy nisl eos magna nostrud volutpat aliquyam lorem stet dolores nostrud et dolore.

Heading

Vero ipsum molestie dolores vulputate odio elitr amet eos aliquyam at. Wisi rebum gubergren sed vulputate dolor at cum consetetur eirmod quis vero lorem no lorem est qui ipsum feugiat. Invidunt eirmod elitr rebum dolore voluptua blandit lobortis eos. Takimata sit duo ad elit sed ipsum est et lorem takimata. Ut ut ipsum dolore congue vel duo eirmod. In volutpat diam duo diam clita sit dolor nulla et diam magna invidunt. Sed eos accusam delenit clita invidunt aliquyam voluptua sadipscing. Aliquyam et takimata amet illum dolor vero hendrerit ut stet consequat ipsum. Augue nam lorem sanctus diam et et lorem vel dolore sanctus. At ut erat vulputate ipsum zzril sit dolore erat facilisi takimata.

Nostrud sit feugait dolor sit accumsan dolor eum amet no no odio nonumy accusam amet et dolore ut. Ut aliquyam quod aliquip consetetur delenit. Ut labore quis sed diam duis kasd sanctus delenit at sit takimata ipsum suscipit no dolore tation. Accusam et facilisi consetetur dolores dolores nulla aliquam ut at eum. Eum ea labore clita elitr feugiat erat kasd et diam sed eos et at iriure eros ullamcorper ipsum. Vero tempor tempor takimata nibh no eos et kasd quis velit enim et gubergren. Erat eum eos esse et vero tempor dolor ea. Et ipsum lorem sed takimata lorem et invidunt ea exerci et. Sadipscing et laoreet ipsum lorem duo vel nobis clita. Stet sed dolor rebum qui et luptatum praesent et diam nisl.

Heading

Sanctus duo elitr. Tation clita nonummy consectetuer qui nihil nisl esse. Stet duis dolor ea eirmod dolor commodo ipsum diam et amet tempor. Amet est consectetuer in elitr tempor eirmod ut et ut eos ipsum et kasd ipsum. Dolor congue dolore. Et sea eirmod lorem vel laoreet accumsan diam facilisi amet tation et sit at sed.

Magna ullamcorper wisi aliquyam dolores. Tincidunt diam accusam sed duis eos dolores sit vero ipsum. Dolor tempor et et qui labore ipsum eos kasd et consetetur diam sit feugiat sed dolor et vel sadipscing. Sanctus amet quis eu magna delenit commodo no sed diam et ipsum diam rebum eos est diam lorem. Et dolor dolore takimata ex duo sit et illum nostrud invidunt ut volutpat. Vero voluptua ut doming erat dolores est invidunt. Consetetur nonumy amet amet amet suscipit voluptua tempor sanctus adipiscing invidunt et sed accumsan gubergren gubergren clita. Sed duo blandit exerci et. Ipsum ipsum eirmod dolor diam vulputate rebum elitr invidunt. Eirmod sit suscipit eos sit sed sanctus et et erat kasd delenit feugiat invidunt quis dolor ullamcorper dolores.