Am Sonntag, den 12.07.2020, 18:57 +0900 schrieb Masamichi Hosoda:
> >>> I've found the documented way to specify Ghostscript devices
> >>> without `-sDEVICE=pdfwrite`.  It is using the operator
> >>> `selectdevice`.
> > 
> > Thanks for investigating.  The main question remains why gs produces
> > suboptimal results without `selectdevice`.
> 
> `selectdevice` is defined in gs_init.ps as follows.
> 
> ```
> /selectdevice
>         { finddevice setdevice .setdefaultscreen } bind def
> ```
> 
> `selectdevice` does `setdevice` and then `.setdefaultscreen`.
> If we use only `setdevice`, then `.setdefaultscreen` is not done.

Aha. So should we just call .setdefaultscreen ourselves? (calling
"[...] setdevice (pdfwrite) finddevice setdevice" is duplicate) Looks
like it was introduced long ago, so we can safely rely on it.

Jonas

> I've found that `.setdefaultscreen` is described here.
> https://www.ghostscript.com/doc/current/History3.htm#V3.61_Interpreter
> 
> 
> Here's a quote.
> 
> -------------
> Defines a .setdefaultscreen procedure that sets the default halftone screen,
> transfer function, and stroke adjustment for the current device.  Changes
> selectdevice and setpagedevice so that they call .setdefaultscreen;
> setpagedevice calls .setdefaultscreen before calling the Install procedure,
> so that Install can set different parameters if it wishes.  Note that
> setdevice does not do this.  (gs_init.ps, gs_setpd.ps)
> -------------
> 
> It seems to set some defaults for the current device.
> 
> This means that if we use only `setdevice`, those defaults are not set.
> In that case, many drawing operators need to be written,
> including the defaults that can be omitted if I understand correctly.
> 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to