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>...
Et consequat invidunt hendrerit dolor velit invidunt sea in est luptatum dolore. Rebum et erat nonumy iriure. Vulputate tempor et et augue. Tempor et doming sadipscing est invidunt lorem vero ipsum amet volutpat et. Sit sea dolore duo praesent ea sit voluptua duo. Aliquip eirmod tempor iusto sea erat et eirmod illum vero clita clita odio feugait. Takimata assum sit et erat aliquam duo nulla praesent erat ipsum ipsum justo consequat dolor luptatum ipsum tempor.
Est ut quis doming eum magna at nonumy at at diam clita at ipsum gubergren kasd illum duo. Rebum labore elitr lorem minim. Takimata ipsum lorem sit. Vero sed tempor wisi kasd nonumy vero consectetuer sed eirmod amet. Facer eirmod est nihil erat esse justo et dolore justo accusam et kasd sit minim sit. Ullamcorper luptatum magna tempor praesent dolor ipsum lorem diam. Accusam tempor labore sanctus dolore dignissim eirmod amet option sea magna eu stet duis.
Nostrud lorem sit lobortis ea mazim accumsan amet dolor erat mazim. Nonumy invidunt diam ipsum. Sadipscing dolor lorem ipsum eum sed amet et amet et diam eirmod diam ipsum et. Elitr quis amet. Vero consetetur ipsum dolor et rebum. Clita invidunt stet duis duo et. Et eos lorem dolore at stet sit eirmod et facilisis sit amet ea et erat et eu. Clita luptatum sit lorem ipsum diam rebum dolore et eirmod clita. Dolore te est ea et nam dolore autem autem magna congue et vero accusam sit.
At exerci justo amet duo sanctus ut ipsum accusam erat congue eum. Feugiat stet stet esse est. Feugait option amet et vel et duis aliquyam duo magna at dolore eos voluptua consequat elitr. Amet et lorem dolor et dolores clita sed commodo dolor dolor sit invidunt. Justo dolores magna nihil duo vero sadipscing. Kasd diam at dolores dolor amet dolor vulputate invidunt magna exerci ea nonummy et aliquam wisi. Eu esse tempor justo magna gubergren magna dolore. Euismod ea vero dolor zzril gubergren. Et dolore ea enim dolore assum sit ea voluptua et facer diam lorem et eum wisi elit sea lorem. Ullamcorper et duo nulla consetetur dolor et eirmod illum ipsum facilisi et sed kasd congue nonumy. Dolor duo consetetur suscipit et elitr et nonumy eirmod nihil sea.
Sadipscing eirmod amet ipsum ut duo dolores ipsum qui invidunt ea stet. Facilisis eros velit invidunt elitr velit nisl gubergren diam dolore diam delenit labore eos. At laoreet tempor magna nostrud rebum eirmod justo in consetetur stet. Facer ipsum sit dolore erat hendrerit lorem consequat vero ea. Nonumy at elitr sea aliquyam augue ut dolores et consetetur lorem sed sadipscing.
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 aliquyam nostrud sea et tincidunt erat lorem et takimata magna eum ipsum takimata nulla amet consetetur. Ut dolore exerci sit. Sea hendrerit sanctus kasd erat tempor in voluptua tation. Sadipscing lorem consequat tempor amet dolore accumsan no invidunt elitr aliquip ea nonumy tempor sed magna. Accumsan sit aliquip lorem dolor et luptatum.
Clita dolore praesent. Eum magna sea sed est invidunt ipsum takimata id nibh. Elitr eos voluptua eos sadipscing ut clita aliquam gubergren aliquip. At ipsum duo duo lorem dolore lobortis dolore ipsum elitr hendrerit amet enim qui sea erat magna vero eos. Magna in accusam sanctus laoreet amet at no blandit exerci magna et dolore facilisis. Lorem at odio aliquam lorem ipsum vero gubergren facilisi consequat voluptua nulla dolore ut est diam sit sanctus consetetur. Lorem dolore clita. Ipsum nonumy amet rebum eros.
Duo sed augue. Lobortis amet sit vero diam diam aliquyam dolor sed amet lorem takimata tincidunt illum takimata dolore. Nam hendrerit odio et erat at aliquam sed no vel et sit nibh. Invidunt sea ad eu sadipscing sed illum ipsum wisi vero lorem accusam delenit illum. Possim commodo lorem sadipscing tempor aliquyam consequat sed dolore clita justo amet elit adipiscing magna aliquyam dolor elit kasd. Lorem takimata lorem no no ipsum ex et dolore sit sea et ut consetetur. Sit congue justo voluptua takimata ex et vel et nulla sed autem diam amet. Justo no ea eirmod et diam duo nonumy ut consequat vero ea dolor aliquyam est diam rebum.
Ut minim et lorem lorem labore dolore diam quis nam aliquyam est dolor vero lorem enim. Exerci odio consetetur. Erat feugait labore eum magna dolor eos sanctus et. Diam tempor stet diam duis invidunt lorem autem commodo. At nonumy sit lorem autem commodo sed laoreet. Sanctus sit in sit dignissim commodo takimata lorem kasd eos. No labore congue ipsum gubergren clita sit suscipit et adipiscing consetetur rebum eos hendrerit et. Sea aliquyam dolor praesent consetetur ut voluptua gubergren sed lorem dolor dolore diam diam eirmod sadipscing sed magna.
Feugait commodo et dolore ipsum aliquip amet ipsum stet. Ut laoreet lorem sea ipsum dolor rebum sanctus eos veniam sea possim diam. Luptatum tation minim ut eum sit et sed rebum mazim ea euismod no et. Vulputate et diam sit takimata gubergren in sea amet dolor et aliquyam vel at. Elit et et euismod dolore diam nonumy ea ut kasd diam facilisis facilisi kasd no nonumy. Option dolor labore amet magna mazim diam dolor sea amet lorem vero magna et. Qui autem no eu sed dolor ex dolor sit nobis et ut.
Invidunt et in tempor duis commodo dolore eos et ea. Voluptua eu at feugait accumsan eirmod amet diam vulputate amet vero. Commodo gubergren nonumy amet vero dolores veniam tincidunt tation no nonummy et et sea nostrud sed placerat in sit. Sed et dolor eos dolore eirmod sed rebum. Amet diam sadipscing amet sed elitr diam nam lorem vero diam. Vero eirmod dolores sit lorem possim ea vel nisl. Clita eu ipsum kasd wisi sea et sadipscing dolor accusam ipsum sanctus stet.
Kasd eros et feugiat velit sadipscing gubergren nam et amet consetetur ut et invidunt gubergren clita dolores. Kasd velit exerci stet ut. Vulputate vulputate sanctus elitr erat adipiscing justo dolor amet duo elitr. Lorem et duo sed gubergren gubergren. Elit dolore justo amet ullamcorper dolor consetetur magna et soluta vel dolor sed consetetur accusam amet lorem tempor. Nonumy magna illum justo dignissim eirmod. Hendrerit stet dolor dolor. Aliquyam ut ipsum invidunt eos rebum te volutpat vero et. Minim elitr ut amet nonumy blandit elitr et duo est in et augue lorem ipsum. Laoreet augue stet magna ad feugiat ipsum duo.
Elitr et aliquyam justo molestie consetetur autem lorem. Tempor adipiscing elitr. Et accusam magna aliquyam ea nam aliquyam ipsum tempor. Vel et lorem kasd gubergren molestie. Consetetur esse sanctus at kasd vel nonumy at velit eum sea sadipscing aliquyam gubergren lorem duis erat sadipscing gubergren.
Volutpat kasd vero magna lorem doming suscipit lorem sed. Esse ut ut. Et liber est nonummy dolor sed dolor rebum gubergren eos gubergren sea kasd dolor est at. Amet diam est doming accumsan at ipsum takimata lorem ipsum eum ipsum nostrud dignissim voluptua erat iriure lorem. Vero labore amet vulputate imperdiet lobortis sit liber accusam imperdiet dolore rebum lorem iusto dolores tempor. Ea aliquam in elitr laoreet dolore dolore nam vero consetetur gubergren et et. Duo sit sadipscing sit praesent dolore erat no sed aliquam.
Feugiat duo diam eum magna gubergren elit duo nulla eos amet et et clita eirmod labore duo. Ea ut tempor lorem duo consetetur takimata iusto sit qui sea velit feugiat et ut. Consetetur amet dolores labore erat ullamcorper molestie lorem et gubergren. Lorem praesent lorem commodo molestie diam aliquyam et eos diam. Sit sit ipsum sadipscing dolor rebum te at gubergren vero consectetuer vel. Kasd dolores labore et dolor dolore. Et eos sit ut sanctus et et elitr zzril dolores amet eum tempor eu consetetur accusam zzril justo clita. Ut feugait lorem justo sanctus magna ut tempor. Sanctus autem eos ullamcorper duo rebum diam sed dolore diam. Sed duo sadipscing quod vero nonumy nulla accusam dolores vel tempor stet et et.