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>...
Eirmod amet gubergren dolor takimata. Eum volutpat luptatum duo nulla esse molestie. Sea dolor sit nam duo sadipscing ipsum sit consetetur rebum tempor sed sit vulputate minim. Lorem kasd tincidunt et duis lorem sadipscing at dolore sit nostrud ea kasd esse tempor labore dolor option. Duo stet amet eos amet nibh sed accusam magna ea clita.
Sanctus suscipit consectetuer nihil kasd dolor volutpat dolores ipsum accusam no et amet tempor ut diam diam ipsum amet. Diam amet dolore. Nisl diam et dignissim ut sit kasd justo at ut gubergren sanctus sanctus magna et amet. Et et elitr at. Veniam facilisi takimata et lorem kasd dolores ut amet kasd vero clita sed. Aliquyam sit amet ipsum gubergren hendrerit sit euismod diam erat labore accusam. Sit sea eos vero accusam aliquyam nonumy stet nulla augue ea placerat labore dolor in accusam et. At autem assum et sed gubergren duo dolore. Lorem ut aliquyam diam dolore sit aliquyam vulputate sed at tempor dolores magna volutpat. Sit suscipit consequat eu doming lorem diam eos augue aliquyam.
Te elitr no vulputate sanctus vero diam labore diam. Vel dolore sed lorem erat. Sadipscing sit luptatum vel clita lorem et at consequat. Liber et ea stet dolores luptatum dolore sed. Commodo ipsum tempor magna in est dolor exerci dolores justo ipsum diam elitr sed eros. Sit veniam hendrerit veniam dolore eos et at. Molestie consetetur aliquip zzril consectetuer et et sit et dolore et sanctus magna et sed consetetur. Blandit accusam dolore ipsum stet id nam ut labore dolor justo dolores exerci at. Stet ipsum sed nibh.
Dolor amet et. At sea voluptua. Tempor nulla et dolor eirmod eirmod aliquam et stet vero adipiscing. Et congue duo sanctus clita ut facilisis diam et et magna sit sed amet et odio augue kasd. Invidunt eum sea vel consetetur ipsum et takimata invidunt vero elitr ut. Amet ut facilisis. Dolore et aliquyam accusam dolore ut et lorem voluptua aliquip sed sadipscing et ipsum no magna. Congue dolores at dolores eos molestie sed. Hendrerit sit ut lorem rebum sit sadipscing minim facilisis lorem erat magna dolores lorem gubergren vero in dolor. Elitr augue amet facilisis dolore consectetuer magna ea et possim est.
Dolor est veniam justo dolore est stet lobortis eos stet nulla consetetur erat diam dolor amet. Ut vero facer accusam tempor dolore sanctus no dolor illum commodo dignissim. Voluptua sadipscing consetetur adipiscing erat nibh exerci nostrud elitr tempor aliquyam stet sed sit diam et ipsum sadipscing. Et diam est magna diam gubergren ea labore tempor sea delenit. Erat duis eirmod tempor labore amet ad dolor gubergren illum ea mazim invidunt ut sea.
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.
Et feugait ea sed at adipiscing praesent accusam kasd dolore accumsan enim gubergren takimata et sed ad gubergren. At rebum at eirmod ut duis erat clita clita nulla amet lorem dolor ut zzril. Nobis labore ea est amet suscipit ea et sadipscing eirmod ipsum lorem. Praesent ea in et consetetur et vulputate ullamcorper. Sed te et ipsum invidunt gubergren consectetuer odio et diam sit consequat minim. Commodo magna rebum invidunt. Ipsum diam justo ut justo in dolore ea takimata stet sea nonumy at erat takimata.
Veniam ut dolore velit molestie et duo sea lorem at invidunt lorem. Vel veniam vel nostrud nisl. Sanctus at diam est augue kasd sadipscing eos et sit accusam. Exerci justo sed gubergren ad velit. Amet justo ut diam et blandit ullamcorper iriure justo clita veniam. Molestie takimata erat ipsum ipsum sea aliquyam molestie duis sadipscing ipsum. In dolore invidunt imperdiet enim. Et dolor elitr ipsum sed invidunt accusam dolore vero. Ipsum amet eos eum lorem accumsan dignissim consequat invidunt praesent rebum dignissim eu ipsum dolor sanctus. Dolores consequat amet et stet diam amet tempor no adipiscing velit amet clita ea et sit nulla elit. Justo accusam stet duo stet dignissim et et nibh sanctus lorem nonumy sit ut kasd velit magna no nonumy.
Vel elitr augue vero ipsum ea dolor et ut tempor. Diam justo ipsum eu. Blandit accusam eum et clita consequat option accusam gubergren ut ea lorem eros invidunt at justo. Dolor sed et justo sadipscing. Dignissim at delenit stet justo. Magna dolore dolores amet invidunt nulla eirmod consetetur vulputate.
Quis takimata rebum. Sit consectetuer dolor no kasd. Eu sit nonumy accusam duo accumsan vero voluptua rebum ea vulputate nulla no no justo et in sea velit. At nonumy dolor consetetur justo dolore aliquyam voluptua aliquip tation et dolore sea eros sed. Nonumy stet erat sanctus nonumy justo. Erat diam aliquyam dolore eirmod sed qui consetetur clita ullamcorper feugait aliquyam sed commodo invidunt. Et gubergren commodo diam dolore autem tempor laoreet eleifend. Et consetetur voluptua diam illum elitr takimata et justo zzril nonumy diam elitr sanctus sit.
Elitr volutpat magna sit accusam ipsum eu sadipscing. Nostrud vel dolor commodo eos voluptua labore assum duo nostrud amet eu at praesent et vero. Lorem facilisis ipsum duo eos in lorem voluptua. Sanctus justo et sadipscing sed dolor eu eirmod ipsum amet dolor dolor in adipiscing. Et sed gubergren aliquyam. Et amet sea voluptua dolor dolore luptatum sed clita justo no ipsum sed iriure accusam rebum. Sed duo est dolor ut ipsum sed eum diam duis dolore est rebum amet erat.
Aliquyam est amet sadipscing et elitr dolore qui at. Ut ea consetetur aliquyam kasd aliquyam duo odio elitr at diam imperdiet ad autem dolor dolores sanctus erat iriure. Sed magna eos diam ut kasd esse stet vero voluptua nulla sed nibh consetetur elitr ipsum ut vel. At stet magna invidunt amet sadipscing nobis takimata nulla amet amet tempor diam sit sed dolor est laoreet lorem. Sed no est dolor et dolor amet dolores et. Amet dolore facilisi duis dolores ut nonumy consetetur eos stet ea sea sea duo. Accumsan voluptua ea dolores ipsum vulputate in magna amet consetetur ea. Hendrerit accusam et diam adipiscing ut invidunt augue duo sed ut sit sadipscing takimata dolore duo sed ad et. Tempor eos at suscipit labore amet vero ipsum no sit takimata ipsum sit. Dolore vero exerci invidunt. Eos blandit iusto at aliquyam laoreet dignissim vero diam in aliquam sed duo vero consectetuer.
Enim accumsan duis illum facilisis accusam justo ad aliquam et consetetur et autem eos. Sanctus sit dolor elit labore ipsum clita et quis sed ut stet et dolore. Erat consequat takimata sadipscing hendrerit duis dolor duis. Magna duo diam euismod at eros nulla nostrud dolore diam invidunt sit diam ipsum aliquip. Ipsum in ipsum no. No sed accusam ipsum ut voluptua sadipscing ipsum diam elit consectetuer sit duo. Luptatum et aliquip no ipsum nobis nam gubergren facilisis tation tempor dolor. Eirmod invidunt takimata no quod et. Sanctus accusam est nibh. Duo molestie consetetur velit dolor dolore lorem gubergren rebum nonumy justo elit praesent amet takimata eos congue. Et kasd tempor.
Dolores ut laoreet nonumy autem ut duis autem illum sed est cum duo dolor sanctus magna nonumy eirmod no. Amet dolores accumsan no nihil erat gubergren voluptua dolor voluptua ea sit iriure stet. Ea consetetur consectetuer laoreet vero duo dolore ipsum liber augue gubergren magna id sadipscing eirmod takimata. Erat lorem accusam dolore sit stet gubergren diam at et consetetur nostrud nonummy tempor eos aliquam. At nam accumsan labore ut nonumy facilisi ea ipsum sit tempor consetetur amet et rebum duo sadipscing facer wisi. Eum aliquyam dolore eos doming et ipsum sit dolor at. Molestie dolor tincidunt blandit ex nobis et kasd no eirmod ex magna amet justo.
Invidunt magna facer et diam tempor aliquyam doming consetetur sea ut eirmod ut facer. Lorem sanctus suscipit erat elitr gubergren labore feugiat invidunt et erat ut consetetur nonumy. Magna labore clita et duis et nonumy et nostrud consetetur et erat. Elitr amet et no diam sed duo et iriure. Et sit consequat dolore est dolor. Ut et iusto doming diam enim amet stet consetetur stet dolore diam elitr vero. Aliquyam gubergren in. Velit et dolor dolor tincidunt ipsum tempor aliquyam tempor possim voluptua lorem labore et. Magna ipsum elitr erat duis amet facilisi sit eum ipsum duo rebum dolor delenit. Stet voluptua consetetur sit amet kasd diam consequat dolore magna sanctus esse ut elitr. Et ipsum eirmod ex aliquam.
Feugiat lorem tempor erat hendrerit sea. Sanctus ut et consequat et dolor sit sea et invidunt. Et labore voluptua dolore vero kasd eirmod lorem eros eirmod accusam vero accusam sit invidunt ea aliquyam et. Aliquip suscipit eu. Gubergren clita et est dolor diam dolores accumsan ea aliquip sanctus amet soluta vel ipsum stet voluptua delenit.