emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: patch: handle PS/PDF in Gnus


From: Jason Rumney
Subject: Re: patch: handle PS/PDF in Gnus
Date: Wed, 11 Jul 2007 22:51:57 +0100
User-agent: Thunderbird 2.0.0.4 (Windows/20070604)

Stefan Monnier wrote:
> Maybe the best solution for that goes as follows:
> 1 - each platform implementer writes a C DEFUN that provides the most
>     obvious and direct interface to the underlying API.
> 2 - we then compare the various resulting interfaces and come up with a Lisp
>     library written on top of it which unifies them into
>     a platform-independent interface.
> 3 - most likely along the way, the unification effort showed that some of
>     the platform-specific implementations can be improved or need to be
>     changed.


On Windows, there are two dialogs involved in printing. The "Page Setup"
dialog for choosing papertype, margins, features like 2-up etc, and the
Print Dialog, where you can choose the printer, print quality, and other
features.

Due to the number of things you can set in both these dialogs, I think
the interface could be a function that takes a list of properties to use
for initialising the dialog, and returns a list of properties reflecting
the user's choices. If some options are not supported on some platforms,
they can just be ignored, or defaults returned.

Page Setup Dialog
  :units [hundredths-of-mm|thousandths-of-inch]
  :paper-dimensions (x y)
  :min-margins [(left top right bottom)|default]
  :margins [(left top right bottom)|disable]
  :device (driver-name printer-name port-name)
  :enable-network [nil|t]
  :device-mode (:printer-friendly-name
                :orientation [portrait|landscape|disable]
                :paper-size [letter|legal|a4....|disable]
                :paper-length
                :paper-width
                :scale-percent
                :copies
                :paper-source [auto|cassette|envelope|first|upper|lower...]
                :print-quality [high|medium|low|draft]
                :color [t|nil]
                :duplex [t|nil]
                :y-dpi
                :font [bitmap|download|download-outline|substitute]
                :collate [t|nil]
                :form-name
                :n-up [spooler|application]
                :icm-method [none|system|driver|device]
                :icm-intent
[abs-color-imetric|color-imetric|contrast|saturate]
                :media [plain|glossy|transparency|driver defined integer]
                :dither
[none|coarse|fine|line-art|error-diffusion|grayscale]

Print Dialog
  :device (driver-name printer-name port-name)
  :device-mode (see above)
  :enable-pages [nil|t]
  :enable-selection [nil|t]
  :pages (from to)|all|selection
  :enable-print-to-file [nil|t]
  :to-file [nil|t]
  :enable-network [nil|t]
  :copies
  :collate [nil|t]
   




reply via email to

[Prev in Thread] Current Thread [Next in Thread]