[xorg-commit-diffs] xc/programs/Xserver/XpConfig/C/print/models/PSspooldir Imakefile, NONE, 1.1.4.1 model-config, NONE, 1.1.4.1 spooltodir.sh, NONE, 1.1.4.1

Roland Mainz xorg-commit at pdx.freedesktop.org
Wed Apr 21 20:03:33 EST 2004


Committed by: gisburn

Update of /cvs/xorg/xc/programs/Xserver/XpConfig/C/print/models/PSspooldir
In directory pdx:/tmp/cvs-serv5532/programs/Xserver/XpConfig/C/print/models/PSspooldir

Added Files:
      Tag: XORG-CURRENT
	Imakefile model-config spooltodir.sh 
Log Message:
Fix for http://pdx.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=530 - Land XPRINT branch on XORG-CURRENT

--- NEW FILE: Imakefile ---
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)


--- NEW FILE: model-config ---
# $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.

--- NEW FILE: spooltodir.sh ---
#!/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.




More information about the xorg-commit-diffs mailing list