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 ...
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 pagekeep-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 pagekeep-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 pagekeep-together.within-line: set to "always" and used to keep a span
of content glued always together in a single lineThe following shows some demonstrations of these capabilities.
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>...Sea aliquyam diam erat sed nulla. Sadipscing ipsum eum et in ea zzril elitr dolores et stet ut. Laoreet dolor nonumy nonummy elitr invidunt aliquip invidunt accusam sanctus nobis takimata. Sanctus no eum et et sadipscing sed. Eum eum sed est sadipscing esse vero sit no magna gubergren nonumy vulputate eos takimata et dolor invidunt est. Illum et dolor amet elitr accumsan elitr sanctus nibh delenit ea dolor ullamcorper ea aliquyam nonumy dolor in. Illum nulla ut nulla duo ea ea diam illum ipsum sanctus. In nonumy diam imperdiet euismod elit sit feugiat wisi ea duo hendrerit consetetur. Augue luptatum voluptua consetetur duo diam consetetur consequat mazim nulla iriure nostrud erat gubergren. Feugiat nulla ipsum sea consetetur at molestie ad. Ut facer dolor amet lorem.
Ea dolor no ipsum dolor sit laoreet. Erat diam lorem. Magna sit et et invidunt takimata tempor sanctus. Dolore vel dolores aliquyam labore at. Imperdiet et et dolor nibh zzril magna et et sanctus. Nonummy dolore duo erat dolores et ipsum. Dolores exerci vel dolores eirmod clita gubergren clita et sit kasd te duo at tempor. Aliquam clita dolor est ad ut et amet aliquyam et at vero. Molestie erat amet gubergren duis eos magna voluptua. Sed nonumy et dolor dolore nam vero enim justo dolor iriure euismod facilisi sanctus justo. Consequat erat dolore ut tempor duo sanctus invidunt lorem.
Et labore et nonumy takimata feugiat dolor et stet. Aliquyam et dignissim takimata molestie duo. Erat lorem aliquyam clita at vero dolor sadipscing lorem sed nonumy gubergren nobis dolor laoreet. Est dolore no amet dolor magna dolor sed et takimata. Iusto facilisi autem sed dignissim blandit. Sea amet et nonumy nulla ullamcorper et stet sed sanctus at vero sed tation diam et ea. Et sit facilisis ut takimata consequat hendrerit blandit sit no. Et stet molestie sadipscing duo nonumy sea tempor luptatum ipsum sea diam ut.
Et adipiscing sit amet rebum erat nonummy et amet duo ut ut diam nonummy dolore. Tempor consectetuer diam. Dolor liber magna clita dolore. Et lorem dolore sit iusto sanctus takimata commodo commodo est vero dolor amet sed laoreet rebum eirmod vero. Aliquip et at dolore stet eirmod no. Congue elit consectetuer cum ut. Ipsum lorem feugiat nisl lorem eu ut sit volutpat. Diam praesent duo vulputate aliquyam sed erat duo sanctus ipsum et consetetur facilisis et congue vero nulla lorem nonummy.
Invidunt eos diam magna sadipscing amet sadipscing labore enim takimata sadipscing stet dolor est et ipsum diam at. Eleifend rebum ipsum magna iriure et dolor wisi sea aliquyam ipsum ut justo. No hendrerit nibh quis ut invidunt labore tempor sit tation. Hendrerit takimata aliquyam clita ipsum est consequat accusam takimata possim est. Sed sed duis delenit nihil ut. Veniam accusam eos odio vulputate dolor illum vulputate sanctus nibh tempor at rebum. Lorem eirmod dolor et lorem eirmod at. Ea augue kasd est justo assum ea no velit tempor ipsum vel lorem. Lorem invidunt te ipsum ea ea vel nostrud ipsum. Elitr ut odio sed consequat erat. Aliquyam stet sed takimata ullamcorper te consequat sed dolor hendrerit magna tempor ad at amet et erat.
Thus all of this content from the header through this paragraph is together on a single page.
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.
Nulla nam accusam gubergren voluptua tempor gubergren ut stet labore et erat vel sadipscing clita placerat ipsum. Erat at gubergren sed possim nam id dolor in est sit tation dolore sed eos takimata et liber voluptua. Lorem justo ea quis accusam sadipscing dolor kasd consequat duis nonumy dolor dolor zzril. Vero consectetuer delenit duo eu molestie vel aliquyam ut dolores et et elitr magna. Qui takimata ut amet in option facilisis lorem vulputate sit consetetur labore quis stet dolores dolores sed.
Et ut no lorem kasd duo vel facilisi gubergren. Amet et est molestie dolore no dolore invidunt autem eirmod nulla nonummy sit nonumy et justo sit. Labore tation amet in nulla erat nulla ex dolore diam est magna elitr sed eirmod takimata diam. Nonumy aliquyam diam diam ea adipiscing magna voluptua ea nam et justo minim nonumy ipsum commodo. Dolor sadipscing tempor magna vero rebum et lorem consetetur magna nobis diam velit.
Lorem diam duo. Consetetur erat lorem. Dolore consectetuer et dolor nulla nibh nisl et quis exerci vel ipsum congue. Diam ea et dolor sanctus feugait luptatum commodo stet voluptua. At justo et eirmod luptatum nonumy vel dolor nonumy luptatum lorem et. Dolore vulputate est ea eirmod et eirmod odio rebum velit et duo molestie ea accumsan no erat. Justo accusam soluta dignissim takimata aliquam sed dolor takimata elitr possim et magna sed sea accusam elitr amet. Sit te consetetur eirmod sit dolore praesent rebum hendrerit consetetur vulputate consequat praesent dolor molestie veniam clita. Et gubergren eu molestie sed feugiat sit et ipsum. Sed gubergren luptatum sed at diam invidunt dolore. Dolor iusto takimata vulputate feugait.
Ad nonumy tempor facilisi sed eos nonumy kasd at amet est rebum illum augue elitr stet. Sit et eu erat volutpat doming et. Dolores accusam dolores accusam euismod exerci sea rebum et rebum et aliquyam dolore nulla. Accusam justo ea no ipsum et dolor dolor no. Erat id tempor erat. Amet consetetur aliquyam sadipscing clita quis et possim amet et ipsum lorem sit autem ut soluta in consequat. Exerci nonumy praesent consequat invidunt eros ipsum ullamcorper eros stet.
Lorem ut commodo ea eum sit et et duo lorem illum ea lorem facilisis et vulputate dolore eos. At sea at ipsum ea et sadipscing sadipscing commodo vel sit ad eros. Tation eum ea ad. Esse soluta consequat. Vel suscipit sanctus sit kasd eu duo nulla sea ex facilisi dolore no sed aliquyam. Dolores assum laoreet diam blandit sit est elitr et dolor dolore hendrerit vero lorem ipsum et. Erat amet dolore aliquyam zzril gubergren rebum autem diam nulla gubergren et kasd ipsum enim labore velit. Sit diam enim volutpat sadipscing diam stet sed duo. Consetetur dolore clita duo amet sadipscing suscipit eum lorem lorem sit. Voluptua iriure sed tincidunt autem eos clita erat velit. Ullamcorper rebum ipsum amet hendrerit dolor vero.
Amet veniam tempor laoreet accusam dolore id lorem duo elitr duo vel vulputate lorem dolor. Eos elitr amet sed diam luptatum amet gubergren magna amet lorem magna lorem justo lobortis ut lorem dolore. Dolores sea et nonumy magna amet ipsum sed laoreet blandit eirmod et ea kasd amet dignissim no nulla. Gubergren ut te diam. Sit vel enim lorem dolores takimata stet amet dignissim amet at exerci ipsum ipsum soluta diam tempor takimata consetetur. Consectetuer elitr et ipsum gubergren duis iriure ea ut at rebum tincidunt.
Consetetur ipsum est. Kasd dolor diam nisl eirmod et est duo erat sanctus takimata dolor. Vel amet dolores in ipsum enim amet diam wisi duis ipsum et. Volutpat amet nulla labore gubergren et nisl amet amet sed et at sadipscing. Ipsum sed lorem. Sea aliquam dolores molestie at rebum ea invidunt. Gubergren labore sea vulputate sed. Ut ad tempor liber labore. Takimata minim diam tempor no vel duis gubergren nihil sit congue ipsum sea hendrerit eirmod elit tempor. Volutpat ea lobortis amet sadipscing ex ut ea. Tempor sea eos rebum lorem ea mazim dolor takimata diam dolore duis amet invidunt.
Autem nisl takimata dolore accusam tincidunt vero et consetetur nonumy feugiat tation aliquyam justo sea. Diam ipsum nibh dolor at labore sed assum consequat diam et soluta nonumy voluptua duo eu diam invidunt. Sit sea volutpat sed adipiscing commodo dolor duo dolore labore. Est tempor lorem aliquyam. Sit erat clita sit autem voluptua diam amet labore. Et diam duo et lorem dolore amet hendrerit clita sed vulputate clita amet ea diam duis. Est nobis adipiscing hendrerit ea gubergren sit est accusam duis ut dolor et et magna takimata eirmod amet. Sit sit labore aliquyam sed. Voluptua labore takimata nisl labore sadipscing vero rebum rebum dolore praesent dolore in takimata nulla amet.
Vero sed te in duo dolores lobortis nonummy vero. Dolores amet stet et ipsum takimata nonumy nam gubergren dolor invidunt tempor kasd labore lorem diam dolor. Facer nonumy invidunt eleifend duis suscipit liber lorem lobortis ut ipsum diam. Dolor sit diam. Ipsum nulla sit aliquam ut duo et laoreet dolor tation nonumy commodo. Amet erat ea amet sed ut eu et. Et illum eu est est lorem justo ipsum gubergren dolores iusto vel diam feugiat tincidunt invidunt eirmod et.
Rebum amet sit sanctus. Nobis accumsan voluptua lorem congue. Elitr option sed aliquyam clita dolor augue illum praesent accusam amet diam et hendrerit. Mazim justo exerci rebum ipsum dolore ut diam at et et at stet lorem nihil euismod lorem qui option. Invidunt duo autem at labore no et rebum lorem justo velit sed ea. Gubergren nonumy amet vel autem accusam. Nulla dolor no minim diam amet vero lorem sed sed suscipit et clita nonumy at odio iriure aliquyam. Iriure accusam tempor nonumy nisl aliquyam kasd.