Re: Future of DSSSL: What about PDF?

Subject: Re: Future of DSSSL: What about PDF?
From: Brandon Ibach <bibach@xxxxxxxxxxxxxx>
Date: Mon, 8 Mar 1999 13:42:22 -0600
Quoting Avi Kivity <Avi@xxxxxxxxxxxxx>:
> On Monday, March 08, 1999 08:23, Brandon Ibach [SMTP:bibach@xxxxxxxxxxxxxx]
> wrote:
> > What happens when there's *no* connection between the engines?
> 
> No general-indirect, or the renderer can have its own local dsssl engine (a
> little idiotic, that).
> You can look at general-indirect as a fo that has a procedure-typed
> characteristic.
> 
   I guess my point is that support for general-indirect could be seen
as a luxury, given the need for a two-way interface between the
engines to support it.  I believe higher level FOs could provide an
alternative.  Further comments below...

> Let's consider an example:
> 
> (define (page-reference ref-page this-page)
>     (case (- ref-page this-page)
>         ((0)  (literal "this page"))
>         ((1)  (literal "next page"))
>         ((-1) (literal "previous page"))
>         (else  (literal "page " (format-number ref-page "1")))
>     )
> )
> 
> This can be used as an argument to general-indirect to produce the obvious
> results.
> 
> If you wanted to generalize it, you would have to provide all four sosofos
> as characteristics of the higher-level fo, together with instructions on how
> to select them. I guess it could be done, but you are essentially encoding
> the case expression in a sosofo.
> 
   Yes, it is an important aspect that if we are to separate the
styling engine from the formatting engine, then we obviously won't
have the facilities (such as advanced logic) of the styling engine
during the formatting process.  This is a design decision, and it
carries consequences that must be worked around.
   However, I think there are myriad possibilities.  Designing these
higher level FOs to be flexible without being unwieldy will be a
challenge, to be sure.  The example you give is a good one.  In order
to encode this into an FO in a flexible manner, you pretty much need
some type of expression syntax for specifying conditions, and some
sort of templating mechanism (probably built in to this same
expression syntax) for generating values/SOSOFOs.
   Most formatting engines would have reasonable programmatic
constructs (as they would certainly need if they're going to talk back
to the DSSSL engine in the coupling model).  Thus, what if we were to
define a set of FOs for various purposes which use a common, simple
expression syntax which could very easily be parsed and translated by
the process which translates the FOT into the destination formatter's
syntax?  This expression syntax would be fairly limited, but could
provide enough power to accomplish tasks such as the above example.
   Thoughts, comments, remarks about my intelligence or sanity? :)

-Brandon :)


 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread