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