diff options
Diffstat (limited to 'nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir')
3 files changed, 232 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/Imakefile b/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/Imakefile new file mode 100644 index 000000000..65f602f7f --- /dev/null +++ b/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/Imakefile @@ -0,0 +1,34 @@ +XCOMM $Xorg: Imakefile,v 1.1 2002/06/09 05:42:52 gisburn Exp $ + +XPMODELNAME = PSspooldir + +MODELDIR = $(XPRINTDIR)/C/print/models/$(XPMODELNAME) + +#if BuildGISWxprintglue || BuildGISWxprint +XCOMM Hack for Solaris's native /usr/openwin/bin/Xprt which does not +XCOMM understand the new %xpconfigdir% modelconfig variable +XCOMM (this is only used for the GISWxprintglue package build; +XCOMM the GISWxprint does not need it but using it avoids confusion +XCOMM if someone uses GISWxprint to run both Solaris native Xprt and +XCOMM our own binary side-by-side using the same config) +all:: model-config.SolarisXprt + +model-config.SolarisXprt: model-config + nawk <model-config " { sub(\"%xpconfigdir%/C\", \"$(XPRINTDIR)/C\") ; print \$$0 } " >model-config.SolarisXprt + +clean:: + $(RM) model-config.SolarisXprt + +InstallNamedNonExec(model-config.SolarisXprt,model-config,$(MODELDIR)) +#else +InstallNonExecFile(model-config,$(MODELDIR)) +#endif /* BuildGISWxprintglue || BuildGISWxprint */ + +InstallNamedProg(spooltodir.sh,spooltodir.sh,$(MODELDIR)) + +# All PostScript-printer models should use the printer-builtin fonts from the +# "PSdefault" printer model (unless they employ more or other builtin fonts) +install:: + $(RM) $(DESTDIR)$(MODELDIR)/fonts + $(LN) ../PSdefault/fonts $(DESTDIR)$(MODELDIR) + diff --git a/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/model-config b/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/model-config new file mode 100644 index 000000000..6bb477767 --- /dev/null +++ b/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/model-config @@ -0,0 +1,71 @@ +# $Xprint.org: PSspooldir model-config,v 1.1 2002/11/25 19:48:04 gisburn Exp $ +# PostScript DDX model-config which sends jobs to a spool dir instead to a print queue +# +# This model is basically a cut-down PSdefault model with a custom *xp-spooler-command +# +# DO NOT MODIFY THIS FILE!! +# +# If you want to make customisations for your printer create a copy +# of this printer model. +# Example (for creating a model config "MYCOMPANYlaserxx"): +# 1. Create model config dir: +# % mkdir MYCOMPANYlaserxx +# 2. Link (or copy) the PMF (printer font metrics) for the +# printer buildin fonts: +# % ln -s PSspooldir/fonts MYCOMPANYlaserxx/. +# 3. Copy the model config file: +# % cp PSspooldir/model-config MYCOMPANYlaserxx/. +# 4. Customize MYCOMPANYlaserxx/model-config to match your needs. +# +# Attributes supported for this printer model +*content-orientations-supported: portrait landscape reverse-portrait reverse-landscape +*descriptor: PostScript job spool dir /tmp/Xprintjobs +*document-formats-supported: {POSTSCRIPT 2} +*input-trays-supported: +*medium-source-sizes-supported: \ +{ '' \ + {na-letter FALSE {6.35 209.55 6.35 273.05}}\ + {na-legal FALSE {6.35 209.55 6.35 349.25}}\ + {executive FALSE {6.35 177.80 6.35 260.35}}\ + {ledger FALSE {6.35 273.05 6.35 425.45}}\ + {quarto FALSE {6.35 209.55 6.35 268.732}}\ + {iso-a3 FALSE {6.35 290.65 6.35 413.65}}\ + {iso-a4 FALSE {6.35 203.65 6.35 290.65}}\ + {iso-a5 FALSE {6.35 141.65 6.35 203.65}}\ + {iso-b3 FALSE {6.35 346.65 6.35 493.65}}\ + {iso-b4 FALSE {6.35 243.65 6.35 346.65}}\ + {iso-b5 FALSE {6.35 169.65 6.35 243.65}}\ + {jis-b3 FALSE {6.35 357.65 6.35 508.65}}\ + {jis-b4 FALSE {6.35 250.65 6.35 357.65}}\ + {jis-b5 FALSE {6.35 175.65 6.35 250.65}}\ + {iso-c3 FALSE {6.35 317.65 6.35 451.65}}\ + {iso-c4 FALSE {6.35 222.65 6.35 317.65}}\ + {iso-c5 FALSE {6.35 155.65 6.35 222.65}}\ +} + +*plexes-supported: simplex duplex tumble +*printer-model: "PostScript job spool dir /tmp/Xprintjobs" +# 75, 100, 120, 150, 180, 200, 240, 300, 360, 400, 600, 720, +# 940, 1200 and 2440 are supported DPI values, we limit it here +# to some common values: +*printer-resolutions-supported: 300 360 400 600 +*xp-ddx-identifier: XP-POSTSCRIPT +*xp-listfonts-modes-supported: xp-list-internal-printer-fonts xp-list-glyph-fonts +*xp-embedded-formats-supported: {POSTSCRIPT 2} +*xp-raw-formats-supported: {POSTSCRIPT 2} +*xp-setup-proviso: setup-optional + +# Use custom spooler script which sends the output to a dir instead to a printer queue +# Note that "%xpconfigdir%" is currently only supported in Xprt servers build +# from xprint.mozdev.org sources, other platforms have replace it with the +# absolute path name to the script +*xp-spooler-command: %xpconfigdir%/C/print/models/PSspooldir/spooltodir.sh -d /tmp/Xprintjobs -s .ps -u 077 -p %printer-name% -c %copy-count% -t %job-name% -o "%options%" + +# NOTE: xp-psddx-* attributes are EXPERIMENTAL for now. +# xp-psddx-download-fonts defines which fonts should be downloaded as outlines +# (valid types are "pfa", "pfb", "ttf", "ttc", "otf", "otc") +*xp-psddx-download-fonts: pfa pfb ttf ttc otf otc +# xp-psddx-download-font-type defines which font type is used to download outlines +# (valid values are "bitmap", "pstype1" and "pstype3") +*xp-psddx-download-font-type: pstype1 +# EOF. diff --git a/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/spooltodir.sh b/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/spooltodir.sh new file mode 100755 index 000000000..aba14e1b3 --- /dev/null +++ b/nx-X11/programs/Xserver/XpConfig/C/print/models/PSspooldir/spooltodir.sh @@ -0,0 +1,127 @@ +#!/bin/sh +PATH=/usr/bin:/usr/sbin:/bin:/sbin +export PATH + +verbose_msgs="false" +DEFAULT_SPOOLDIR=/tmp/Xprintjobs + +usage() +{ + printf "Usage: ${0}: [options]\n" + printf "-v\tbe verbose\n" + printf "-d dirname\tdefine spool dir\n" + printf "-p string\tname of printer selected by user\n" + printf "-c integer\tnumber of copies\n" + printf "-t string\tjob title\n" + printf "-s string\tfile name suffix\n" + printf "-o string\tspooler options\n" + printf "-u mask\tpermission mask for new files (see umask)\n" + exit 2 +} + +verbose() +{ + if ${verbose_msgs} ; then + echo "$1" + fi +} + +spooldir="${DEFAULT_SPOOLDIR}" +printername= +num_job_copies= +job_title= +filename_suffix= +spooler_options= +permmask= +while getopts va:b:d:p:c:t:s:o:u: i +do + case $i in + v) + verbose_msgs="true" + ;; + d) + spooldir="$OPTARG" + ;; + p) + printername="$OPTARG" + ;; + c) + num_job_copies="$OPTARG" + ;; + t) + job_title="$OPTARG" + ;; + s) + filename_suffix="$OPTARG" + ;; + o) + spooler_options="$OPTARG" + ;; + u) + permmask="$OPTARG" + ;; + ?) usage + ;; + esac +done + +verbose "# spooldir=\"$spooldir\"" +verbose "# printername=\"$printername\"" +verbose "# num_job_copies=\"$num_job_copies\"" +verbose "# job_title=\"$job_title\"" +verbose "# spooler_options=\"$spooler_options\"" +verbose "# umask=\"$permmask\"" + +if [ ! -d "${DEFAULT_SPOOLDIR}" ] ; then + mkdir "${DEFAULT_SPOOLDIR}" + chmod a+rwxt "${DEFAULT_SPOOLDIR}" +fi + +if [ "${permmask}" != "" ] ; then + umask ${permmask} +fi + +if [ ! -d "$spooldir" ] ; then + echo "$0: spooldir \"$spooldir\" does not exits." >&2 + exit 1 +fi +if [ ! -w "$spooldir" ] ; then + echo "$0: Cannot write to spooldir \"$spooldir\"." >&2 + exit 1 +fi + +# Create first part of the output file name (prefix and an "unique" +# id(=date and time))... +filename="Xpjob_`date +%Y%m%d%H%M%S`" + +# ... then add options ... +if [ "${printername}" != "" ] ; then + filename="${filename}_${printername}" +fi +if [ "${num_job_copies}" != "" -a "${num_job_copies}" != "1" ] ; then + filename="${filename}_copies_${num_job_copies}" +fi +if [ "${job_title}" != "" ] ; then + filename="${filename}_title_${job_title}" +fi + +# ... mangle output file name and filter chars (like whitespaces) +# which may screw-up further processing by other shell scripts ... +filename="`echo \"${filename}\" | tr '[:blank:]' '_' | tr -c -d '[:alnum:]_.-'`" + +# ... add path and suffix ... +filename="${spooldir}/${filename}${filename_suffix}" + +verbose "# File name is \"$filename\"." + +# ... and finally capture stdin to the file. +cat >"${filename}" + +if ${verbose_msgs} ; then + printf "# File is " ; ls -l "${filename}" +fi + +verbose "# Done." + +exit 0 +# EOF. |