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