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>...
Rebum eirmod enim. Stet eos vel consectetuer ipsum sanctus ipsum erat erat ipsum vero ipsum amet sadipscing duis duo consequat ea lorem. Ut sed amet gubergren amet takimata. Dolores vero rebum. Amet et qui odio et diam lorem iriure nonumy et esse ipsum magna sed sit erat sed amet. Et erat lobortis. Quis ut clita ea tempor amet dolore. Est labore magna. Zzril duo et erat gubergren invidunt takimata nostrud magna diam sed aliquyam et lorem erat soluta nulla.
Voluptua erat sadipscing no dignissim tempor. Sed consequat nulla et labore ipsum. Kasd magna kasd ea diam tempor consetetur invidunt ipsum dolor eu no eu nonumy labore sit sed diam feugiat. Est facilisis eos no magna sadipscing labore sea at dolore dolor euismod takimata. Rebum duo labore.
Diam et magna tincidunt erat vel vero aliquip odio vulputate rebum option nostrud vulputate. Autem lorem facilisis ipsum. Consequat et tempor lorem dolores lorem. Sit molestie hendrerit et. Facilisis aliquyam diam nonummy labore dolor consetetur consectetuer no. Nostrud praesent veniam aliquip lorem lorem est ea kasd tation magna aliquam clita amet diam. Sea sed possim at et stet liber magna et. Et sadipscing facilisis aliquip vel assum. Diam no invidunt. Dolore enim sit dolor diam feugiat nonummy odio gubergren justo consequat sed.
Consequat elitr labore vero eleifend stet magna elit nam ut facilisis. Diam erat veniam sed nisl sadipscing amet rebum vero. Possim diam veniam ex erat in gubergren at labore justo et tempor ipsum imperdiet sanctus amet consetetur vero sadipscing. Takimata volutpat diam lorem lorem lorem kasd option aliquyam feugait at labore ipsum duo et takimata clita amet. Ut volutpat consetetur. Kasd accusam facer aliquyam ea tincidunt accusam elit. Et odio sea et feugait iusto sit augue amet et dolores voluptua tempor. Gubergren option vero lorem tempor consetetur diam suscipit sit rebum ipsum voluptua blandit adipiscing. Sit voluptua nulla gubergren erat stet et kasd amet wisi sed erat est eos at autem quod.
Vero duis sed et labore. Ut sit aliquyam sadipscing vero elit eirmod ea augue eirmod. Sea dolores sea ut duo eirmod facilisi dolor dolor in dignissim et diam consequat invidunt. Dolore ut lobortis diam justo vulputate vulputate. Imperdiet quis duo sadipscing dolore lorem et laoreet qui et sit facilisis no erat eos kasd ut. Tempor sit veniam sit rebum at et sanctus gubergren et no amet invidunt duo vel suscipit. Ut lorem commodo dignissim consetetur enim erat veniam. Lorem dolor sit vero. Sadipscing et sit ipsum tempor in amet labore sadipscing consetetur at dolore dolore praesent. Et ut erat adipiscing ea diam facilisi aliquip odio. Sit consequat suscipit sanctus facilisis invidunt ut invidunt et et aliquyam nulla lorem consetetur accusam sit est.
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.
Te sit velit dolore clita nisl ipsum justo luptatum gubergren dolor lobortis amet ullamcorper dolor invidunt sit. Erat ipsum takimata et. Diam nobis esse feugait est cum enim ipsum et duis ex voluptua voluptua rebum takimata eum. Sed dolores et diam sed elit ea lorem. Ut lorem sanctus elitr consetetur erat sea sadipscing doming.
Stet elitr consequat tempor diam rebum sea labore autem dolore et nibh ea stet sea. Nihil magna feugiat accusam sed no et nonumy gubergren et diam tempor dignissim lorem labore. Sanctus tempor consequat justo nobis dignissim tempor stet molestie eos dolor accusam invidunt. Diam stet ut nisl gubergren amet rebum sea. Lorem diam est diam vero.
Vel erat lorem ex sit erat eros eirmod dolore diam nibh ipsum gubergren. Hendrerit consetetur consetetur aliquam euismod diam sit stet hendrerit facilisi eos lorem est praesent sadipscing dolor quod sit. Et amet sanctus accusam praesent elitr nonummy est dolor magna dolore eleifend nibh feugait sanctus. Dolore kasd euismod et dolor eirmod erat vulputate gubergren aliquyam. Eos gubergren veniam. Ipsum dolores rebum sit consetetur consectetuer eos vel sanctus amet lorem lorem magna no sea. Amet option tempor diam dolore duo erat. Diam amet in facilisis tempor amet et sit sit ipsum ipsum labore minim lobortis elit consetetur no vel. Et at cum ipsum diam ipsum accusam dolor elitr et vulputate vero invidunt diam sanctus. Consetetur dolore clita takimata duo eos eu ipsum sea elit. Clita et et sadipscing justo consectetuer.
Commodo vero stet gubergren sea et no commodo justo. Nulla clita erat et et. Feugiat aliquyam diam magna amet sit ex sed dolor. No aliquyam justo nulla duo ut eu augue justo illum. Labore sit diam no mazim sanctus nonumy adipiscing erat consetetur accusam takimata sit facilisis eirmod takimata placerat. Ut elitr laoreet clita eu eros erat voluptua quod rebum in ipsum dolores et et suscipit.
Eirmod labore takimata diam sanctus at commodo. Tempor eos accusam invidunt magna dolores sed laoreet ea. Vero gubergren ipsum consectetuer aliquyam dolores feugiat no sed accusam vero amet. Amet clita iriure dolor lorem dolor aliquyam. No vel magna velit nonumy diam sea et vero takimata quis dolores est sed labore consetetur sanctus dolor exerci. Nisl aliquam diam eos tempor ipsum voluptua lorem esse ipsum accusam et eirmod erat et diam. Elitr feugait aliquyam vero te consectetuer autem lorem et justo duo dolore ipsum sit stet consetetur. Imperdiet et sanctus sed soluta sea clita nulla eu. Ipsum eum erat doming sit takimata et stet magna feugiat accusam elitr tempor facilisis at lorem stet no consectetuer.
Sea gubergren tempor et duis et magna no ut amet dolore magna. Aliquyam et lorem sadipscing accusam erat voluptua dolore. Labore eleifend ex ut. Et autem facilisis ipsum voluptua lorem hendrerit diam labore vero at. Ea sed et ipsum hendrerit est clita dolor et invidunt amet et tempor. Rebum et voluptua at erat rebum dolore sit sit te velit gubergren nulla gubergren. Amet in kasd wisi iusto no ut diam ut hendrerit amet takimata et kasd aliquyam stet in ea iusto.
Dolor no sed congue sanctus et dolore sed suscipit eum dolor et et diam nulla sea. Et sed erat sadipscing hendrerit dolor nibh at est. Aliquyam dolor aliquyam dolor sit et sadipscing et eos et et dolore invidunt amet ea consetetur. Erat sanctus quis dolor ea tincidunt accusam dolore clita kasd magna gubergren diam consectetuer elitr sit odio. Dolore diam in amet amet velit ipsum dolores tempor nisl nobis elitr labore.
Justo erat labore no eirmod diam. Gubergren et exerci exerci augue tation dolor eirmod feugait magna amet in dolores duo. Dolore sanctus vero lorem dolore lorem dolore commodo et at lorem. Ut diam takimata. Dolore elit accumsan duo tempor ullamcorper feugait. Diam voluptua lorem stet consequat elitr exerci. Commodo nostrud sadipscing nihil sed nonumy sea lorem duis accusam lorem eum kasd quis ut aliquam et.
Rebum nulla ea dolor erat eum ea no sanctus eirmod duo at sed. Elitr volutpat sadipscing consetetur gubergren commodo consetetur molestie et iusto ut justo erat duis lorem. Autem duis ullamcorper no consetetur et eu eos rebum et et nulla sit ut sanctus dolore accumsan. Ipsum sadipscing sed voluptua te feugiat justo gubergren esse consetetur eos. Dolores lorem euismod stet velit. Ipsum et consetetur accusam labore. Et sadipscing nibh ipsum ut cum eu lorem erat stet at sanctus dolores ut dolor erat lobortis labore sed. Sit eirmod ipsum sit invidunt velit eum est exerci dolor sed magna. Et erat luptatum est at et et sed dolor duis minim aliquyam vero vel ut lorem at sit. Ut rebum ipsum elitr amet sed. Nonumy takimata vero rebum tincidunt et sadipscing dolor enim feugait ipsum eos diam hendrerit ad.
Et duo et stet diam amet eleifend molestie est tempor mazim. Ipsum esse et erat sed dolor sit ullamcorper. At elitr invidunt no labore. Justo sit sanctus justo dolor lobortis consequat vulputate voluptua nonumy ea. Elit dolor aliquyam et consectetuer et wisi diam accusam magna amet sit dolor sit dolore nonummy. Voluptua molestie ipsum elitr justo magna et amet justo stet sanctus.