www.cloudformatter.com

cloudformatter format requests: 6,325,427    pages delivered: 14,382,011

Pass-Through XSL FO Styling

xportability LLC

Pass-Through XSL FO Styling

http://www.cloudformatter.com

Note:

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 ...

Keeps of Various Kinds

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 page
  • keep-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 page
  • keep-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 page
  • keep-together.within-line: set to "always" and used to keep a span of content glued always together in a single line

The following shows some demonstrations of these capabilities.

Keeping Together Within a Page

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>...

Dolor invidunt stet duo magna dolore ea nulla voluptua dolore. Et amet amet elitr iriure iriure enim consetetur enim dolores. Et clita rebum diam aliquyam. Labore dolore et vero diam ipsum consetetur. Erat nam at amet clita et at aliquyam kasd.

Diam luptatum amet. Rebum commodo amet et gubergren laoreet exerci lorem. Sit nonumy sadipscing consetetur nostrud ut stet. Duo sed eleifend eos kasd sadipscing accusam ut no et consectetuer diam gubergren sed. Consetetur sed takimata elitr et diam labore est dolor soluta eleifend dolore accumsan takimata aliquam dolor ipsum erat ad. Accusam minim volutpat. Exerci ut rebum sit feugait eos eu zzril vel diam ea. Ipsum justo magna amet labore et kasd velit gubergren amet ipsum clita nulla amet kasd sea.

Diam luptatum diam soluta dolore nonummy justo et rebum magna et labore qui feugiat ut ipsum clita labore. Volutpat eirmod zzril consequat sed vero augue. Dignissim kasd ea euismod est lorem sed clita et nisl amet amet. Lorem amet consetetur aliquyam wisi. Consetetur molestie consequat nonumy voluptua eos. Sed aliquyam consetetur amet consequat sed lorem sit sit lorem. Vero illum magna sed amet tempor nonummy justo gubergren diam aliquyam eirmod sanctus volutpat consetetur sit. Sed lorem et nonumy sadipscing at sit amet diam duo takimata gubergren consectetuer ipsum ipsum.

Accumsan labore consetetur ipsum diam nulla mazim dolore et ea gubergren sed tempor ipsum sanctus nonumy labore gubergren. Erat diam dolor vero aliquip. Et sadipscing dolore gubergren illum vero sed. Sanctus sit kasd takimata sit dolor sed. Et sed sea ut at nonumy ut blandit et. Euismod lorem te dolores nulla consetetur takimata diam est. Dolores ipsum kasd diam dolore dolore dolor ipsum sit et labore sed. Et vero justo commodo ipsum illum amet sea takimata at accusam rebum. Ut consetetur consequat amet eu dolor. Sea eum ut.

Nisl quis ad nobis takimata invidunt facilisis accusam consectetuer. Diam tation eros sanctus sadipscing. At kasd takimata kasd rebum dolor sit. Praesent amet sit clita consetetur ut at vero vero ipsum amet accusam consequat euismod. Accusam voluptua sadipscing erat consetetur et erat.

Thus all of this content from the header through this paragraph is together on a single page.

Keep Heading with Para and Table

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.

Heading

Congue stet nobis labore sed vel sit. Sit erat amet stet ut dolore diam stet luptatum feugiat consequat et diam. Consetetur amet erat. Duo accusam eos duo magna. Ipsum no stet et accusam diam lorem justo velit. Ipsum et laoreet odio invidunt diam et ea minim tation quis qui suscipit. Consetetur praesent est voluptua dolores rebum nulla amet dolor. Kasd dolor et nonumy sed te et kasd tempor et sit vulputate gubergren elitr sit. Aliquyam sea magna facilisi no gubergren lorem.

Nonumy labore vero sanctus eos diam velit. Stet dolore gubergren consequat imperdiet et sit et ut luptatum eu gubergren. Mazim eu et nonumy voluptua justo consetetur invidunt diam. Lorem dolores nostrud ut voluptua no nonumy. Magna iriure et nulla feugiat gubergren diam in gubergren esse sit at consectetuer accusam amet elitr diam dignissim. Et sit hendrerit aliquyam amet diam et qui justo tempor velit id. Nostrud ut consequat zzril sanctus diam dolor amet clita dolores dolor nisl eos kasd diam ut voluptua. Justo sanctus eros lorem duo veniam lorem et esse vel vulputate laoreet lorem. Sed clita stet labore magna aliquyam dignissim et blandit duo. Congue diam nulla sea lorem takimata ipsum rebum dolor molestie ipsum diam et duo diam dolores diam eos eos.

Heading

Exerci hendrerit feugiat iusto lorem sadipscing dolore elitr eum dolor et quod. Esse vero diam esse eos lorem labore minim. Consetetur no aliquyam sed et amet erat ipsum diam aliquyam mazim vel tempor nibh magna magna dolores rebum in. Elitr et luptatum sit stet nonummy et vel commodo et ad sanctus elitr ullamcorper congue et nulla elitr. Stet stet eos odio. Sit labore luptatum. Te amet eos eros veniam diam no clita elitr labore assum.

Ipsum diam stet nihil invidunt feugait sit magna kasd. No est feugiat. Dolor amet vulputate amet. Erat accusam amet soluta iriure sed laoreet magna zzril ipsum diam suscipit dolor iusto augue. Vel takimata dolor ea sea in dolore. Duo ipsum et invidunt dolore et adipiscing tempor eirmod. Elitr sit ex erat tempor tation sed eos adipiscing duis labore elitr diam et. Et sadipscing in sadipscing magna. Nostrud diam sit esse. Molestie hendrerit sed sit dolor nonumy et eirmod commodo duo at tation velit.

Heading

Dolor takimata justo zzril gubergren sea sanctus est no vero magna sadipscing sea est eu. Nisl exerci lorem et diam et sit eros consetetur accusam sit duo et elitr aliquip ipsum diam gubergren. Nobis est et laoreet vero feugiat ut. Veniam velit amet rebum et feugiat. Velit amet amet et magna justo gubergren sadipscing et eirmod sanctus eirmod nonumy eirmod.

Dolore magna ut et ut labore invidunt commodo vero est sanctus lobortis et. Eros duo tempor est. Vero lorem ea delenit feugait in erat duis dolor labore id erat. Eos elitr aliquyam magna et eleifend nibh nam sea stet. Sed diam vero accusam accusam et labore. Ut dolor augue duo diam. Dolore mazim in dolor ut no. Te duis dolore rebum at te dolore. Imperdiet stet ea clita laoreet aliquyam stet dolores sed.

Heading

Sit feugait consetetur et diam takimata lorem ea sadipscing sea labore est. Takimata et option dolor sadipscing sea sea qui. Magna vero eirmod vel laoreet dolores duis. Voluptua labore lobortis. Duo est dolores erat ipsum sanctus euismod. Ipsum eum exerci feugait tempor est hendrerit velit et.

Aliquip et tempor minim tempor dolore aliquyam lorem dolore consequat eos consequat erat wisi consetetur lobortis erat. Duo diam sit luptatum nonumy at soluta facilisis erat est eu sit iusto lorem ipsum. Sanctus no dolor quis ea dolor eos magna eum sadipscing aliquyam sit consetetur sed dolore et. Quis dolor labore ipsum ut aliquyam eum no euismod dolor quod aliquam. Aliquyam erat magna et no ut quis lorem amet. Amet duis justo sit id. Velit sit et dolore ut magna nulla justo invidunt est. Ut eleifend suscipit. Ipsum ipsum elitr rebum magna illum no ipsum dolor vulputate eos kasd takimata. Duo ea et invidunt et nonumy sit dignissim nonumy. Enim voluptua stet dolore est sanctus voluptua tempor.

Heading

Dolor et diam et stet et vero ipsum dolor elitr clita. Dolores luptatum duo accusam sit ea. Qui magna diam no elitr rebum liber odio diam autem elitr wisi invidunt dolor eum ea. Eirmod lorem eos amet dolore possim voluptua sit facilisi stet. Et rebum autem kasd kasd no diam nonumy at takimata ex in eros. Ea et invidunt duis at justo volutpat sit dolores dolor sit elitr kasd. Ut amet delenit illum nobis sed et autem lorem dolore tempor sed kasd sanctus in id ipsum. Ea dolore veniam sanctus nulla blandit dolore consetetur lorem erat. Ea rebum justo dolor consectetuer.

Tempor labore invidunt ipsum sadipscing dolor labore est elitr ipsum hendrerit nulla kasd vulputate ipsum sit. Nulla eum sed sea aliquyam accusam tation. Dolor sit soluta et amet magna eum invidunt nobis dolor duo. Dolores nonumy minim sanctus lorem ut dolores et voluptua. Et et ipsum gubergren sit sadipscing eros dolor stet consectetuer dolor sadipscing sit ut magna accusam. Dolores amet minim at tation option diam euismod in aliquyam et sanctus et invidunt eirmod diam augue. Invidunt justo laoreet stet sit nostrud ex est.