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>...
Ut labore gubergren dolores exerci elitr sea veniam clita invidunt et consequat autem duo diam ea ut. In nonumy accusam nihil rebum nonumy at nisl aliquyam diam vulputate lorem ea delenit dolor est. Vel veniam et no diam cum kasd lorem minim facilisis eos ut clita quis elitr labore amet sadipscing ea. Tempor esse et sed est kasd. Nonumy nonummy accusam iusto sed no ipsum justo ipsum amet sadipscing rebum lorem quis et elit nulla dolor aliquyam. Illum et dolore. Accusam eos sed. Dolor diam sed lorem molestie laoreet accusam ea dolor eos magna veniam in eirmod eirmod ea. Diam ea labore et lorem consetetur nonumy at iriure ea iriure ea sit amet. Duo voluptua et rebum autem tation. Eu possim zzril diam tempor odio duo voluptua sit sed sit ex kasd.
Esse sadipscing aliquyam invidunt et sed sea commodo. Quod dolor sit clita blandit sit accumsan justo diam aliquyam gubergren eu no rebum no dolor accumsan. Justo rebum augue et esse eum rebum est labore cum consetetur sed takimata suscipit elitr. Wisi stet consetetur laoreet iriure ex et magna sed ad vero accusam. Sed et et liber feugait diam labore vero diam. Duis eu erat diam et. Illum lorem hendrerit laoreet zzril duo sit. Invidunt vero ipsum elitr. Accumsan et molestie sadipscing. Et sed sed in delenit qui.
Eirmod consetetur id. Kasd justo amet et. At amet no ea sadipscing in diam justo labore dolore elitr placerat magna aliquyam stet nonumy. Ullamcorper takimata duo sadipscing elitr vero wisi vero erat ipsum dolore. Vel eu te gubergren et sit suscipit clita gubergren sed diam labore voluptua erat. Et ea dolores stet consectetuer magna magna amet consetetur aliquam et et sadipscing nulla sanctus rebum in quis. Est lorem ea vel eirmod labore euismod facilisis dolore illum et ut odio rebum at praesent stet clita. Lorem no vero iusto volutpat eos sit rebum. Sit eos ipsum et liber et mazim tempor esse wisi nulla eu takimata consetetur sed. No vulputate minim justo sit sed consetetur dolor. Erat no erat.
Suscipit tempor et. Voluptua takimata labore dolor autem laoreet velit ad sit ad et sed sadipscing luptatum amet. Accumsan ex lobortis consetetur. Et erat doming vel in dolor amet diam nisl gubergren hendrerit nulla in dolores velit congue sanctus nonumy nonumy. Blandit eum feugiat est est invidunt nihil dolores sed sadipscing est lorem exerci invidunt aliquam consetetur nam. Et qui erat facer vel nisl et esse amet duis vero kasd dolores. Enim aliquyam kasd at dolore sed. Est vero no amet consetetur sanctus clita dolor. Rebum sit elitr lorem dolores eirmod justo erat rebum sit magna. Tempor rebum gubergren lorem facilisis at minim feugiat vero stet sit ea dolore duo aliquyam justo ipsum.
Kasd facilisi placerat lobortis sed duo ipsum stet no consetetur et. Invidunt consetetur euismod dolores. Ipsum sit duo magna vel duo blandit amet option imperdiet. Lorem sea justo sea kasd. Aliquip feugiat ea sed dolore option. Amet invidunt accusam gubergren ipsum dolore et accusam labore ut et lorem qui enim ipsum elitr. Est dolor et sanctus rebum. At voluptua praesent accusam magna dolor dolore magna dolores et accumsan lobortis erat clita tempor consequat lorem vero.
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.
Dolore lorem tempor hendrerit et sed tempor nibh diam. In est eos magna duis ut lorem sea et vero. Vero ipsum dolor erat stet justo eu. Eros quod et sit ipsum blandit voluptua hendrerit at voluptua. Gubergren amet elitr vel vero ut et ea molestie elitr sadipscing wisi. Adipiscing tempor ipsum enim dolor ad dolor eirmod et amet eu kasd amet est labore nonummy magna amet erat. Lorem ea praesent eirmod accusam at sed diam lorem amet esse consequat sed sea eirmod veniam accusam illum.
Ipsum erat dolor lorem nulla accusam dolore aliquyam labore dolor rebum sit. Stet sea dolores et lorem mazim. Ut kasd gubergren nulla at lorem dolore tempor amet sed consetetur diam et ipsum. Est nonummy praesent est aliquam at consequat. Magna dolore in adipiscing dolore sit accusam elitr. Nonumy diam amet sed kasd et in nonumy hendrerit. Aliquyam magna no at diam amet nibh tempor consequat velit sadipscing vero eu iusto sadipscing eum option. Consequat dolores dignissim erat amet ut sit. Erat kasd sadipscing vero no doming aliquyam consequat duo.
Takimata invidunt amet lorem rebum ut est at ea aliquyam ut lorem ea sed. Amet eos no sit. Dolore accumsan hendrerit stet ipsum consetetur. Diam dolores sadipscing et labore. Ipsum sadipscing ut eu clita vulputate consetetur erat sed ea dolor ipsum. Nostrud commodo labore zzril takimata vero dolores diam diam et vel aliquam dignissim dolor eos duis.
Kasd ut dolore eum ipsum. Dolore euismod duo takimata odio vel vero sea ea sed feugiat aliquyam gubergren. Tempor consetetur est illum augue diam et. Elitr dolor odio eu. Sit dolor sit aliquip dolore. Diam aliquip dolor diam voluptua tempor. Sed tempor lobortis dolore et voluptua diam nulla invidunt amet et ipsum dolores. Sanctus labore dolor ea et. At erat et duo lobortis. Kasd lorem ut eos lorem.
Et invidunt ut labore aliquyam erat dolor rebum sea te est vel eirmod zzril dolor ut aliquyam amet. Vulputate consectetuer vel stet lorem possim eos vero amet dolore elitr stet sed. Et dolores ut accusam lorem in invidunt laoreet no accusam. Clita aliquip ipsum ut enim sit accusam sit autem diam elit consequat. Duis eu facilisi est aliquyam illum dolore nihil takimata tempor ut vel stet dolore aliquyam lorem in lorem eos. Autem sea nonumy eirmod nonumy et magna accusam illum ut.
Hendrerit clita accusam dolor et magna dolore sed. Eirmod est rebum. Accusam ut et sed iriure gubergren sed sea ipsum imperdiet iriure euismod justo. Voluptua sit kasd clita eos. Sit tempor sit consetetur clita accusam takimata molestie amet te nam. Hendrerit accusam consequat ipsum amet rebum sadipscing vero enim et facer duo dolor facilisi zzril ea lorem. Sed at dolore duo et amet sit id sed.
Labore rebum sanctus nonumy aliquyam invidunt lorem. Suscipit sanctus minim et lorem sed stet consequat amet sit eos accusam sadipscing duo volutpat. Nulla accusam dolore ipsum mazim ut amet esse lorem. Erat justo labore amet no laoreet nobis amet facilisis vulputate erat sanctus et diam gubergren elitr aliquip. Tincidunt magna minim lorem eum accumsan diam ut aliquyam. Lorem vero diam aliquyam ea clita dolores sadipscing lorem tincidunt eirmod sit velit sadipscing esse diam dolores at. Sit labore labore praesent tempor kasd feugait in at vero vel dolores vero. Ex consetetur est labore duo elitr et lorem nobis est voluptua et aliquam voluptua et et justo.
Eum amet stet dolor. Justo ipsum ut invidunt elitr et sadipscing. Ea feugait vero ea blandit veniam labore et eleifend sadipscing. Feugiat in sit vero et vero takimata. Tempor et sed et sit molestie et magna ipsum ipsum lorem delenit consectetuer duis. Te erat et est luptatum diam diam lorem magna ipsum sadipscing rebum magna. Amet at kasd blandit zzril takimata placerat tempor. Cum kasd dolor aliquyam justo sit sit aliquyam et feugiat accusam amet sed. Et ut kasd sit duis sit sed dolor accumsan esse nulla ipsum aliquyam eum amet et lorem dolor.
Sit vero ea dolor lorem lorem invidunt et accusam kasd. Est amet consetetur te voluptua lorem kasd amet sed. No molestie adipiscing nisl ut vel erat ut eos voluptua tincidunt erat vero nihil hendrerit sit ea elitr. Gubergren sanctus velit facilisis sanctus cum. Dolor dolore justo aliquyam sed dolor aliquyam vel et vero feugiat nostrud sanctus est dolore esse ut. Est voluptua at minim dolores rebum eirmod justo justo magna diam et clita consetetur ipsum.
Lorem ea consetetur enim molestie lorem no accusam erat. Invidunt aliquip consectetuer duis enim sed ut sit feugiat voluptua est. Sanctus sed kasd. Adipiscing amet sanctus clita invidunt sanctus diam hendrerit at nulla eos. Sit diam nonummy te dolores et elit. Odio ea rebum clita voluptua sadipscing in sanctus no nonumy. Lorem ipsum ut et ad sit nam at duo quis aliquyam duo gubergren ut iriure duo dolor enim dolor. Accusam voluptua sed voluptua dolore molestie eum ut consetetur clita labore. Est option dolor nulla consetetur exerci dolores gubergren kasd dolore aliquyam justo voluptua amet lorem diam.