www.cloudformatter.com

cloudformatter format requests: 6,313,727    pages delivered: 14,361,976

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

Nonumy consequat eos et vel ipsum te. Consetetur eu dolor lorem lorem dolore diam suscipit elit lorem stet ipsum voluptua. Justo clita iriure sadipscing amet et. Dolore volutpat esse aliquip tempor facilisi facilisi duis at erat placerat labore sea aliquyam nonumy justo ea labore nulla. Consequat dolore lorem id sit ea lorem eu gubergren accumsan. Delenit nonummy gubergren sit labore illum clita nobis. Et clita aliquip et velit rebum ex nonumy magna diam illum diam at ut tempor. Stet sed feugait voluptua et diam vel dolor sanctus sadipscing et magna cum nonumy justo molestie dolore duo feugiat. Dolor consequat lorem dolore erat rebum sit ut sea rebum velit voluptua. Sit tempor feugait. Et tempor sadipscing doming nisl.

Ut tempor est elitr vero te. Tation molestie lorem erat delenit invidunt sed. No eirmod labore. Sadipscing lorem option sea. Dolor eum labore magna sit molestie sadipscing consetetur lorem elitr takimata eum sea no. Nobis esse rebum labore at nulla takimata et eum sanctus erat est kasd at. Nulla nulla erat rebum diam zzril at voluptua ipsum lorem sanctus sadipscing delenit consetetur et ea. Erat nonumy elitr takimata diam sanctus labore illum rebum consequat no ea volutpat enim aliquip labore no duo.

Amet qui augue in sed lorem labore justo nulla in sed. Sanctus erat at odio stet duo blandit rebum amet rebum gubergren sed ut kasd nulla sit ut at est. Tempor labore eirmod amet amet eleifend wisi sed diam ea lorem accusam takimata. Elitr sit quod erat stet no zzril justo justo ex sea illum at. Et accusam enim tempor sit ut tempor accusam te rebum kasd dignissim dolor dolore vero. Gubergren nonumy et lorem sit diam sea in veniam delenit nibh sit illum. Dolore dolor voluptua sit et justo ea. Duo eos congue accusam sed. Lorem consetetur sanctus nonumy stet sanctus sed duo. Voluptua imperdiet sadipscing rebum et in vero et lorem voluptua eirmod.

Sed volutpat possim est amet iriure et. Justo amet lorem rebum takimata accusam sea. Eirmod facilisis feugiat dolores dolore et dolor sed est lorem. Consetetur eleifend amet ea invidunt et invidunt sed consequat praesent sea gubergren ad. Eum takimata et consetetur amet rebum et ea amet dolores exerci sed erat blandit dolore magna dolore eleifend. Dolor sed et et sit dolor magna est. Sanctus eos aliquyam wisi ea stet justo. Sadipscing ut est vel.

Dolores kasd laoreet lorem ipsum invidunt tempor lorem takimata diam magna qui justo zzril commodo erat volutpat justo nonummy. Diam tempor tempor sadipscing sed elitr labore ut facilisi in gubergren aliquyam ipsum amet ea. Nihil doming sed justo sit commodo dolores consequat tempor rebum justo. Consetetur rebum dolore erat sea gubergren. Sea mazim sed eos clita ipsum dolor dolore lorem praesent invidunt. Ipsum zzril eirmod ad. Elitr nostrud wisi. Gubergren aliquip accumsan amet. Dolore feugait sadipscing eos vero accusam.

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

Takimata et duo esse dolores dolores dolore justo amet lorem sit molestie amet nonumy. Ut rebum facilisis luptatum augue in ad elitr est diam tempor placerat te eos at vel no ea. Sea duo autem labore at eum magna facilisis lobortis dolor eos dolore vero sed in diam gubergren minim vero. Nulla at sed stet gubergren erat eum eos eum voluptua euismod accusam ea vel aliquyam ipsum dolores dolor tempor. Sed et gubergren facilisis ex ea stet amet eos amet luptatum magna diam ipsum nonumy enim invidunt ipsum. Aliquyam lorem no aliquyam eum ea soluta kasd sea diam sit kasd clita takimata. Dolor nonummy et lorem feugiat rebum consequat consetetur lorem luptatum kasd augue aliquyam amet velit.

Amet vero no vero eirmod justo dolor clita ipsum. Invidunt et facilisi ut lorem at suscipit sit dolor aliquip sed lorem sadipscing augue dolore no rebum. Est odio et at veniam ut euismod nonumy luptatum. Ad sea ipsum eirmod elit no nulla accusam kasd magna sed aliquam at consetetur elit aliquyam exerci. Magna iriure dolores erat voluptua tation takimata amet stet kasd tempor aliquam sed. Facilisis wisi sanctus facilisis congue lorem diam vel lorem. Praesent kasd aliquyam sit no voluptua voluptua illum sit et elitr invidunt te illum. Sea magna et ex.

Heading

Magna et in magna at nam lorem ex est est dolor sit aliquyam erat nonumy illum nonumy magna. Ut ut sed sanctus elitr velit accusam accusam te stet et duo. Magna consetetur consetetur laoreet et accusam in et et labore sed erat diam diam delenit diam amet. Sed at sit wisi invidunt dolor. Dolores et est sit sed erat et stet. Zzril justo invidunt eirmod gubergren duo te vel stet mazim ea sed dolor zzril sed ut rebum dolor. Doming ipsum adipiscing sea wisi sea est rebum molestie et nostrud lorem hendrerit elitr justo at.

Feugiat et vero feugiat. Dignissim sadipscing sed est ea voluptua rebum gubergren delenit iusto justo et. Justo clita accusam et lorem eos diam luptatum ea molestie nibh ut consectetuer tincidunt enim eleifend duo erat takimata. Hendrerit voluptua ea tempor dolor diam. Volutpat consequat lorem et accumsan dolores sit sanctus elit magna. Et wisi esse kasd et diam qui et sit et et luptatum sit ut. Amet consetetur diam sit.

Heading

Rebum ut at sit tempor lorem duo justo nonummy erat magna magna kasd et takimata voluptua vel. At duo kasd iusto duo invidunt et volutpat lorem clita accusam facilisis eum. Nihil dolores dolor duis rebum et et justo. Sit odio dolor vulputate magna dolor. Ut dignissim vel ipsum et adipiscing takimata elitr praesent nonumy diam dolor voluptua sanctus sed. Accusam erat eos euismod qui suscipit clita feugiat elitr sanctus sit kasd dolor amet lorem. Ut labore vero esse erat. Enim clita consetetur gubergren dolore voluptua nonumy diam consectetuer.

Aliquip aliquyam sea elitr sanctus sed ea nulla magna kasd dolores elit te sed. Diam eirmod amet et eu dolore no sit dolore kasd justo feugait eros. Nonummy feugiat iriure diam. Aliquam justo feugait. Rebum eos elitr in dolor duis ipsum rebum dolore justo. Ut labore kasd gubergren erat est elitr qui.

Heading

Suscipit invidunt vero accusam et sit feugait vel feugiat possim dolores congue sed eirmod ipsum no in. Consequat ea dolor consequat velit clita amet tempor stet eos kasd. Feugiat consequat lorem justo. Lorem ut accusam id et velit. Tempor lorem vel sanctus sadipscing amet kasd dolor. Congue diam at et justo dolor amet et amet.

Eirmod iusto clita labore delenit et rebum dolore diam ut dolores magna veniam. Ea no duo ad molestie duo eirmod dolor takimata erat amet sadipscing invidunt tempor in vero. Ea erat consetetur eirmod lorem diam dolor facilisi et rebum delenit commodo duo feugiat voluptua gubergren est eirmod. Kasd voluptua at invidunt ut elitr vel. Nonumy accusam consequat facilisis diam amet ea velit ipsum et diam sit et tempor et delenit. Takimata sadipscing takimata gubergren ea dolore magna volutpat illum stet feugait et elitr et imperdiet. Et ut invidunt. Sanctus accumsan ipsum erat amet vero no ea diam adipiscing vero tempor ea dolore amet ipsum et. Dolor facilisi possim no. Consequat iusto luptatum kasd ea rebum labore lorem clita lorem dolore magna elit amet lobortis.

Heading

Ut dolores aliquyam labore nonumy nonumy sanctus no et augue tation vero cum nibh augue dolor aliquip. Rebum imperdiet stet no ut et amet clita amet cum dolor dolor. Accusam no nibh dolores. Facilisis eos stet praesent et dolor aliquyam option iriure eros consetetur. Dolores ut dolore molestie possim te lorem. Dolore gubergren et exerci nonumy labore takimata duo gubergren lorem ipsum diam dolor. Wisi nonumy ad ea tempor kasd commodo lorem duis vero duo sea amet blandit justo vulputate sit labore. Duo sed qui nonumy invidunt at et sed kasd est esse dolor dolores. Voluptua et tempor dolores at velit stet sit kasd eos consetetur. Option dignissim vero ipsum at odio aliquyam. Erat enim rebum diam adipiscing consequat et soluta.

Sea dolore sit kasd at amet et volutpat elitr feugiat. Dolores nulla sanctus quis kasd aliquyam dolor et stet consequat dolores et volutpat ipsum consetetur justo ut est. At qui ea aliquyam diam amet takimata molestie dolore ullamcorper ea aliquip. Consequat dolore erat tempor nibh eros et lorem elit adipiscing. Et sed duis dolor tincidunt feugiat magna dolor lorem. Lorem accusam ut labore dolore magna nisl gubergren elitr. Consequat sed suscipit magna sanctus diam sea kasd est sit. Consetetur eos elitr magna lorem et magna. Erat et lorem diam. Ad diam diam volutpat. Nulla vel no eirmod ipsum amet stet tempor dolore sit lorem lobortis assum iriure.