Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet 45b1118fc2 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.0b2@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
127 arquivos alterados com 9046 adições e 1760 exclusões
+1
Ver Arquivo
@@ -61,6 +61,7 @@ install:
(cd data; make install)
(cd doc; make install)
(cd fonts; make install)
(cd ppd; make install)
#
# End of "$Id$".
+2
Ver Arquivo
@@ -46,6 +46,8 @@ clean:
#
install:
-$(MKDIR) $(SERVERROOT)/cgi-bin
$(CP) $(TARGETS) $(SERVERROOT)/cgi-bin
#
# printers.cgi
+1 -1
Ver Arquivo
@@ -54,7 +54,7 @@ install:
else \
$(CP) $$file $(SERVERROOT)/conf ; \
fi ; \
end
done
#
# End of "$Id$".
+9 -9
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: classes.conf 320 1999-05-13 20:40:14Z mike $"
# "$Id: classes.conf 333 1999-05-17 18:03:40Z mike $"
#
# Sample class configuration file for the Common UNIX Printing System
# (CUPS) scheduler.
@@ -40,33 +40,33 @@
# the default.
#
<Class sample>
#<Class sample>
#
# Info: the description for the class.
#
Info Acme LaserPrint 1000 Printers
#Info Acme LaserPrint 1000 Printers
#
# MoreInfo: a URL for more information on the printer.
#
MoreInfo http://www.acme.com/lp1000.html
#MoreInfo http://www.acme.com/lp1000.html
#
# Location: the location of the printer.
#
Location Room 101 in the activities building
#Location Room 101 in the activities building
#
# Printer: adds a printer to the class.
#
Printer sample@host1
Printer sample@host2
</Class>
#Printer sample
#Printer sample@host2
#</Class>
#
# End of "$Id: classes.conf 320 1999-05-13 20:40:14Z mike $".
# End of "$Id: classes.conf 333 1999-05-17 18:03:40Z mike $".
#
+15 -7
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cupsd.conf 327 1999-05-14 17:03:06Z mike $"
# "$Id: cupsd.conf 349 1999-05-21 20:53:02Z mike $"
#
# Sample configuration file for the Common UNIX Printing System (CUPS)
# scheduler.
@@ -92,7 +92,7 @@ SystemGroup sys
# By default the compiled-in value.
#
#ServerRoot /var/spool/cups
#ServerRoot /var/cups
#
# AccessLog: the access log file; if this does not start with a leading /
@@ -110,6 +110,14 @@ SystemGroup sys
#ErrorLog logs/error_log
#
# PageLog: the page log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot. By default set to
# "logs/page_log"
#
#PageLog logs/page_log
#
# LogLevel: controls the number of messages logged to the ErrorLog
# file and can be one of the following:
@@ -121,21 +129,21 @@ SystemGroup sys
# none Log nothing.
#
LogLevel warn
LogLevel info
#
# MaxLogSize: controls the maximum size of each log file before they are
# rotated. Defaults to 1048576 (1MB). Set to 0 to disable log rotating.
#
#MaxLogSize: 0
#MaxLogSize 0
#
# MaxRequestSize: controls the maximum size of print files. Set to 0 to
# disable this feature (defaults to 0.)
#
#MaxRequestSize: 0
#MaxRequestSize 0
#
# HostNameLookups: whether or not to do lookups on IP addresses to get a
@@ -269,7 +277,7 @@ LogLevel warn
# supported.
#
# AuthClass: the authorization class; currently only "Anonymous", "User",
# "System" (valid user belonging to group SystemGroupName), and "Group"
# "System" (valid user belonging to group SystemGroup), and "Group"
# (valid user belonging to the specified group) are supported.
#
# AuthGroupName: the group name for "Group" authorization.
@@ -320,5 +328,5 @@ Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf 327 1999-05-14 17:03:06Z mike $".
# End of "$Id: cupsd.conf 349 1999-05-21 20:53:02Z mike $".
#
+8 -20
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: printers.conf 320 1999-05-13 20:40:14Z mike $"
# "$Id: printers.conf 334 1999-05-17 18:11:26Z mike $"
#
# Sample printer configuration file for the Common UNIX Printing System
# (CUPS) scheduler.
@@ -40,24 +40,24 @@
# default.
#
<Printer sample>
#<Printer sample>
#
# Info: the description for the printer.
#
Info Acme LaserPrint 1000
#Info Acme LaserPrint 1000
#
# MoreInfo: a URL for more information on the printer.
#
MoreInfo http://www.acme.com/lp1000.html
#MoreInfo http://www.acme.com/lp1000.html
#
# Location: the location of the printer.
#
Location Room 101 in the activities building
#Location Room 101 in the activities building
#
# DeviceURI: the device URI for this printer.
@@ -73,18 +73,6 @@ Location Room 101 in the activities building
#DeviceURI ipp://hostname/path
#DeviceURI smb://hostname/printer
#
# AddFilter: adds a filter for this printer. Format is:
#
# AddFilter from-type cost program
#
# Filter programs must accept the standard filter options outlined in
# the CUPS documentation. A filter program of "-" means that the
# two types are equivalent.
#
AddFilter application/cups-postscript 0 -
#
# State: sets the initial state of the printer. Can be one of the
# following:
@@ -93,9 +81,9 @@ AddFilter application/cups-postscript 0 -
# Stopped - Printer is disabled but accepting new jobs.
#
State Idle
</Printer>
#State Idle
#</Printer>
#
# End of "$Id: printers.conf 320 1999-05-13 20:40:14Z mike $".
# End of "$Id: printers.conf 334 1999-05-17 18:11:26Z mike $".
#
+6
Ver Arquivo
@@ -68,6 +68,12 @@
#undef HAVE_SHADOW_H
/*
* Do we have <crypt.h>?
*/
#undef HAVE_CRYPT_H
/*
* Do we have the strXXX() functions?
*/
+13 -16
Ver Arquivo
@@ -60,6 +60,7 @@ fi
dnl Check for libraries...
AC_CHECK_LIB(c,crypt,LIBS="$LIBS",AC_CHECK_LIB(crypt,crypt))
AC_CHECK_HEADER(crypt.h, AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_LIB(sec,getspent)
AC_CHECK_LIB(socket,socket,
if test "$uname" != "IRIX"; then
@@ -76,22 +77,18 @@ fi)
IMGLIBS=""
AC_SUBST(IMGLIBS)
AC_CHECK_LIB(jpeg,jpeg_destroy_decompress,
AC_CHECK_HEADER(jpeglib.h,
AC_DEFINE(HAVE_LIBJPEG)
IMGLIBS="$IMGLIBS -ljpeg"))
AC_CHECK_LIB(png,png_read_info,
AC_CHECK_HEADER(png.h,
AC_DEFINE(HAVE_LIBPNG)
IMGLIBS="$IMGLIBS -lpng"))
AC_CHECK_LIB(tiff,TIFFGetField,
AC_CHECK_HEADER(tiff.h,
AC_DEFINE(HAVE_LIBTIFF)
IMGLIBS="$IMGLIBS -ltiff"))
AC_CHECK_LIB(z,deflate,
AC_CHECK_HEADER(zlib.h,
AC_DEFINE(HAVE_LIBZ)
IMGLIBS="$IMGLIBS -lz"))
AC_CHECK_HEADER(jpeglib.h,
AC_DEFINE(HAVE_LIBJPEG)
IMGLIBS="$IMGLIBS -ljpeg")
AC_CHECK_HEADER(zlib.h,
AC_DEFINE(HAVE_LIBZ)
IMGLIBS="$IMGLIBS -lz")
AC_CHECK_HEADER(png.h,
AC_DEFINE(HAVE_LIBPNG)
IMGLIBS="$IMGLIBS -lpng")
AC_CHECK_HEADER(tiff.h,
AC_DEFINE(HAVE_LIBTIFF)
IMGLIBS="$IMGLIBS -ltiff")
dnl Checks for header files.
AC_HEADER_STDC
+3 -2
Ver Arquivo
@@ -105,8 +105,9 @@ typedef struct /**** Printer Options ****/
*/
extern int cupsCancelJob(char *printer, int job);
extern ipp_t *cupsDoRequest(http_t *http, ipp_t *request,
char *resource);
#define cupsDoRequest(http,request,resource) cupsDoFileRequest((http),(request),(resource),NULL)
extern ipp_t *cupsDoFileRequest(http_t *http, ipp_t *request,
char *resource, char *filename);
extern int cupsGetClasses(char ***classes);
extern char *cupsGetPPD(char *printer);
extern char *cupsGetDefault(void);
+13 -45
Ver Arquivo
@@ -27,38 +27,6 @@
* mimeFilter() - Find the fastest way to convert from one type to another.
* compare() - Compare two filter types...
* lookup() - Lookup a filter...
*
* Revision History:
*
* $Log: filter.c,v $
* Revision 1.6 1999/04/21 14:49:49 mike
* cupsDoRequest() needed to retry requests when doing authorization.
*
* mimeFilter() didn't always return the least-cost filter.
*
* Revision 1.5 1999/03/01 20:51:51 mike
* Code cleanup - removed extraneous semi-colons...
*
* Revision 1.4 1999/02/05 17:40:51 mike
* Added IPP client read/write code.
*
* Added string functions missing from some UNIXs.
*
* Added option parsing functions.
*
* Added IPP convenience functions (not implemented yet).
*
* Updated source files to use local string.h as needed (for
* missing string functions)
*
* Revision 1.3 1999/01/24 14:18:43 mike
* Check-in prior to CVS use.
*
* Revision 1.2 1998/08/06 14:38:38 mike
* Finished coding and testing for CUPS 1.0.
*
* Revision 1.1 1998/06/11 20:50:53 mike
* Initial revision
*/
/*
@@ -165,12 +133,6 @@ mimeAddFilter(mime_t *mime, /* I - MIME database */
/*
* 'mimeFilter()' - Find the fastest way to convert from one type to another.
*
* NOTE: Currently we do not use the "cost" field provided with each filter.
* This will be addressed in a future version of this function. For
* now all filters are assumed to be equally costly and we find the
* smallest number of filters to run that satisfies the filter
* requirements.
*/
mime_filter_t * /* O - Array of filters to run */
@@ -179,9 +141,11 @@ mimeFilter(mime_t *mime, /* I - MIME database */
mime_type_t *dst, /* I - Destination file type */
int *num_filters) /* O - Number of filters to run */
{
int i; /* Looping var */
int num_temp, /* Number of temporary filters */
num_mintemp; /* Current minimum */
int i, j, /* Looping vars */
num_temp, /* Number of temporary filters */
num_mintemp, /* Number of filters in the minimum */
cost, /* Current cost */
mincost; /* Current minimum */
mime_filter_t *temp, /* Temporary filter */
*mintemp, /* Current minimum */
*mincurrent, /* Current filter for minimum */
@@ -220,8 +184,8 @@ mimeFilter(mime_t *mime, /* I - MIME database */
* OK, now look for filters from the source type to any other type...
*/
num_mintemp = 100000;
mintemp = NULL;
mincost = 9999999;
mintemp = NULL;
for (i = mime->num_filters, current = mime->filters; i > 0; i --, current ++)
if (current->src == src)
@@ -239,13 +203,17 @@ mimeFilter(mime_t *mime, /* I - MIME database */
* any...)
*/
if (num_temp < num_mintemp)
for (j = 0, cost = 0; j < num_temp; j ++)
cost += temp->cost;
if (cost < mincost)
{
if (mintemp != NULL)
free(mintemp);
num_mintemp = num_temp;
mincost = cost;
mintemp = temp;
num_mintemp = num_temp;
mincurrent = current;
}
else
-1
Ver Arquivo
@@ -768,7 +768,6 @@ httpWrite(http_t *http, /* I - HTTP data */
bytes = send(http->fd, buffer, length, 0);
if (bytes < 0)
{
perror("httpWrite");
DEBUG_puts("httpWrite: error writing data...\n");
return (-1);
}
+2 -1
Ver Arquivo
@@ -191,7 +191,8 @@ typedef enum /**** IPP operations... ****/
CUPS_ADD_CLASS,
CUPS_DELETE_CLASS,
CUPS_ACCEPT_JOBS,
CUPS_REJECT_JOBS
CUPS_REJECT_JOBS,
CUPS_SET_DEFAULT
} ipp_op_t;
typedef enum /**** IPP status codes... ****/
+6 -16
Ver Arquivo
@@ -279,28 +279,18 @@ cupsMarkOptions(ppd_file_t *ppd, /* I - PPD file */
{
int i; /* Looping var */
int conflict; /* Option conflicts */
char media_size[64]; /* Updated media size */
conflict = 0;
for (i = num_options; i > 0; i --, options ++)
if (strcmp(options->name, "media-size") == 0)
if (strcmp(options->name, "media") == 0)
{
strcpy(media_size, options->value);
if (strncmp(options->value, "us-", 3) == 0)
{
strcpy(media_size, media_size + 3);
media_size[0] = toupper(media_size[0]);
}
else if (strncmp(options->value, "iso-", 4) == 0)
{
strcpy(media_size, media_size + 4);
media_size[0] = toupper(media_size[0]);
}
if (ppdMarkOption(ppd, "PageSize", media_size))
if (ppdMarkOption(ppd, "PageSize", options->value))
conflict = 1;
if (ppdMarkOption(ppd, "InputSlot", options->value))
conflict = 1;
if (ppdMarkOption(ppd, "MediaType", options->value))
conflict = 1;
}
else if (strcmp(options->name, "sides") == 0)
+19
Ver Arquivo
@@ -408,6 +408,7 @@ ppdOpen(FILE *fp) /* I - File to read from */
float order; /* Order dependency number */
ppd_section_t section; /* Order dependency section */
ppd_profile_t *profile; /* Pointer to color profile */
char **filter; /* Pointer to filter */
/*
@@ -590,6 +591,24 @@ ppdOpen(FILE *fp) /* I - File to read from */
profile->matrix[2] + 0, profile->matrix[2] + 1,
profile->matrix[2] + 2);
}
else if (strcmp(keyword, "cupsFilter") == 0)
{
if (ppd->num_filters == 0)
filter = malloc(sizeof(char *));
else
filter = realloc(ppd->filters, sizeof(char *) * (ppd->num_filters + 1));
ppd->filters = filter;
filter += ppd->num_filters;
ppd->num_filters ++;
/*
* Copy filter string and prevent it from being freed below...
*/
*filter = string;
string = NULL;
}
else if (strcmp(keyword, "VariablePaperSize") == 0 &&
strcmp(string, "True") == 0)
{
+2
Ver Arquivo
@@ -194,6 +194,8 @@ typedef struct /**** Files ****/
char **fonts; /* Pre-loaded fonts */
int num_profiles; /* Number of sRGB color profiles */
ppd_profile_t *profiles; /* sRGB color profiles */
int num_filters; /* Number of filters */
char **filters; /* Filter strings... */
} ppd_file_t;
+167 -150
Ver Arquivo
@@ -23,14 +23,14 @@
*
* Contents:
*
* cupsCancelJob() - Cancel a print job.
* cupsDoRequest() - Do an IPP request...
* cupsGetClasses() - Get a list of printer classes.
* cupsGetDefault() - Get the default printer or class.
* cupsGetPPD() - Get the PPD file for a printer.
* cupsGetPrinters() - Get a list of printers.
* cupsPrintFile() - Print a file to a printer or class.
* cups_connect() - Connect to the specified host...
* cupsCancelJob() - Cancel a print job.
* cupsDoFileRequest() - Do an IPP request...
* cupsGetClasses() - Get a list of printer classes.
* cupsGetDefault() - Get the default printer or class.
* cupsGetPPD() - Get the PPD file for a printer.
* cupsGetPrinters() - Get a list of printers.
* cupsPrintFile() - Print a file to a printer or class.
* cups_connect() - Connect to the specified host...
*/
/*
@@ -133,17 +133,22 @@ cupsCancelJob(char *name, /* I - Name of printer or class */
/*
* 'cupsDoRequest()' - Do an IPP request...
* 'cupsDoFileRequest()' - Do an IPP request...
*/
ipp_t * /* O - Response data */
cupsDoRequest(http_t *http, /* I - HTTP connection to server */
ipp_t *request, /* I - IPP request */
char *resource) /* I - HTTP resource for POST */
ipp_t * /* O - Response data */
cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
ipp_t *request, /* I - IPP request */
char *resource, /* I - HTTP resource for POST */
char *filename) /* I - File to send or NULL */
{
ipp_t *response; /* IPP response data */
char length[255]; /* Content-Length field */
http_status_t status; /* Status of HTTP request */
FILE *file; /* File to send */
struct stat fileinfo; /* File information */
int bytes; /* Number of bytes read/written */
char buffer[8192]; /* Output buffer */
#if !defined(WIN32) && !defined(__EMX__)
char *password, /* Password string */
plain[255], /* Plaintext username:password */
@@ -154,99 +159,178 @@ cupsDoRequest(http_t *http, /* I - HTTP connection to server */
/* Authorization string */
DEBUG_printf(("cupsDoRequest(%08x, %08s, \'%s\')\n", http, request, resource));
DEBUG_printf(("cupsDoFileRequest(%08x, %08s, \'%s\', \'%s\')\n",
http, request, resource, filename ? filename : "(null)"));
/*
* Setup the HTTP variables needed...
* See if we have a file to send...
*/
sprintf(length, "%d", ippLength(request));
httpClearFields(http);
httpSetField(http, HTTP_FIELD_CONTENT_LENGTH, length);
httpSetField(http, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
httpSetField(http, HTTP_FIELD_AUTHORIZATION, authstring);
/*
* Try the request...
*/
if (httpPost(http, resource))
if (httpPost(http, resource))
if (filename != NULL)
{
if (stat(filename, &fileinfo))
{
/*
* Can't get file information!
*/
ippDelete(request);
return (NULL);
}
/*
* Send the IPP data and wait for the response...
*/
ippWrite(http, request);
if ((status = httpUpdate(http)) == HTTP_UNAUTHORIZED)
{
/*
* Flush any error message...
*/
httpFlush(http);
#if !defined(WIN32) && !defined(__EMX__)
if ((password = getpass("Password:")) != NULL)
if ((file = fopen(filename, "rb")) == NULL)
{
/*
* Got a password; now send it to the server...
* Can't open file!
*/
sprintf(plain, "%s:%s", cuserid(NULL), password);
httpEncode64(encode, plain);
sprintf(authstring, "Basic %s", encode);
httpClearFields(http);
httpSetField(http, HTTP_FIELD_CONTENT_LENGTH, length);
httpSetField(http, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
httpSetField(http, HTTP_FIELD_AUTHORIZATION, authstring);
if (httpPost(http, resource))
httpPost(http, resource);
request->state = IPP_IDLE;
ippWrite(http, request);
status = httpUpdate(http);
ippDelete(request);
return (NULL);
}
#endif /* !WIN32 && !__EMX__ */
}
if (status != HTTP_OK)
/*
* Loop until we can send the request without authorization problems.
*/
response = NULL;
while (response == NULL)
{
DEBUG_puts("cupsDoFileRequest: setup...");
/*
* Flush any error message...
* Setup the HTTP variables needed...
*/
httpFlush(http);
if (filename != NULL)
sprintf(length, "%u", ippLength(request) + fileinfo.st_size);
else
sprintf(length, "%u", ippLength(request));
httpClearFields(http);
httpSetField(http, HTTP_FIELD_CONTENT_LENGTH, length);
httpSetField(http, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
httpSetField(http, HTTP_FIELD_AUTHORIZATION, authstring);
response = NULL;
}
else
{
/*
* Read the response...
* Try the request...
*/
response = ippNew();
DEBUG_puts("cupsDoFileRequest: post...");
if (ippRead(http, response) == IPP_ERROR)
if (httpPost(http, resource))
if (httpPost(http, resource))
break;
/*
* Send the IPP data and wait for the response...
*/
DEBUG_puts("cupsDoFileRequest: ipp write...");
request->state = IPP_IDLE;
if (ippWrite(http, request) != IPP_ERROR)
if (filename != NULL)
{
DEBUG_puts("cupsDoFileRequest: file write...");
/*
* Send the file...
*/
rewind(file);
while ((bytes = fread(buffer, 1, sizeof(buffer), file)) > 0)
if (httpWrite(http, buffer, bytes) < bytes)
break;
}
/*
* Get the server's return status...
*/
DEBUG_puts("cupsDoFileRequest: update...");
while ((status = httpUpdate(http)) == HTTP_CONTINUE);
#if !defined(WIN32) && !defined(__EMX__)
if (status == HTTP_UNAUTHORIZED)
{
ippDelete(response);
response = NULL;
DEBUG_puts("cupsDoFileRequest: unauthorized...");
/*
* Flush any remaining data...
* Flush any error message...
*/
httpFlush(http);
if ((password = getpass("Password:")) != NULL)
{
/*
* Got a password; send it to the server...
*/
if (!password[0])
break;
sprintf(plain, "%s:%s", cuserid(NULL), password);
httpEncode64(encode, plain);
sprintf(authstring, "Basic %s", encode);
continue;
}
else
break;
}
#endif /* !WIN32 && !__EMX__ */
if (status != HTTP_OK)
{
DEBUG_printf(("cupsDoFileRequest: error %d...\n", status));
/*
* Flush any error message...
*/
httpFlush(http);
break;
}
else
{
/*
* Read the response...
*/
DEBUG_puts("cupsDoFileRequest: response...");
response = ippNew();
if (ippRead(http, response) == IPP_ERROR)
{
/*
* Delete the response...
*/
ippDelete(response);
response = NULL;
/*
* Flush any remaining data...
*/
httpFlush(http);
break;
}
}
}
/*
* Close the file if needed...
*/
if (filename != NULL)
fclose(file);
/*
* Delete the original request and return the response...
*/
@@ -593,9 +677,6 @@ cupsPrintFile(char *name, /* I - Printer or class name */
printer[HTTP_MAX_URI], /* Printer or class name */
uri[HTTP_MAX_URI]; /* Printer URI */
cups_lang_t *language; /* Language to use */
struct stat filestats; /* File information */
FILE *fp; /* File pointer */
char buffer[8192]; /* Copy buffer */
int jobid; /* New job ID */
@@ -605,34 +686,17 @@ cupsPrintFile(char *name, /* I - Printer or class name */
if (name == NULL || filename == NULL)
return (0);
/*
* See if the file exists and is readable...
*/
if (stat(filename, &filestats))
return (0);
if ((fp = fopen(filename, "rb")) == NULL)
{
DEBUG_puts("cupsPrintFile: Unable to open file!");
return (0);
}
/*
* Setup a connection and request data...
*/
if ((request = ippNew()) == NULL)
{
fclose(fp);
return (0);
}
if (!cups_connect(name, printer, hostname))
{
DEBUG_printf(("cupsPrintFile: Unable to open connection - %s.\n",
strerror(errno)));
fclose(fp);
ippDelete(request);
return (0);
}
@@ -806,76 +870,29 @@ cupsPrintFile(char *name, /* I - Printer or class name */
}
/*
* Setup the necessary HTTP fields...
*/
httpClearFields(cups_server);
httpSetField(cups_server, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
sprintf(buffer, "%u", (unsigned)(ippLength(request) + filestats.st_size));
httpSetField(cups_server, HTTP_FIELD_CONTENT_LENGTH, buffer);
/*
* Finally, issue a POST request for the printer and send the IPP data and
* file.
* Try printing the file...
*/
sprintf(uri, "/printers/%s", printer);
response = ippNew();
if (httpPost(cups_server, uri))
if ((response = cupsDoFileRequest(cups_server, request, uri, filename)) == NULL)
jobid = 0;
else if (response->request.status.status_code > IPP_OK_CONFLICT)
{
DEBUG_puts("httpPost() failed.");
DEBUG_printf(("IPP response code was 0x%x!\n",
response->request.status.status_code));
jobid = 0;
}
else if (ippWrite(cups_server, request) == IPP_ERROR)
else if ((attr = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) == NULL)
{
DEBUG_puts("ippWrite() failed.");
DEBUG_puts("No job ID!");
jobid = 0;
}
else
{
while ((i = fread(buffer, 1, sizeof(buffer), fp)) > 0)
if (httpWrite(cups_server, buffer, i) < i)
{
DEBUG_puts("httpWrite() failed.");
jobid = attr->values[0].integer;
fclose(fp);
ippDelete(request);
ippDelete(response);
httpClose(cups_server);
return (0);
}
if (httpUpdate(cups_server) == HTTP_ERROR)
{
DEBUG_puts("httpUpdate() failed.");
jobid = 0;
}
else if ((ippRead(cups_server, response)) == IPP_ERROR)
{
DEBUG_puts("ippRead() failed.");
jobid = 0;
}
else if (response->request.status.status_code > IPP_OK_CONFLICT)
{
DEBUG_printf(("IPP response code was 0x%x!\n",
response->request.status.status_code));
jobid = 0;
}
else if ((attr = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) == NULL)
{
DEBUG_puts("No job ID!");
jobid = 0;
}
else
jobid = attr->values[0].integer;
}
fclose(fp);
ippDelete(request);
ippDelete(response);
if (response != NULL)
ippDelete(response);
return (jobid);
}
+25 -12
Ver Arquivo
@@ -41,10 +41,11 @@ include ../Makedefs
DOCUMENTS = cmp.shtml idd.shtml sam.shtml sdd.shtml ssr.shtml \
stp.shtml sum.shtml svd.shtml
DOCIMAGES = images/navbar.gif
DOCIMAGES = images/cups-block-diagram.gif images/cups-large.gif \
images/cups-medium.gif images/cups-small.gif
WEBPAGES = cups.css cupsdoc.css index.html documentation.html
WEBIMAGES = images/navbar.gif images/printer-idle.gif \
images/printer-processing.gif \
WEBIMAGES = images/logo.gif images/navbar.gif \
images/printer-idle.gif images/printer-processing.gif \
images/printer-stopped.gif
#
@@ -68,22 +69,34 @@ clean:
#
install:
-$(MKDIR) $(SERVERROOT)/doc
$(CP) $(WEBPAGES) $(SERVERROOT)/doc
$(CP) overview.html overview.pdf $(SERVERROOT)/doc
$(CP) $(DOCUMENTS:.shtml=.html) $(SERVERROOT)/doc
$(CP) $(DOCUMENTS:.shtml=.pdf) $(SERVERROOT)/doc
-$(MKDIR) $(SERVERROOT)/doc/images
$(CP) $(WEBIMAGES) $(SERVERROOT)/doc/images
$(CP) $(DOCIMAGES) $(SERVERROOT)/doc/images
-$(MKDIR) $(DATADIR)/doc
$(CP) $(WEBPAGES) $(DATADIR)/doc
$(CP) overview.html overview.pdf $(DATADIR)/doc
$(CP) $(DOCUMENTS:.shtml=.html) $(DATADIR)/doc
$(CP) $(DOCUMENTS:.shtml=.pdf) $(DATADIR)/doc
-$(MKDIR) $(DATADIR)/doc/images
$(CP) $(WEBIMAGES) $(DATADIR)/doc/images
$(CP) $(DOCIMAGES) $(DATADIR)/doc/images
#
# The overview PDF file gets special attention...
# The overview, admin guide, and user's guide get special attention...
#
overview.pdf: overview.html
htmldoc --duplex --compression=9 --jpeg --webpage -f $@ $<
sam.html: sam.shtml
htmldoc --title images/cups-large.gif -f $@ $<
sam.pdf: sam.shtml
htmldoc --title images/cups-large.gif --duplex --compression=9 \
--jpeg -f $@ $<
sum.html: sum.shtml
htmldoc --title images/cups-large.gif -f $@ $<
sum.pdf: sum.shtml
htmldoc --title images/cups-large.gif --duplex --compression=9 \
--jpeg -f $@ $<
#
# End of Makefile.
#
+5 -2
Ver Arquivo
@@ -118,6 +118,9 @@ with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
This configuration management document is organized into the following
sections:
@@ -337,7 +340,7 @@ extension of &quot;.h&quot;.
the file, the purpose or nature of the source file, the copyright and
licensing notice, and the functions contained in the file. The file
name and revision information is provided by the CVS &quot;$Id: cmp.shtml,v
1.2 1999/05/13 20:40:40 mike Exp $&quot; tag:
1.3 1999/05/21 20:54:04 mike Exp $&quot; tag:
<UL>
<PRE>
/*
@@ -373,7 +376,7 @@ name and revision information is provided by the CVS &quot;$Id: cmp.shtml,v
</PRE>
</UL>
The bottom of each source file shall contain a trailer giving the name
of the file using the CVS &quot;$Id: cmp.shtml,v 1.2 1999/05/13 20:40:40
of the file using the CVS &quot;$Id: cmp.shtml,v 1.3 1999/05/21 20:54:04
mike Exp $&quot; tag. The primary purpose of this is to mark the end of a
source file; if the trailer is missing it is possible that code has
been lost near the end of the file:
+139 -142
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990514170117Z)/Title(CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990521210307Z)/Title(CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -16,9 +16,9 @@
14 0 obj<</Subtype/Link/Rect[108.0 646.8 124.5 659.8]/Border[0 0 0]/Dest[198 0 R/XYZ null 658 0]>>endobj
15 0 obj<</Subtype/Link/Rect[124.5 646.8 159.6 659.8]/Border[0 0 0]/Dest[198 0 R/XYZ null 658 0]>>endobj
16 0 obj<</Subtype/Link/Rect[159.6 646.8 203.0 659.8]/Border[0 0 0]/Dest[198 0 R/XYZ null 658 0]>>endobj
17 0 obj<</Subtype/Link/Rect[108.0 633.6 124.5 646.6]/Border[0 0 0]/Dest[198 0 R/XYZ null 474 0]>>endobj
18 0 obj<</Subtype/Link/Rect[124.5 633.6 173.1 646.6]/Border[0 0 0]/Dest[198 0 R/XYZ null 474 0]>>endobj
19 0 obj<</Subtype/Link/Rect[173.1 633.6 216.4 646.6]/Border[0 0 0]/Dest[198 0 R/XYZ null 474 0]>>endobj
17 0 obj<</Subtype/Link/Rect[108.0 633.6 124.5 646.6]/Border[0 0 0]/Dest[198 0 R/XYZ null 434 0]>>endobj
18 0 obj<</Subtype/Link/Rect[124.5 633.6 173.1 646.6]/Border[0 0 0]/Dest[198 0 R/XYZ null 434 0]>>endobj
19 0 obj<</Subtype/Link/Rect[173.1 633.6 216.4 646.6]/Border[0 0 0]/Dest[198 0 R/XYZ null 434 0]>>endobj
20 0 obj<</Subtype/Link/Rect[72.0 607.2 80.2 620.2]/Border[0 0 0]/Dest[204 0 R/XYZ null 818 0]>>endobj
21 0 obj<</Subtype/Link/Rect[80.2 607.2 131.6 620.2]/Border[0 0 0]/Dest[204 0 R/XYZ null 818 0]>>endobj
22 0 obj<</Subtype/Link/Rect[108.0 594.0 124.5 607.0]/Border[0 0 0]/Dest[204 0 R/XYZ null 737 0]>>endobj
@@ -263,7 +263,7 @@
138 0 obj<</D[198 0 R/XYZ null 818 null]>>endobj
139 0 obj<</D[198 0 R/XYZ null 737 null]>>endobj
140 0 obj<</D[198 0 R/XYZ null 658 null]>>endobj
141 0 obj<</D[198 0 R/XYZ null 474 null]>>endobj
141 0 obj<</D[198 0 R/XYZ null 434 null]>>endobj
142 0 obj<</D[204 0 R/XYZ null 818 null]>>endobj
143 0 obj<</D[204 0 R/XYZ null 737 null]>>endobj
144 0 obj<</D[204 0 R/XYZ null 540 null]>>endobj
@@ -380,12 +380,14 @@ endobj
Õ;c`<k»ñΙ¡µ€±¯ïdŠÉÐP¶ÀƳ¿bY™>R°0qí{±;ÂçT®„4`6µƒ¢Y™KzÉÐ|#· &……Kæ`1 "Íë9ƒ‹ö ›òMÏRØꀅ݅‚U˜«âµëU‹`4,}<
îdÝ'–^ªÀV”v{Õ“6ƒEm2U2VÃm4°çùOÖÁ³Å,¤~PÀæÊCXõ›ÎQå†þ1k>WÂâòü[ê`1,¾)hãb˜çÇVóÚ¨•+ò¸ÿ¥ó÷‚5s.éñË9ʳ Þo_q Øvž]¶™ã=“ªeùÐÎe2`{´ýï¾ Ù¿wnÈE]†)
òò¡6nò~š<®Ü”+ó씳óÅbñêaSî‹‹Ðð·Í¹l ˜õÒ–ÿˆá’rÍ-p™Iâ Ã…ãroÀ–V¸œ°ö­/Ûp!¹§6}Ć+]âZÛãJÇ5\h.ÖNGGÛäÊœášç6¹œÑzÜñžK†cÑxw gÑ q9!Øó^
Ò¸°DôÑ!‰kpKÄgи²‘X!•kàø—p€MäÔ)¹/T®!½3åø‰Ê5``OJš#s
6Åhi/t®¦1±ŒÁ5Ì#ží2¸™bÔ,%=pÍ`sõ®ôT9WÏÚÁÈdrIᮚpõ)ЬÔa.W`¼L26#í§ÇeÌÕÓbŒyãÀ€«ÿìs/R˜puoŠü,M#®®Á O͸ºUE“daC®.´Q´)Ww`fÉøÆ\äêŽ&ö¹ºX¶¦«Ûá²/‹æ÷&¬påÒ®-^š÷Èׯí
Ùd»Ã•Ë wË&—¥!;_ç®qåòÆX_Ùê‹M.~jõêÒ^Oìr¤W#R·‡äâ’٥ꂋCvþÊvºà"æÅû‹ÞsÑ
Ò¸°DôÑ!‰kpKÄgи²‘X!•kàø—p€MäÔ)¹/T®!½3åø‰Ê5``OJš#s
6Åhi/t®¦1±ŒÁ5Ì#ží2¸™bÔ,%=pÍ`sõ®ôT9WÏÚÁÈdrIᮚpõ)ЬÔa.W`¼L26#í§ÇeÌÕÓbŒyãÀ€«ÿìs/R˜puoŠü,M#®®Á O͸ºUE“daC®.´Q´)Ww`fÉøÆ\äêŽ&ö¹ºX¶¦«Ûá²/‹æ÷&¬påÒ®-^š÷Èׯí
Ùd»Ã•Ë wË&—¥!;_ç®qåòÆX_Ùê‹M.~jõêÒ^Oìr¤W#R·‡äâ’٥ꂋCvþÊvºà"æÅû‹ÞsÑ
צ<à²ãýóÛN>¾3®Ý¨µäÙâ¡«Ïî’k7l7‹3õ8]>tù¹]sín{Ãaqq¶-ç‹ÅåÃCçÙ ×â/’wòÅ›?¾×ï…üA¼ûîê[q»ººòûºÏ!÷¿þòÃO?þþåÓן~ýEüéÓ/Ÿ~üü—Ï¿|ðó§_þYþϦñ­¸¾Þ6¾~ûîê­x}ýöêæ±ùëû?Áëë«Õ¶âëëÛ«kñúæÝþ·ÇŸ~û»È~ýáëÿ}úòYÀ—_¿ÿýÏ_ÛU¼}{õ®ð{~ýß¿ùéÇÿþºéãûo_oþ÷þ_ćŸéö‡¿‰ôóoŸ¿üíó÷Û¦±Üý?ÚiñÜendstream
endobj
194 0 obj
6320
194 0 obj
endobj
195 0 obj<</Type/Page/Parent 191 0 R/Contents 196 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
196 0 obj<</Length 197 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
@@ -486,24 +488,19 @@ endobj
221 0 obj
216
endobj
222 0 obj<</Type/Page/Parent 191 0 R/Contents 223 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
223 0 obj<</Length 224 0 R/Filter/FlateDecode>>stream
VMSÛ0½çWìpjgˆ'’Þ€N/”¤\Y^'flÉ•d(ÿ¾»’çchÃ!±õôöí7¿1Œè/†«1L¦ ËÁÍjðå~ñVL¯.`•~º„¥ÎÜ«0X °h?¯žò2šìðrtÃ#k?ê2A“«uÀ_@7èñ4 o-–P#pƒ8¬„qðÒ(Oé­p˜Bò1êÔ‚Ó`°2hQ9º‹PŠgmΡÌ •B%œÜÊ‹f
d9žDc¶¨í× ms~q ¶öFÌž=òä‘çÝ9£Q4ÚõrÈT­Ÿ7èÄСu­r˜â™«”ÔçY\U…*¥xy
tŽœ¿L…~
>Hê¼H›Øü¿þÄÓì{‘Ä'ü¸†ÛÇ%X%*»Ñr kTr“iH™{ƒ„¼õ Èr%ŠÖeÿÆçšè¥˜)1ÝúØKVг—3Oòš»'IQæ%Y¨t®œåz(„ $5…ÖX©©@>£—øiôÔ ÷òDLî™ÜµF%QòÆqMg¢.(LŠ~Ú¶‰l í›uXÒ4X"kgwv굉Lß3ºø{aYæíðÝ-}Š6_+Ðøæ¢3ÚƒSß#§H¥«BÁãï©9Ø=ÀÝç¸G^¦7H5!uYQʰx#DЃi×£ÿ ¢g6ø°×Ú
‘}§çÃ9ojèsŸjP_¼=¯ß!ÇŒ\¢Ô$â4 #­ŒNké¸àáã=”B°
222 0 obj<</Type/Page/Parent 191 0 R/Contents 223 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
223 0 obj<</Length 224 0 R/Filter/FlateDecode>>stream
VMSÛ0½çWìpjgˆ'’Þ€N/”¤\Y^'flÉ•d(ÿ¾»’çchÃ!±õôöí7¿1Œè/†«1L¦ ËÁÍjðå~ñVL¯.`•~º„¥ÎÜ«0X °h?¯žò2šìðrtÃ#k?ê2A“«uÀ_@7èñ4 o-–P#pƒ8¬„qðÒ(Oé­p˜Bò1êÔ‚Ó`°2hQ9º‹PŠgmΡÌ •B%œÜÊ‹f
d9žDc¶¨í× ms~q ¶öFÌž=òä‘çÝ9£Q4ÚõrÈT­Ÿ7èÄСu­r˜â™«”ÔçY\U…*¥xy
224 0 obj
tŽœ¿L…~
>Hê¼H›Øü¿þÄÓì{‘Ä'ü¸†ÛÇ%X%*»Ñr kTr“iH™{ƒ„¼õ Èr%ŠÖeÿÆçšè¥˜)1ÝúØKVг—3Oòš»'IQæ%Y¨t®œåz(„ $5…ÖX©©@>£—øiôÔ ÷òDLî™ÜµF%QòÆqMg¢.(LŠ~Ú¶‰l í›uXÒ4X"kgwv굉Lß3ºø{aYæíðÝ-}Š6_+Ðøæ¢3ÚƒSß#§H¥«BÁãï©9Ø=ÀÝç¸G^¦7H5!uYQʰx#DЃi×£ÿ ¢g6ø°×Ú
‘}§çÃ9ojèsŸjP_¼=¯ß!ÇŒ\¢Ô$â4 #­ŒNké¸àáã=”B°
Ô‹=ÒcWâ.zh¦Ö.ô4{ÿÊø` :ngâ.ôû¸£ÝrñÍ6™·ëe ßÂÈ¡»G÷Êvcmǭ݈Pe½ÅÍkk)ÑÚ¬.¨bÛâM»–rF×IÁd•6.‚kbÒÉ3õ×b¯FñÊÚ ÆgyñÞrŠ·¢f¸Ji•‘†’>ŠšQ~´Ó*[›fžX]Ù²§X$=¦ÑMÜ…j+Z9§öï6N.;±\à” nEI-l%í›Ø·ùö&›€E!Ô¹?.W‹!× Ü Vè™m/FRЀåêÁ¯ñ¤Ðs3?Ã2š"YZJMôÆÝYçÈtü“r1EsÂbÎÏw«ÁÏÁ_øe¼?endstream
226 0 obj<</Length 227 0 R/Filter/FlateDecode>>stream
xÚmP½R„0îyŠ+- ǶÞh§sz¨õ^XŽ8`6Ì,,œ¤Úý~÷+QÉS°-ã×crß$·w vi
endobj
224 0 obj
845
endobj
endobj
225 0 obj<</Type/Page/Parent 191 0 R/Contents 226 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
226 0 obj<</Length 227 0 R/Filter/FlateDecode>>stream
xÚmP½R„0îyŠ+- ǶÞh§sz¨õ^XŽ8`6Ì,,œ¤Úý~÷+QÉS°-ã×crß$·w vi
M'»²ªÒšöz—ðJ!ÓMó)¨”Z1›¼”¥`>z²ˆƒ±gè‘áD2Ðnœ
@@ -586,7 +583,7 @@ endobj
248 0 obj
749
endobj
*<Ó;ñNV*•~hª½qÑû™5¦Uòq¯Æd†§Ii<¡D&=3%K-3Í#þ ÍøL"•¯!mc%^±4z•'9m‡´HW[ã¢Y:ÓVÄÆEË­e0—"KA@óј—xòÚÍM‘›0~ÊÓ“F\©>™ 'Y–µõnSüƒÙçYÃ)tN€Ã+:(RE³zžœL݆*²qóµs;kÌæÕááÊcÕ>~K‰É‹ÎÅÝåùÛ‹“ÇyüÛëgÆun·¢U/dÉÕ³šóÅÞÿ_½ð*$Iðb]ƒhW"»ß£N™‘¨žî%¹NnG!!¦³ºMÌ7íH_<úv=¿BiãQé9Û¶É̓ãQþ3_|úCø<+ ïXÂæ¹ à:b¹a[vHoZÃngçaاP~gMà©}¨ýû‡Žendstream
249 0 obj<</Type/Page/Parent 191 0 R/Contents 250 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
250 0 obj<</Length 251 0 R/Filter/FlateDecode>>stream
xÚ•V]OÛ0}ﯸÊ0š6´
Û$`LBb[»í&ä&7­‡kw¶Ó&þû®í”,ác¬­’ؾ¾_çø¤¿: ôé›À`×ýÒEçxÒé}A2ˆw`’ÓÚî~â³ãxDc{+psò3X%Á¦;Å»61ƒ3™¡´Ìr%ƒí°¶ÝÙ‡ÎöHHU†0*½1€2Ê`Ó[˜j–Þ 5`æŒÌ¦8ãJnç`çj‰’Ë™·¢‘K\b 2ðnÉRB®„P¥qIPèPU¶a,ÓÖyhì–[Ô>BðÌdÜ÷ÅPb;`–4oª ”mÙù€KA£¬é¸=ää¶Úu®Ì†Â4§B™¨Búþöa!˜<­'nð»1òaBo ΕZºp+¦a«×0kîémµ|lÁ…VT±¡Fª)m_1Q ´Z–VÁh4Šã¸½í¥ äJÃÕ‡wÐ?o!é÷ýÓ›7W›-ÛvQ™º¶snÈÁÕæáÓ«Ì>¹zßß7‰Ùu}]SsLÝØõ¤ ®X\jà¢LEÛ¡0èîT‘»ñœ®Ž4Q9ç£ö>¦0%
@@ -839,128 +836,128 @@ xref
0000013664 00000 n
0000013770 00000 n
0000013876 00000 n
0000013452 00000 n
0000013558 00000 n
0000013664 00000 n
0000013770 00000 n
0000013876 00000 n
0000013980 00000 n
0000014084 00000 n
0000014189 00000 n
0000014295 00000 n
0000014401 00000 n
0000014635 00000 n
0000014669 00000 n
0000014703 00000 n
0000015402 00000 n
0000015451 00000 n
0000015500 00000 n
0000015549 00000 n
0000015598 00000 n
0000015647 00000 n
0000015696 00000 n
0000015745 00000 n
0000015794 00000 n
0000015843 00000 n
0000015892 00000 n
0000015941 00000 n
0000015990 00000 n
0000016039 00000 n
0000016088 00000 n
0000016137 00000 n
0000016186 00000 n
0000016235 00000 n
0000016284 00000 n
0000016333 00000 n
0000016382 00000 n
0000016431 00000 n
0000016480 00000 n
0000016529 00000 n
0000016578 00000 n
0000016627 00000 n
0000016676 00000 n
0000016725 00000 n
0000016774 00000 n
0000016823 00000 n
0000016872 00000 n
0000016921 00000 n
0000016970 00000 n
0000017019 00000 n
0000017068 00000 n
0000017117 00000 n
0000017166 00000 n
0000017215 00000 n
0000017264 00000 n
0000017313 00000 n
0000017362 00000 n
0000017411 00000 n
0000017460 00000 n
0000017509 00000 n
0000017558 00000 n
0000017607 00000 n
0000017656 00000 n
0000017705 00000 n
0000017754 00000 n
0000017803 00000 n
0000017852 00000 n
0000017901 00000 n
0000017950 00000 n
0000017999 00000 n
0000018260 00000 n
0000018412 00000 n
0000024803 00000 n
0000024825 00000 n
0000024938 00000 n
0000025040 00000 n
0000025060 00000 n
0000025200 00000 n
0000026050 00000 n
0000026071 00000 n
0000026184 00000 n
0000026372 00000 n
0000026393 00000 n
0000026533 00000 n
0000027126 00000 n
0000027147 00000 n
0000027260 00000 n
0000027453 00000 n
0000027474 00000 n
0000027605 00000 n
0000028218 00000 n
0000028239 00000 n
0000028352 00000 n
0000028541 00000 n
0000028562 00000 n
0000028693 00000 n
0000029637 00000 n
0000029658 00000 n
0000029789 00000 n
0000030076 00000 n
0000030097 00000 n
0000030237 00000 n
0000031153 00000 n
0000031174 00000 n
0000031305 00000 n
0000031663 00000 n
0000031684 00000 n
0000031824 00000 n
0000032320 00000 n
0000032341 00000 n
0000032472 00000 n
0000032924 00000 n
0000032945 00000 n
0000033085 00000 n
0000034223 00000 n
0000034245 00000 n
0000034385 00000 n
0000035289 00000 n
0000035310 00000 n
0000035450 00000 n
0000036376 00000 n
0000036397 00000 n
0000036537 00000 n
0000013980 00000 n
0000014084 00000 n
0000014189 00000 n
0000014295 00000 n
0000014401 00000 n
0000014635 00000 n
0000014669 00000 n
0000014703 00000 n
0000015402 00000 n
0000015451 00000 n
0000015500 00000 n
0000015549 00000 n
0000015598 00000 n
0000015647 00000 n
0000015696 00000 n
0000015745 00000 n
0000015794 00000 n
0000015843 00000 n
0000015892 00000 n
0000015941 00000 n
0000015990 00000 n
0000016039 00000 n
0000016088 00000 n
0000016137 00000 n
0000016186 00000 n
0000016235 00000 n
0000016284 00000 n
0000016333 00000 n
0000016382 00000 n
0000016431 00000 n
0000016480 00000 n
0000016529 00000 n
0000016578 00000 n
0000016627 00000 n
0000016676 00000 n
0000016725 00000 n
0000016774 00000 n
0000016823 00000 n
0000016872 00000 n
0000016921 00000 n
0000016970 00000 n
0000017019 00000 n
0000017068 00000 n
0000017117 00000 n
0000017166 00000 n
0000017215 00000 n
0000017264 00000 n
0000017313 00000 n
0000017362 00000 n
0000017411 00000 n
0000017460 00000 n
0000017509 00000 n
0000017558 00000 n
0000017607 00000 n
0000017656 00000 n
0000017705 00000 n
0000017754 00000 n
0000017803 00000 n
0000017852 00000 n
0000017901 00000 n
0000017950 00000 n
0000017999 00000 n
0000018260 00000 n
0000018412 00000 n
0000024803 00000 n
0000024825 00000 n
0000024938 00000 n
0000025040 00000 n
0000025060 00000 n
0000025200 00000 n
0000026140 00000 n
0000026161 00000 n
0000026274 00000 n
0000026462 00000 n
0000026483 00000 n
0000026623 00000 n
0000027216 00000 n
0000027237 00000 n
0000027350 00000 n
0000027543 00000 n
0000027564 00000 n
0000027695 00000 n
0000028308 00000 n
0000028329 00000 n
0000028442 00000 n
0000028631 00000 n
0000028652 00000 n
0000028783 00000 n
0000029727 00000 n
0000029748 00000 n
0000029879 00000 n
0000030166 00000 n
0000030187 00000 n
0000030327 00000 n
0000031243 00000 n
0000031264 00000 n
0000031395 00000 n
0000031753 00000 n
0000031774 00000 n
0000031914 00000 n
0000032410 00000 n
0000032431 00000 n
0000032562 00000 n
0000033014 00000 n
0000033035 00000 n
0000033175 00000 n
0000034315 00000 n
0000034337 00000 n
0000034477 00000 n
0000035383 00000 n
0000035404 00000 n
0000035544 00000 n
0000036470 00000 n
0000036491 00000 n
0000036631 00000 n
0000037277 00000 n
0000037298 00000 n
0000037438 00000 n
0000038258 00000 n
0000038279 00000 n
0000038419 00000 n
0000039346 00000 n
0000039367 00000 n
0000038164 00000 n
0000039507 00000 n
0000039911 00000 n
+8 -4
Ver Arquivo
@@ -31,6 +31,10 @@ supported with reduced functionality.
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
This configuration management document is organized into the following
@@ -330,12 +334,12 @@ extension of ".h".
The top of each source file shall contain a header giving the name of the
file, the purpose or nature of the source file, the copyright and licensing
notice, and the functions contained in the file. The file name and revision
information is provided by the CVS "$Id: cmp.shtml 322 1999-05-13 20:40:46Z mike $" tag:
information is provided by the CVS "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $" tag:
<UL>
<PRE>
/*
* "$Id: cmp.shtml 322 1999-05-13 20:40:46Z mike $"
* "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $"
*
* Description of file contents.
*
@@ -368,14 +372,14 @@ information is provided by the CVS "$Id: cmp.shtml 322 1999-05-13 20:40:46Z mike
</UL>
The bottom of each source file shall contain a trailer giving the name
of the file using the CVS "$Id: cmp.shtml 322 1999-05-13 20:40:46Z mike $" tag. The primary purpose of this is to
of the file using the CVS "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $" tag. The primary purpose of this is to
mark the end of a source file; if the trailer is missing it is possible
that code has been lost near the end of the file:
<UL>
<PRE>
/*
* End of "$Id: cmp.shtml 322 1999-05-13 20:40:46Z mike $".
* End of "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $".
*/
</PRE>
</UL>
+2 -1
Ver Arquivo
@@ -1,3 +1,4 @@
BODY { background-color: #cccc99 }
H1 { font-family: sans-serif; margin-left: 5% }
H1 { font-family: sans-serif; }
H2 { font-family: sans-serif; }
TH { background-color: #999966 }
+9
Ver Arquivo
@@ -0,0 +1,9 @@
H1 { font-family: sans-serif }
H2 { font-family: sans-serif }
H3 { font-family: sans-serif }
H4 { font-family: sans-serif }
H5 { font-family: sans-serif }
H6 { font-family: sans-serif }
SUP { font-family: sans-serif; font-size: 6pt }
PRE { margin-left: 2em }
CODE { font-weight: bold }
+12 -51
Ver Arquivo
@@ -3,11 +3,11 @@
<TITLE>Documentation - Common UNIX Printing System</TITLE>
<LINK REL=STYLESHEET TYPE="text/css" HREF="cups.css">
<MAP NAME="navbar">
<AREA SHAPE="RECT" COORDS="10,10,100,35" HREF="printers" ALT="Current Printer Status">
<AREA SHAPE="RECT" COORDS="115,10,205,35" HREF="classes" ALT="Current Printer Classes Status">
<AREA SHAPE="RECT" COORDS="220,10,280,35" HREF="jobs" ALT="Current Jobs Status">
<AREA SHAPE="RECT" COORDS="295,10,470,35" HREF="documentation.html" ALT="Read CUPS Documentation On-Line">
<AREA SHAPE="RECT" COORDS="485,10,590,35" HREF="http://www.cups.org" ALT="Download the Current CUPS Software">
<AREA SHAPE="RECT" COORDS="10,10,85,30" HREF="printers" ALT="Current Printer Status">
<AREA SHAPE="RECT" COORDS="95,10,175,30" HREF="classes" ALT="Current Printer Classes Status">
<AREA SHAPE="RECT" COORDS="185,10,235,30" HREF="jobs" ALT="Current Jobs Status">
<AREA SHAPE="RECT" COORDS="245,10,395,30" HREF="documentation.html" ALT="Read CUPS Documentation On-Line">
<AREA SHAPE="RECT" COORDS="405,10,490,30" HREF="http://www.cups.org" ALT="Download the Current CUPS Software">
</MAP>
</HEAD>
@@ -19,19 +19,21 @@
<H1>Documentation</H1>
The following documentation is available (or will be shortly) for CUPS:
The following documentation for CUPS is available on this server:
<UL>
<LI>Online man pages (for users and administrators)
<LI>Whitepaper - An Overview of the Common UNIX Printing System (
<A HREF="overview.html">HTML</A> |
<A HREF="overview.pdf">PDF</A> )
<LI>Software Users Manual (Not Yet Available)
<LI>Software Users Manual (
<A HREF="sum.html">HTML</A> |
<A HREF="sum.pdf">PDF</A> )
<LI>Software Administrators Manual (Not Yet Available)
<LI>Software Administrators Manual (
<A HREF="sum.html">HTML</A> |
<A HREF="sum.pdf">PDF</A> )
<LI>Configuration Management Plan (
<A HREF="cmp.html">HTML</A> |
@@ -57,47 +59,6 @@ The following documentation is available (or will be shortly) for CUPS:
</UL>
The source code is documented and formatted according to the Configuration
Management Plan, CUPS-CMP-1.0. The design documents should provide the
programmer more than enough information to understand (and maintain, if
necessary) the code.
<H1>RFCs</H1>
The following RFCs are applicable to CUPS:
<UL>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc1179.txt">
RFC 1179: Line Printer Daemon Protocol</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2046.txt">
RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2068.txt">
RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2069.txt">
RFC 2069: An Extension to HTTP: Digest Access Authentication</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2565.txt">
RFC 2565: Internet Printing Protocol/1.0: Encoding and Transport</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2566.txt">
RFC 2566: Internet Printing Protocol/1.0: Model and Semantics</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2567.txt">
RFC 2567: Design Goals for an Internet Printing Protocol</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2568.txt">
RFC 2568: Rationale for the Structure of the Model and Protocol
for the Internet Printing Protocol</A>
<LI><A HREF="http://www.ietf.org/rfc/files/rfc2569.txt">
RFC 2569: Mapping between LPD and IPP Protocols</A>
</UL>
<HR>
<P>The Common UNIX Printing System, CUPS, and the CUPS logo are the
+515 -55
Ver Arquivo
@@ -35,33 +35,48 @@ Copyright 1997-1999, All Rights Reserved<BR>
<LI><A HREF=#3_3_1>3.3.1 mime.types</A></LI>
<LI><A HREF=#3_3_2>3.3.2 mime.convs</A></LI>
</UL>
<LI><A HREF=#3_4>3.4 PPD Files</A></LI>
<LI><A HREF=#3_4>3.4 PostScript Printer Description Files</A></LI>
<UL>
<LI><A HREF=#3_4_1>3.4.1 CUPS Extensions to PPD Files</A></LI>
</UL>
<LI><A HREF=#3_5>3.5 Scheduler Configuration Files</A></LI>
<UL>
<LI><A HREF=#3_5_1>3.5.1 cupsd.conf</A></LI>
<LI><A HREF=#3_5_2>3.5.2 printers.conf</A></LI>
<LI><A HREF=#3_5_3>3.5.3 classes.conf</A></LI>
<LI><A HREF=#3_5_1>3.5.1 classes.conf</A></LI>
<LI><A HREF=#3_5_2>3.5.2 cupsd.conf</A></LI>
<LI><A HREF=#3_5_3>3.5.3 printers.conf</A></LI>
</UL>
</UL>
<B><A HREF=#4>4 External Interfaces</A></B>
<UL>
<LI><A HREF=#4_1>4.1 Application Socket Protocol</A></LI>
<LI><A HREF=#4_1>4.1 AppSocket Protocol</A></LI>
<LI><A HREF=#4_2>4.2 CUPS Browsing Protocol</A></LI>
<LI><A HREF=#4_3>4.3 CUPS PostScript File</A></LI>
<LI><A HREF=#4_4>4.4 CUPS Raster File</A></LI>
<LI><A HREF=#4_5>4.5 Internet Printing Protocol</A></LI>
<LI><A HREF=#4_6>4.6 Line Printer Daemon Protocol</A></LI>
<LI><A HREF=#4_7>4.7 Parallel Device</A></LI>
<LI><A HREF=#4_8>4.8 Serial Device</A></LI>
<LI><A HREF=#4_5>4.5 CUPS Raw Files</A></LI>
<LI><A HREF=#4_6>4.6 File Transfer Protocol</A></LI>
<LI><A HREF=#4_7>4.7 Internet Printing Protocol</A></LI>
<UL>
<LI><A HREF=#4_7_1>4.7.1 Get Default Destination (CUPS_GET_DEFAULT =
0x4001)</A></LI>
<LI><A HREF=#4_7_2>4.7.2 Get Printers (CUPS_GET_PRINTERS = 0x4002)</A></LI>
<LI><A HREF=#4_7_3>4.7.3 Add Printer (CUPS_ADD_PRINTER = 0x4003)</A></LI>
<LI><A HREF=#4_7_4>4.7.4 Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</A>
</LI>
<LI><A HREF=#4_7_5>4.7.5 Get Classes (CUPS_GET_CLASSES = 0x4005)</A></LI>
<LI><A HREF=#4_7_6>4.7.6 Add Class (CUPS_ADD_CLASS = 0x4006)</A></LI>
<LI><A HREF=#4_7_7>4.7.7 Delete Class (CUPS_DELETE_CLASS = 0x4007)</A></LI>
<LI><A HREF=#4_7_8>4.7.8 Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</A></LI>
<LI><A HREF=#4_7_9>4.7.9 Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</A></LI>
<LI><A HREF=#4_7_10>4.7.10 Set Default Destination (CUPS_SET_DEFAULT =
0x400A)</A></LI>
</UL>
<LI><A HREF=#4_8>4.8 Line Printer Daemon Protocol</A></LI>
<LI><A HREF=#4_9>4.9 Server Message Block Protocol</A></LI>
<LI><A HREF=#4_10>4.10 Trivial File Transfer Protocol</A></LI>
</UL>
<B><A HREF=#5>5 Command-Line Interfaces</A></B>
<UL>
<LI><A HREF=#5_1>5.1 Backend Interfaces</A></LI>
<LI><A HREF=#5_2>5.2 Filter Interfaces</A></LI>
</UL>
<B><A HREF=#6>A Glossary</A></B>
<B><A HREF=#5>5 5 - Directories</A></B>
<BR>
<BR><B><A HREF=#6>A Glossary</A></B>
<UL>
<LI><A HREF=#6_1>A.1 Terms</A></LI>
<LI><A HREF=#6_2>A.2 Acronyms</A></LI>
@@ -69,15 +84,15 @@ Copyright 1997-1999, All Rights Reserved<BR>
<HR>
<H1><A NAME=1>1 Scope</A></H1>
<H2><A NAME=1_1>1.1 Identification</A></H2>
This interface design description document provides detailed file
<P>This interface design description document provides detailed file
formats, message formats, and program conventions for the Common UNIX
Printing System (&quot;CUPS&quot;) Version 1.0.
Printing System (&quot;CUPS&quot;) Version 1.0. </P>
<H2><A NAME=1_2>1.2 System Overview</A></H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
<P>The Common UNIX Printing System provides a portable printing layer
for UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line
interfaces.
interfaces. </P>
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for
managing print jobs and queues. The Line Printer Daemon (LPD, RFC1179),
Server Message Block (SMB), and AppSocket protocols are also supported
@@ -85,20 +100,23 @@ with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
This interface design description document is organized into the
following sections:
<P>This interface design description document is organized into the
following sections: </P>
<UL>
<LI>1 - Scope </LI>
<LI>2 - References </LI>
<LI>3 - Internal Interfaces </LI>
<LI>4 - External Interfaces </LI>
<LI>5 - Command-Line Interfaces </LI>
<LI>5 - Directories </LI>
<LI>A - Glossary </LI>
</UL>
<H1><A NAME=2>2 References</A></H1>
<H2><A NAME=2_1>2.1 CUPS Documentation</A></H2>
The following CUPS documentation is referenced by this document:
<P>The following CUPS documentation is referenced by this document: </P>
<UL>
<LI>CUPS-CMP-1.0: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.0: CUPS System Interface Design Description </LI>
@@ -111,7 +129,7 @@ following sections:
<LI>CUPS-SVD-1.0.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME=2_2>2.2 Other Documents</A></H2>
The following non-CUPS documents are referenced by this document:
<P>The following non-CUPS documents are referenced by this document: </P>
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft) </LI>
<LI>IPP/1.0: Additional Optional Operations - Set 1 </LI>
@@ -122,28 +140,282 @@ following sections:
</UL>
<H1><A NAME=3>3 Internal Interfaces</A></H1>
<H2><A NAME=3_1>3.1 Character Set Files</A></H2>
<P>The character set files define a mapping between 8-bit characters
and the Unicode character set. They are named using the ISO standard
number defined for the character set. Each file consists of up to 256
lines of ASCII text. Each line consists of two hexadecimal numbers; the
first number is the character number in the character set (0x00 to
0xff), and the second number is the Unicode character number (0x0000 to
0xffff). </P>
<H2><A NAME=3_2>3.2 Language Files</A></H2>
<P>The language files define the default character set and a collection
of text messages in that language. They are named by prefixing the
string &quot;cups_&quot; to the front of the language specifier (e.g. &quot;cups_en&quot;,
&quot;cups_fr&quot;, etc.) Each file consists of two or more lines of ASCII text. </P>
<P>The first line identifies the character set to be used for the
messages. The currently recognized values are: </P>
<UL>
<LI>us-ascii </LI>
<LI>utf-8 </LI>
<LI>iso-8859-1 </LI>
<LI>iso-8859-2 </LI>
<LI>iso-8859-3 </LI>
<LI>iso-8859-4 </LI>
<LI>iso-8859-5 </LI>
<LI>iso-8859-6 </LI>
<LI>iso-8859-7 </LI>
<LI>iso-8859-8 </LI>
<LI>iso-8859-9 </LI>
<LI>iso-8859-14 </LI>
<LI>iso-8859-15 </LI>
</UL>
<P>The second and succeeding lines define text messages. If the message
text is preceded by a number, then the current message number is
updated and the text after the number is used. </P>
<H2><A NAME=3_3>3.3 MIME Files</A></H2>
<P>CUPS uses two MIME files in its standard configuration. </P>
<H3><A NAME=3_3_1>3.3.1 mime.types</A></H3>
<P>The mime.types file defines the recognized file types and consists
of 1 or more lines of ASCII text. Comment lines start with the pound
(&quot;#&quot;) character. The backslash (&quot;\&quot;) character can be used at the end
of a line to continue that line to the next. </P>
<P>Each non-blank line starts with a MIME type identifier
(&quot;super/type&quot;) as registered with the IANA. All text following the MIME
type is treated as a series of type recognition rules: </P>
<UL>
<PRE>
mime-type := super &quot;/&quot; type { SP rule }*
super := { &quot;a-z&quot; | &quot;A-Z&quot; }*
type := { &quot;a-z&quot; | &quot;A-Z&quot; | &quot;-&quot; | &quot;.&quot; | &quot;0-9&quot; }*
rule := { extension | match | operator | &quot;(&quot; rule &quot;)&quot; }*
extension := { &quot;a-z&quot; | &quot;A-Z&quot; | &quot;0-9&quot; }*
match := &quot;match(&quot; regexp &quot;)&quot; |
&quot;ascii(&quot; offset &quot;,&quot; length &quot;)&quot; |
&quot;printable(&quot; offset &quot;,&quot; length &quot;)&quot; |
&quot;string(&quot; offset &quot;,&quot; string &quot;)&quot; |
&quot;char(&quot; offset &quot;,&quot; value &quot;)&quot; |
&quot;short(&quot; offset &quot;,&quot; value &quot;)&quot; |
&quot;int(&quot; offset &quot;,&quot; value &quot;)&quot; |
&quot;locale(&quot; string &quot;)&quot;
operator := &quot;+&quot; | [ logical AND ]
&quot;,&quot; | SP [ logical OR ]
&quot;!&quot; [ unary NOT ]
</PRE>
</UL>
<H3><A NAME=3_3_2>3.3.2 mime.convs</A></H3>
<H2><A NAME=3_4>3.4 PPD Files</A></H2>
<P>The mime.types file defines the recognized file filters and consists
of 1 or more lines of ASCII text. Comment lines start with the pound
(&quot;#&quot;) character. </P>
<P>Each non-blank line starts with two MIME type identifiers
(&quot;super/type&quot;) representing the source and destination types. Following
the MIME types are a cost value (0 to 100) and the filter program to
use. If the filter program is not specified using the full path then it
must reside in the CUPS filter directory. </P>
<H2><A NAME=3_4>3.4 PostScript Printer Description Files</A></H2>
<P>The PostScript Printer Description (PPD) file format is described in <A
HREF=http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf>
Adobe TechNote #5003: PostScript Printer Description File Format
Specification Version 4.3</A>. </P>
<H3><A NAME=3_4_1>3.4.1 CUPS Extensions to PPD Files</A></H3>
<P>CUPS adds several new attributes that are described below. </P>
<H4>3.4.1.1 cupsFilter</H4>
<P>This string attribute provides a conversion rule of the form: </P>
<UL>
<PRE>
source/type cost program
</PRE>
</UL>
<P>The destination type is assumed to the printer's type. If a printer
supports the source type directly the special filter program &quot;-&quot; may be
used. </P>
<H4>3.4.1.2 cupsManualCopies</H4>
<P>This boolean attribute notifies the RIP filters that the destination
printer does not support copy generation in hardware. The default value
is false. </P>
<H4>3.4.1.3 cupsModelNumber</H4>
<P>This integer attribute specifies a printer-specific model number.
This number can be used by a filter program to adjust the output for a
specific model of printer. </P>
<H4>3.4.1.4 cupsProfile</H4>
<P>This string attribute specifies a color profile of the form: </P>
<UL>
<PRE>
resolution/type density m00 m01 m02 m10 m11 m12 m20 m21 m22
</PRE>
</UL>
<P>The <I>resolution</I> and <I>type</I> values may be &quot;-&quot; to act as a
wildcard. Otherwise they must match one of the <CODE>Resolution</CODE>
or <CODE>MediaType</CODE> attributes defined in the PPD file. </P>
<P>The <I>density</I> value defines a gamma and density adjustment
function such that: </P>
<UL>
<PRE>
f(x) = d * x<SUP>1/d</SUP>
</PRE>
</UL>
<P>The <I>m00</I> through <I>m22</I> values define a 3x3 transformation
matrix for the CMY color values. The density function is applied <I>
after</I> the CMY transformation. </P>
<H4>3.4.1.5 cupsVersion</H4>
<P>This required attribute describes which version of the CUPS IDD was
used for the PPD file extensions. Currently it must be the string
&quot;1.0&quot;. </P>
<H2><A NAME=3_5>3.5 Scheduler Configuration Files</A></H2>
<H3><A NAME=3_5_1>3.5.1 cupsd.conf</A></H3>
<H3><A NAME=3_5_2>3.5.2 printers.conf</A></H3>
<H3><A NAME=3_5_3>3.5.3 classes.conf</A></H3>
<P>The scheduler reads three configuration files that define the
available printers, classes, and services: </P>
<DL>
<DT>classes.conf </DT>
<DD>This file defines all of the printer classes known to the system. </DD>
<DT>cupsd.conf </DT>
<DD>This file defines the files, directories, passwords, etc. used by
the scheduler. </DD>
<DT>printers.conf </DT>
<DD>This file defines all of the printers known to the system. </DD>
</DL>
<H3><A NAME=3_5_1>3.5.1 classes.conf</A></H3>
<P>The classes.conf file consists of 1 or more lines of ASCII text.
Comment lines start with the pound (&quot;#&quot;) character. </P>
<P>Each non-blank line starts with the name of a configuration
directive followed by its value. The following directives are
understood:
<CENTER>
<TABLE BORDER=1 WIDTH=90%>
<TR><TH WIDTH=25%>Directive</TH><TH>Description</TH></TR>
<TR><TD>&lt;Class name&gt;
<BR> &lt;/Class&gt;</TD><TD></TR>
<TR><TD>&lt;DefaultClass name&gt;
<BR> &lt;/Class&gt;</TD><TD></TR>
<TR><TD>Info</TD><TD></TR>
<TR><TD>Location</TD><TD></TR>
<TR><TD>MoreInfo</TD><TD></TR>
<TR><TD>Printer</TD><TD></TR>
</TABLE>
</CENTER>
</P>
<H3><A NAME=3_5_2>3.5.2 cupsd.conf</A></H3>
<P>The cupsd.conf file consists of 1 or more lines of ASCII text.
Comment lines start with the pound (&quot;#&quot;) character. </P>
<P>Each non-blank line starts with the name of a configuration
directive followed by its value. The following directives are
understood:
<CENTER>
<TABLE BORDER=1 WIDTH=90%>
<TR><TH WIDTH=25%>Directive</TH><TH>Description</TH></TR>
<TR><TD>AccessLog</TD><TD>Specifies the location of the access log file
(default &quot;logs/access_log&quot;).</TD></TR>
<TR><TD>Allow</TD><TD></TR>
<TR><TD>AuthClass</TD><TD></TR>
<TR><TD>AuthType</TD><TD></TR>
<TR><TD>BrowseAddress</TD><TD></TR>
<TR><TD>BrowseInterval</TD><TD></TR>
<TR><TD>BrowsePort</TD><TD></TR>
<TR><TD>BrowseTimeout</TD><TD></TR>
<TR><TD>Browsing</TD><TD></TR>
<TR><TD>DefaultCharset</TD><TD></TR>
<TR><TD>DefaultLanguage</TD><TD></TR>
<TR><TD>Deny</TD><TD></TR>
<TR><TD>DocumentRoot</TD><TD></TR>
<TR><TD>ErrorLog</TD><TD></TR>
<TR><TD>Group</TD><TD></TR>
<TR><TD>HostNameLookups</TD><TD></TR>
<TR><TD>ImplicitClasses</TD><TD></TR>
<TR><TD>KeepAlive</TD><TD></TR>
<TR><TD>KeepAliveTimeout</TD><TD></TR>
<TR><TD>&lt;Location path&gt;
<BR> &lt;/Location&gt;</TD><TD></TR>
<TR><TD>LogLevel</TD><TD></TR>
<TR><TD>MaxLogSize</TD><TD></TR>
<TR><TD>MaxRequestSize</TD><TD></TR>
<TR><TD>Order</TD><TD></TR>
<TR><TD>PageLog</TD><TD></TR>
<TR><TD>Port</TD><TD></TR>
<TR><TD>RIPCache</TD><TD></TR>
<TR><TD>ServerAdmin</TD><TD></TR>
<TR><TD>ServerName</TD><TD></TR>
<TR><TD>ServerRoot</TD><TD></TR>
<TR><TD>SystemGroup</TD><TD></TR>
<TR><TD>Timeout</TD><TD></TR>
<TR><TD>User</TD><TD></TR>
</TABLE>
</CENTER>
</P>
<H3><A NAME=3_5_3>3.5.3 printers.conf</A></H3>
<P>The printers.conf file consists of 1 or more lines of ASCII text.
Comment lines start with the pound (&quot;#&quot;) character. </P>
<P>Each non-blank line starts with the name of a configuration
directive followed by its value. The following directives are
understood:
<CENTER>
<TABLE BORDER=1 WIDTH=90%>
<TR><TH WIDTH=25%>Directive</TH><TH>Description</TH></TR>
<TR><TD>&lt;DefaultPrinter name&gt;
<BR> &lt;/Printer&gt;</TD><TD></TR>
<TR><TD>DeviceURI</TD><TD></TR>
<TR><TD>Info</TD><TD></TR>
<TR><TD>Location</TD><TD></TR>
<TR><TD>MoreInfo</TD><TD></TR>
<TR><TD>&lt;Printer name&gt;
<BR> &lt;/Printer&gt;</TD><TD></TR>
<TR><TD>State</TD><TD></TR>
</TABLE>
</CENTER>
</P>
<H1><A NAME=4>4 External Interfaces</A></H1>
<H2><A NAME=4_1>4.1 Application Socket Protocol</A></H2>
<H2><A NAME=4_1>4.1 AppSocket Protocol</A></H2>
<P>The AppSocket protocol is an 8-bit clean TCP/IP socket connection.
The default IP service port is 9100. </P>
<H2><A NAME=4_2>4.2 CUPS Browsing Protocol</A></H2>
<P>The CUPS Browsing Protocol is a UDP/IP-based broadcast service. By
default this service operates on IP service port 631. </P>
<P>Each broadcast packet describes the state of a single printer or
class and is an ASCII text string of up to 1450 bytes ending with a
newline (0x0a). The string is formatted as follows: </P>
<UL>
<PRE>
type SP state SP uri NL
</PRE>
</UL>
<P>The <I>state</I> and <I>uri</I> values correspond to the IPP <CODE>
printer-state</CODE> and <CODE>printer-uri-supported</CODE> attributes. </P>
<P>The <I>type</I> value is a hexadecimal number string representing
capability/type bits:
<CENTER>
<TABLE BORDER=1 WIDTH=40%>
<TR><TH WIDTH=8%>Bit</TH><TH>Description</TH></TR>
<TR><TD>0</TD><TD>0 = printer
<BR> 1 = class</TD></TR>
<TR><TD>1</TD><TD>0 = local
<BR> 1 = remote</TD></TR>
<TR><TD>2</TD><TD>1 = can print B</TD></TR>
<TR><TD>3</TD><TD>1 = can print color</TD></TR>
<TR><TD>4</TD><TD>1 = can duplex</TD></TR>
<TR><TD>5</TD><TD>1 = can staple</TD></TR>
<TR><TD>6</TD><TD>1 = can do fast copies</TD></TR>
<TR><TD>7</TD><TD>1 = can do fast collating</TD></TR>
<TR><TD>8</TD><TD>1 = can punch holes</TD></TR>
<TR><TD>9</TD><TD>1 = can cover</TD></TR>
<TR><TD>10</TD><TD>1 = can bind</TD></TR>
<TR><TD>11</TD><TD>1 = can sort</TD></TR>
<TR><TD>12</TD><TD>1 = can print up to 9x14 inches</TD></TR>
<TR><TD>13</TD><TD>1 = can print up to 18x24 inches</TD></TR>
<TR><TD>14</TD><TD>1 = can print up to 36x48 inches</TD></TR>
<TR><TD>15</TD><TD>1 = can print variable sizes</TD></TR>
</TABLE>
</CENTER>
</P>
<H2><A NAME=4_3>4.3 CUPS PostScript File</A></H2>
CUPS PostScript files are device-dependent Adobe PostScript program
files. The PostScript language is described in the PostScript Language
Reference Manual, Third Edition.
<P>CUPS PostScript files are device-dependent Adobe PostScript program
files. The PostScript language is described in the <A HREF=http://partners.adobe.com/supportservice/devrelations/PDFS/TN/PLRM.pdf>
Adobe PostScript Language Reference Manual, Third Edition</A>. </P>
<P>The MIME type for CUPS PostScript files is <CODE>
application/vnd.cups-postscript</CODE>. </P>
<H2><A NAME=4_4>4.4 CUPS Raster File</A></H2>
CUPS raster files are device-dependent raster image files that contain
a PostScript page device dictionary and device-dependent raster imagery
for each page in the document. These files are used to transfer raster
data from the PostScript and image file RIPs to device-dependent
filters that convert the raster data to a printable format.
<P>CUPS raster files are device-dependent raster image files that
contain a PostScript page device dictionary and device-dependent raster
imagery for each page in the document. These files are used to
transfer raster data from the PostScript and image file RIPs to
device-dependent filters that convert the raster data to a printable
format. </P>
<P>A raster file begins with a four byte synchronization word:
0x52615374 (&quot;RaSt&quot;) for big-endian architectures and 0x74536152
(&quot;tSaR&quot;) for little-endian architectures. The writer of the raster
@@ -156,7 +428,8 @@ automatically. </P>
immediately by the raster data for that page.
<CENTER>
<TABLE BORDER=1 WIDTH=80%>
<TR><TH>Bytes</TH><TH>Description</TH><TH>Values</TH></TR>
<TR><TH WIDTH=10%>Bytes</TH><TH WIDTH=20%>Description</TH><TH>Values</TH>
</TR>
<TR><TD>0-63</TD><TD>MediaClass</TD><TD>Nul-terminated ASCII string</TD></TR>
<TR><TD>64-127</TD><TD>MediaColor</TD><TD>Nul-terminated ASCII string</TD>
</TR>
@@ -165,7 +438,7 @@ immediately by the raster data for that page.
<TR><TD>192-255</TD><TD>OutputType</TD><TD>Nul-terminated ASCII string</TD>
</TR>
<TR><TD>256-259</TD><TD>AdvanceDistance</TD><TD>0 to 2<SUP>32</SUP> - 1
pixels</TD></TR>
points</TD></TR>
<TR><TD>260-263</TD><TD>AdvanceMedia</TD><TD>0 = Never advance roll
<BR> 1 = Advance roll after file
<BR> 2 = Advance roll after job
@@ -184,7 +457,7 @@ pixels</TD></TR>
resolution in dots-per-inch.</TD></TR>
<TR><TD>284-299</TD><TD>ImagingBoundingBox</TD><TD>Four integers giving
the left, bottom, right, and top positions of the page bounding box in
pixels</TD></TR>
points</TD></TR>
<TR><TD>300-303</TD><TD>InsertSheet</TD><TD>0 = Do not insert separator
sheets
<BR> 1 = Insert separator sheets</TD></TR>
@@ -197,7 +470,7 @@ sheets
<BR> 2 = Bottom edge is first
<BR> 3 = Left edge is first</TD></TR>
<TR><TD>312-319</TD><TD>Margins</TD><TD>Left and bottom origin of image
in pixels</TD></TR>
in points</TD></TR>
<TR><TD>320-323</TD><TD>ManualFeed</TD><TD>0 = Do not manually feed
media
<BR> 1 = Manually feed media</TD></TR>
@@ -207,24 +480,211 @@ media
meter squared</TD></TR>
<TR><TD>332-335</TD><TD>MirrorPrint</TD><TD>0 = Do not mirror prints
<BR> 1 = Mirror prints</TD></TR>
<TR><TD>336-339</TD><TD>NegativePrint</TD><TD></TR>
<TR><TD><TD><TD></TR>
<TR><TD><TD><TD></TR>
<TR><TD><TD><TD></TR>
<TR><TD><TD><TD></TR>
<TR><TD><TD><TD></TR>
<TR><TD>336-339</TD><TD>NegativePrint</TD><TD>0 = Do not invert prints
<BR> 1 = Invert prints</TD></TR>
<TR><TD>340-343</TD><TD>NumCopies</TD><TD>1 to 2<SUP>32</SUP> - 1</TD></TR>
<TR><TD>344-347</TD><TD>Orientation</TD><TD>0 = Do not rotate page
<BR> 1 = Rotate page counter-clockwise
<BR> 2 = Turn page upside down
<BR> 3 = Rotate page clockwise</TD></TR>
<TR><TD>348-351</TD><TD>OutputFaceUp</TD><TD>0 = Output face down
<BR> 1 = Output face up</TD></TR>
<TR><TD>352-359</TD><TD>PageSize</TD><TD>Width and length in points</TD></TR>
<TR><TD>360-363</TD><TD>Separations</TD><TD>0 = Print composite image
<BR> 1 = Print color separations</TD></TR>
<TR><TD>364-367</TD><TD>TraySwitch</TD><TD>0 = Do not change trays if
selected tray is empty
<BR> 1 = Change trays if selected tray is empty</TD></TR>
<TR><TD>368-371</TD><TD>Tumble</TD><TD>0 = Do not rotate even pages
when duplexing
<BR> 1 = Rotate even pages when duplexing</TD></TR>
<TR><TD>372-375</TD><TD>cupsWidth</TD><TD>Width of page image in pixels</TD>
</TR>
<TR><TD>376-379</TD><TD>cupsHeight</TD><TD>Height of page image in
pixels</TD></TR>
<TR><TD>380-383</TD><TD>cupsMediaType</TD><TD>Driver-specific 0 to 2<SUP>
32</SUP> - 1</TD></TR>
<TR><TD>384-387</TD><TD>cupsBitsPerColor</TD><TD>1, 2, 4, 8 bits</TD></TR>
<TR><TD>388-391</TD><TD>cupsBitsPerPixel</TD><TD>1 to 32 bits</TD></TR>
<TR><TD>392-395</TD><TD>cupsBytesPerLine</TD><TD>1 to 2<SUP>32</SUP> -
1 bytes</TD></TR>
<TR><TD>396-399</TD><TD>cupsColorOrder</TD><TD>0 = chunky pixels (CMYK
CMYK CMYK)
<BR> 1 = banded pixels (CCC MMM YYY KKK)
<BR> 2 = planar pixels (CCC... MMM... YYY... KKK...)</TD></TR>
<TR><TD>400-403</TD><TD>cupsColorSpace</TD><TD>0 = white
<BR> 1 = RGB
<BR> 2 = RGBA
<BR> 3 = black
<BR> 4 = CMY
<BR> 5 = YMC
<BR> 6 = CMYK
<BR> 7 = YMCK
<BR> 8 = KCMY
<BR> 9 = KCMYcm</TD></TR>
<TR><TD>404-407</TD><TD>cupsCompression</TD><TD>Driver-specific 0 to 2<SUP>
32</SUP> - 1</TD></TR>
<TR><TD>408-411</TD><TD>cupsRowCount</TD><TD>Driver-specific 0 to 2<SUP>
32</SUP> - 1</TD></TR>
<TR><TD>412-415</TD><TD>cupsRowFeed</TD><TD>Driver-specific 0 to 2<SUP>
32</SUP> - 1</TD></TR>
<TR><TD>416-419</TD><TD>cupsRowStep</TD><TD>Driver-specific 0 to 2<SUP>
32</SUP> - 1</TD></TR>
</TABLE>
</CENTER>
</P>
<H2><A NAME=4_5>4.5 Internet Printing Protocol</A></H2>
<H2><A NAME=4_6>4.6 Line Printer Daemon Protocol</A></H2>
<H2><A NAME=4_7>4.7 Parallel Device</A></H2>
<H2><A NAME=4_8>4.8 Serial Device</A></H2>
<P>The MIME type for CUPS Raster files is <CODE>
application/vnd.cups-raster</CODE>. </P>
<H2><A NAME=4_5>4.5 CUPS Raw Files</A></H2>
<P>Raw files are printer-dependent print files that are in a format
suitable to the destination printer (e.g. HP-PCL, HP-RTL, etc.) The
MIME type for CUPS Raw files is <CODE>application/vnd.cups-raw</CODE>. </P>
<H2><A NAME=4_6>4.6 File Transfer Protocol</A></H2>
<P>The File Transfer Protocol (FTP) is described by <A HREF=http://www.ietf.org/rfc/rfc959.txt>
RFC 959: File Transfer Protocol</A>. </P>
<H2><A NAME=4_7>4.7 Internet Printing Protocol</A></H2>
<P>The Internet Printing Protocol is described by the following RFCs: </P>
<UL>
<LI><A HREF=http://www.ietf.org/rfc/rfc2565.txt>RFC 2565: Internet
Printing Protocol/1.0: Encoding and Transport</A></LI>
<LI><A HREF=http://www.ietf.org/rfc/rfc2566.txt>RFC 2566: Internet
Printing Protocol/1.0: Model and Semantics</A></LI>
<LI><A HREF=http://www.ietf.org/rfc/rfc2567.txt>RFC 2567: Design Goals
for an Internet Printing Protocol</A></LI>
<LI><A HREF=http://www.ietf.org/rfc/rfc2568.txt>RFC 2568: Rationale for
the Structure of the Model and Protocol for the Internet Printing
Protocol</A></LI>
<LI><A HREF=http://www.ietf.org/rfc/rfc2569.txt>RFC 2569: Mapping
between LPD and IPP Protocols</A></LI>
</UL>
<P>CUPS defines the following extension operations to IPP. </P>
<H3><A NAME=4_7_1>4.7.1 Get Default Destination (CUPS_GET_DEFAULT =
0x4001)</A></H3>
<P>The get default destination operation returns the printer attributes
for the system default printer or class. The only required attributes
are <CODE>attributes-charset</CODE> and <CODE>
attributes-natural-language</CODE>. </P>
<P>Get default destination will only return <CODE>ipp-ok</CODE>. </P>
<H3><A NAME=4_7_2>4.7.2 Get Printers (CUPS_GET_PRINTERS = 0x4002)</A></H3>
<P>The get printers operation returns the printer attributes for all
printers known to the system. The only required attributes are <CODE>
attributes-charset</CODE> and <CODE>attributes-natural-language</CODE>. </P>
<P>Get printers will only return <CODE>ipp-ok</CODE>. </P>
<H3><A NAME=4_7_3>4.7.3 Add Printer (CUPS_ADD_PRINTER = 0x4003)</A></H3>
<P>The add printer operation adds or replaces the specified printer.
The <CODE>attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>
and <CODE>printer-uri</CODE> attributes are required. </P>
<P>The <CODE>printer-location</CODE>, <CODE>printer-info</CODE>, <CODE>
printer-more-info</CODE>, and <CODE>device-uri</CODE> attributes are
required when initially adding a printer and optional when modifying a
printer. </P>
<P>A PPD file or System V interface script may follow the IPP request
body. Note that the printer will be disabled until a valid interface
script or PPD file is sent. </P>
<P>Add printer will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-authorized</CODE>
, <CODE>ipp-bad-request</CODE>, or <CODE>ipp-attributes</CODE>. </P>
<H3><A NAME=4_7_4>4.7.4 Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</A>
</H3>
<P>The delete printer operation removes the specified printer. The only
required attributes are <CODE>attributes-charset</CODE>, <CODE>
attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>. </P>
<P>Delete printer will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_7_5>4.7.5 Get Classes (CUPS_GET_CLASSES = 0x4005)</A></H3>
<P>The get classes operation returns the printer attributes for all
classes known to the system. The only required attributes are <CODE>
attributes-charset</CODE> and <CODE>attributes-natural-language</CODE>. </P>
<P>Get classes will only return <CODE>ipp-ok</CODE>. </P>
<H3><A NAME=4_7_6>4.7.6 Add Class (CUPS_ADD_CLASS = 0x4006)</A></H3>
<P>The add class operation adds or replaces the specified class. The <CODE>
attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>,
and <CODE>printer-uri</CODE> attributes are required. </P>
<P>The <CODE>printer-location</CODE>, <CODE>printer-info</CODE>, <CODE>
printer-more-info</CODE>, and <CODE>member-uris</CODE> attributes are
required when initially adding a printer and optional when modifying a
printer. </P>
<P>Add class will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-authorized</CODE>
, <CODE>ipp-bad-request</CODE>, or <CODE>ipp-attributes</CODE>. </P>
<H3><A NAME=4_7_7>4.7.7 Delete Class (CUPS_DELETE_CLASS = 0x4007)</A></H3>
<P>The delete class operation removes the specified class. The only
required attributes are <CODE>attributes-charset</CODE>, <CODE>
attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>. </P>
<P>Delete class will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_7_8>4.7.8 Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</A></H3>
<P>The accept jobs operation allows jobs to be accepted by the
specified destination. The only required attributes are <CODE>
attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>,
and <CODE>printer-uri</CODE>. </P>
<P>Accept jobs will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_7_9>4.7.9 Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</A></H3>
<P>The reject jobs operation prevents jobs from being accepted by the
specified destination. The only required attributes are <CODE>
attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>,
and <CODE>printer-uri</CODE>. </P>
<P>Reject jobs will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_7_10>4.7.10 Set Default Destination (CUPS_SET_DEFAULT =
0x400A)</A></H3>
<P>The set default destination operation returns the printer attributes
for the system default printer or class. The only required attributes
are <CODE>attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>
, and <CODE>printer-uri</CODE>. </P>
<P>Set default destination will return <CODE>ipp-ok</CODE>, <CODE>
ipp-not-authorized</CODE>, <CODE>ipp-bad-request</CODE>, or <CODE>
ipp-not-found</CODE>. </P>
<H2><A NAME=4_8>4.8 Line Printer Daemon Protocol</A></H2>
<P>The Line Printer Daemon (LPD) protocol is described by <A HREF=http://www.ietf.org/rfc/rfc1179.txt>
RFC 1179: Line Printer Daemon Protocol</A>. </P>
<H2><A NAME=4_9>4.9 Server Message Block Protocol</A></H2>
<P>The Server Message Block (SMB) and related Common Internet File
System (CIFS) protocols are described at <A HREF=http://anu.samba.org/cifs>
http://anu.samba.org/cifs</A>. </P>
<H2><A NAME=4_10>4.10 Trivial File Transfer Protocol</A></H2>
<H1><A NAME=5>5 Command-Line Interfaces</A></H1>
<H2><A NAME=5_1>5.1 Backend Interfaces</A></H2>
<H2><A NAME=5_2>5.2 Filter Interfaces</A></H2>
<P>The Trivial File Transfer Protocol (TFTP) is described by <A HREF=http://www.ietf.org/rfc/rfc1350.txt>
RFC 1350: The TFTP Protocol (Revision 2)</A>. </P>
<H1><A NAME=5>5 5 - Directories</A></H1>
<DL>
<DT>/usr/bin </DT>
<DD>The <CODE>cancel</CODE>, <CODE>lp</CODE>, <CODE>lpq</CODE>, <CODE>
lpr</CODE>, <CODE>lprm</CODE>, and <CODE>lpstat</CODE> commands reside
here. </DD>
<DT>/usr/lib </DT>
<DD>The <CODE>accept</CODE>, <CODE>disable</CODE>, <CODE>enable</CODE>, <CODE>
lpadmin</CODE>, and <CODE>reject</CODE> commands reside here. </DD>
<DT>/usr/sbin </DT>
<DD>The <CODE>lpc</CODE> and <CODE>cupsd</CODE> commands resize here. </DD>
<DT>/usr/share/cups </DT>
<DD>The character set and filter data files reside here. </DD>
<DT>/usr/share/cups/fonts </DT>
<DD>The <CODE>pstoraster</CODE> font files reside here. </DD>
<DT>/usr/share/cups/model </DT>
<DD>The sample PPD files reside here. </DD>
<DT>/usr/share/cups/pstoraster </DT>
<DD>The <CODE>pstoraster</CODE> data files reside here. </DD>
<DT>/var/cups </DT>
<DD>This is the root directory of the CUPS scheduler. </DD>
<DT>/var/cups/backend </DT>
<DD>The backend filters reside here. </DD>
<DT>/var/cups/cgi-bin </DT>
<DD>The CGI programs reside here. </DD>
<DT>/var/cups/conf </DT>
<DD>The scheduler configuration and MIME files reside here. </DD>
<DT>/var/cups/doc </DT>
<DD>The scheduler documentation files reside here. </DD>
<DT>/var/cups/filter </DT>
<DD>The file filters reside here. </DD>
<DT>/var/cups/interfaces </DT>
<DD>System V interface scripts reside here. </DD>
<DT>/var/cups/logs </DT>
<DD>The <CODE>access_log</CODE>, <CODE>error_log</CODE>, and <CODE>
page_log</CODE> files reside here. </DD>
<DT>/var/cups/ppd </DT>
<DD>This directory contains PPD files for each printer. </DD>
<DT>/var/cups/requests </DT>
<DD>This directory contains pending print job files. </DD>
</DL>
<H1 TYPE=A VALUE=1><A NAME=6>A Glossary</A></H1>
<H2><A NAME=6_1>A.1 Terms</A></H2>
<DL>
+1449 -650
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+827 -41
Ver Arquivo
@@ -11,13 +11,13 @@
<H2>Identification</H2>
This interface design description document provides detailed file
<P>This interface design description document provides detailed file
formats, message formats, and program conventions for the Common UNIX
Printing System ("CUPS") Version 1.0.
<H2>System Overview</H2>
The Common UNIX Printing System provides a portable printing layer for
<P>The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line interfaces.
@@ -31,9 +31,13 @@ supported with reduced functionality.
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
This interface design description document is organized into the following
<P>This interface design description document is organized into the following
sections:
<UL>
@@ -41,7 +45,7 @@ sections:
<LI>2 - References
<LI>3 - Internal Interfaces
<LI>4 - External Interfaces
<LI>5 - Command-Line Interfaces
<LI>5 - Directories
<LI>A - Glossary
</UL>
@@ -49,7 +53,7 @@ sections:
<H2>CUPS Documentation</H2>
The following CUPS documentation is referenced by this document:
<P>The following CUPS documentation is referenced by this document:
<UL>
<LI>CUPS-CMP-1.0: CUPS Configuration Management Plan
@@ -65,7 +69,7 @@ The following CUPS documentation is referenced by this document:
<H2>Other Documents</H2>
The following non-CUPS documents are referenced by this document:
<P>The following non-CUPS documents are referenced by this document:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft)
@@ -80,39 +84,518 @@ The following non-CUPS documents are referenced by this document:
<H2>Character Set Files</H2>
<P>The character set files define a mapping between 8-bit characters
and the Unicode character set. They are named using the ISO standard
number defined for the character set. Each file consists of up to 256
lines of ASCII text. Each line consists of two hexadecimal numbers; the
first number is the character number in the character set (0x00 to
0xff), and the second number is the Unicode character number (0x0000 to
0xffff).
<H2>Language Files</H2>
<P>The language files define the default character set and a collection of
text messages in that language. They are named by prefixing the string "cups_"
to the front of the language specifier (e.g. "cups_en", "cups_fr", etc.) Each
file consists of two or more lines of ASCII text.
<P>The first line identifies the character set to be used for the messages.
The currently recognized values are:
<UL>
<LI>us-ascii
<LI>utf-8
<LI>iso-8859-1
<LI>iso-8859-2
<LI>iso-8859-3
<LI>iso-8859-4
<LI>iso-8859-5
<LI>iso-8859-6
<LI>iso-8859-7
<LI>iso-8859-8
<LI>iso-8859-9
<LI>iso-8859-14
<LI>iso-8859-15
</UL>
<P>The second and succeeding lines define text messages. If the message text
is preceded by a number, then the current message number is updated and the
text after the number is used.
<H2>MIME Files</H2>
<P>CUPS uses two MIME files in its standard configuration.
<H3>mime.types</H3>
<P>The mime.types file defines the recognized file types and consists
of 1 or more lines of ASCII text. Comment lines start with the pound
("#") character. The backslash ("\") character can be used at the end
of a line to continue that line to the next.
<P>Each non-blank line starts with a MIME type identifier ("super/type")
as registered with the IANA. All text following the MIME type is treated as
a series of type recognition rules:
<UL><PRE>
mime-type := super "/" type { SP rule }*
super := { "a-z" | "A-Z" }*
type := { "a-z" | "A-Z" | "-" | "." | "0-9" }*
rule := { extension | match | operator | "(" rule ")" }*
extension := { "a-z" | "A-Z" | "0-9" }*
match := "match(" regexp ")" |
"ascii(" offset "," length ")" |
"printable(" offset "," length ")" |
"string(" offset "," string ")" |
"char(" offset "," value ")" |
"short(" offset "," value ")" |
"int(" offset "," value ")" |
"locale(" string ")"
operator := "+" | [ logical AND ]
"," | SP [ logical OR ]
"!" [ unary NOT ]
</PRE></UL>
<H3>mime.convs</H3>
<H2>PPD Files</H2>
<P>The mime.types file defines the recognized file filters and consists
of 1 or more lines of ASCII text. Comment lines start with the pound
("#") character.
<P>Each non-blank line starts with two MIME type identifiers ("super/type")
representing the source and destination types. Following the MIME types are
a cost value (0 to 100) and the filter program to use. If the filter program
is not specified using the full path then it must reside in the CUPS filter
directory.
<H2>PostScript Printer Description Files</H2>
<P>The PostScript Printer Description (PPD) file format is described in
<A HREF="http://partners.adobe.com/supportservice/devrelations/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
Adobe TechNote #5003: PostScript Printer Description File Format
Specification Version 4.3</A>.
<H3>CUPS Extensions to PPD Files</H3>
<P>CUPS adds several new attributes that are described below.
<H4>cupsFilter</H4>
<P>This string attribute provides a conversion rule of the form:
<UL><PRE>
source/type cost program
</PRE></UL>
<P>The destination type is assumed to the printer's type. If a printer
supports the source type directly the special filter program "-" may be used.
<H4>cupsManualCopies</H4>
<P>This boolean attribute notifies the RIP filters that the destination printer
does not support copy generation in hardware. The default value is false.
<H4>cupsModelNumber</H4>
<P>This integer attribute specifies a printer-specific model number. This number
can be used by a filter program to adjust the output for a specific model of
printer.
<H4>cupsProfile</H4>
<P>This string attribute specifies a color profile of the form:
<UL><PRE>
resolution/type density m00 m01 m02 m10 m11 m12 m20 m21 m22
</PRE></UL>
<P>The <I>resolution</I> and <I>type</I> values may be "-" to act as a
wildcard. Otherwise they must match one of the <CODE>Resolution</CODE> or
<CODE>MediaType</CODE> attributes defined in the PPD file.
<P>The <I>density</I> value defines a gamma and density adjustment function
such that:
<UL><PRE>
f(x) = d * x<SUP>1/d</SUP>
</PRE></UL>
<P>The <I>m00</I> through <I>m22</I> values define a 3x3 transformation
matrix for the CMY color values. The density function is applied <I>after</I>
the CMY transformation.
<H4>cupsVersion</H4>
<P>This required attribute describes which version of the CUPS IDD was used
for the PPD file extensions. Currently it must be the string "1.0".
<H2>Scheduler Configuration Files</H2>
<H3>cupsd.conf</H3>
<P>The scheduler reads three configuration files that define the available
printers, classes, and services:
<H3>printers.conf</H3>
<DL>
<DT>classes.conf
<DD>This file defines all of the printer classes known to the
system.
<DT>cupsd.conf
<DD>This file defines the files, directories, passwords, etc.
used by the scheduler.
<DT>printers.conf
<DD>This file defines all of the printers known to the system.
</DL>
<H3>classes.conf</H3>
<P>The classes.conf file consists of 1 or more lines of ASCII text.
Comment lines start with the pound ("#") character.
<P>Each non-blank line starts with the name of a configuration directive
followed by its value. The following directives are understood:
<CENTER><TABLE WIDTH="90%" BORDER="1">
<TR>
<TH WIDTH="25%">Directive</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>&lt;Class name&gt;<BR>
&lt;/Class&gt;</TD>
<TD></TD>
</TR>
<TR>
<TD>&lt;DefaultClass name&gt;<BR>
&lt;/Class&gt;</TD>
<TD></TD>
</TR>
<TR>
<TD>Info</TD>
<TD></TD>
</TR>
<TR>
<TD>Location</TD>
<TD></TD>
</TR>
<TR>
<TD>MoreInfo</TD>
<TD></TD>
</TR>
<TR>
<TD>Printer</TD>
<TD></TD>
</TR>
</TABLE></CENTER>
<H3>cupsd.conf</H3>
<P>The cupsd.conf file consists of 1 or more lines of ASCII text.
Comment lines start with the pound ("#") character.
<P>Each non-blank line starts with the name of a configuration directive
followed by its value. The following directives are understood:
<CENTER><TABLE WIDTH="90%" BORDER="1">
<TR>
<TH WIDTH="25%">Directive</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>AccessLog</TD>
<TD>Specifies the location of the access log file (default
"logs/access_log").</TD>
</TR>
<TR>
<TD>Allow</TD>
<TD></TD>
</TR>
<TR>
<TD>AuthClass</TD>
<TD></TD>
</TR>
<TR>
<TD>AuthType</TD>
<TD></TD>
</TR>
<TR>
<TD>BrowseAddress</TD>
<TD></TD>
</TR>
<TR>
<TD>BrowseInterval</TD>
<TD></TD>
</TR>
<TR>
<TD>BrowsePort</TD>
<TD></TD>
</TR>
<TR>
<TD>BrowseTimeout</TD>
<TD></TD>
</TR>
<TR>
<TD>Browsing</TD>
<TD></TD>
</TR>
<TR>
<TD>DefaultCharset</TD>
<TD></TD>
</TR>
<TR>
<TD>DefaultLanguage</TD>
<TD></TD>
</TR>
<TR>
<TD>Deny</TD>
<TD></TD>
</TR>
<TR>
<TD>DocumentRoot</TD>
<TD></TD>
</TR>
<TR>
<TD>ErrorLog</TD>
<TD></TD>
</TR>
<TR>
<TD>Group</TD>
<TD></TD>
</TR>
<TR>
<TD>HostNameLookups</TD>
<TD></TD>
</TR>
<TR>
<TD>ImplicitClasses</TD>
<TD></TD>
</TR>
<TR>
<TD>KeepAlive</TD>
<TD></TD>
</TR>
<TR>
<TD>KeepAliveTimeout</TD>
<TD></TD>
</TR>
<TR>
<TD>&lt;Location path&gt;<BR>
&lt;/Location&gt;</TD>
<TD></TD>
</TR>
<TR>
<TD>LogLevel</TD>
<TD></TD>
</TR>
<TR>
<TD>MaxLogSize</TD>
<TD></TD>
</TR>
<TR>
<TD>MaxRequestSize</TD>
<TD></TD>
</TR>
<TR>
<TD>Order</TD>
<TD></TD>
</TR>
<TR>
<TD>PageLog</TD>
<TD></TD>
</TR>
<TR>
<TD>Port</TD>
<TD></TD>
</TR>
<TR>
<TD>RIPCache</TD>
<TD></TD>
</TR>
<TR>
<TD>ServerAdmin</TD>
<TD></TD>
</TR>
<TR>
<TD>ServerName</TD>
<TD></TD>
</TR>
<TR>
<TD>ServerRoot</TD>
<TD></TD>
</TR>
<TR>
<TD>SystemGroup</TD>
<TD></TD>
</TR>
<TR>
<TD>Timeout</TD>
<TD></TD>
</TR>
<TR>
<TD>User</TD>
<TD></TD>
</TR>
</TABLE></CENTER>
<H3>printers.conf</H3>
<P>The printers.conf file consists of 1 or more lines of ASCII text.
Comment lines start with the pound ("#") character.
<P>Each non-blank line starts with the name of a configuration directive
followed by its value. The following directives are understood:
<CENTER><TABLE WIDTH="90%" BORDER="1">
<TR>
<TH WIDTH="25%">Directive</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>&lt;DefaultPrinter name&gt;<BR>
&lt;/Printer&gt;</TD>
<TD></TD>
</TR>
<TR>
<TD>DeviceURI</TD>
<TD></TD>
</TR>
<TR>
<TD>Info</TD>
<TD></TD>
</TR>
<TR>
<TD>Location</TD>
<TD></TD>
</TR>
<TR>
<TD>MoreInfo</TD>
<TD></TD>
</TR>
<TR>
<TD>&lt;Printer name&gt;<BR>
&lt;/Printer&gt;</TD>
<TD></TD>
</TR>
<TR>
<TD>State</TD>
<TD></TD>
</TR>
</TABLE></CENTER>
<H1>External Interfaces</H1>
<H2>Application Socket Protocol</H2>
<H2>AppSocket Protocol</H2>
<P>The AppSocket protocol is an 8-bit clean TCP/IP socket connection.
The default IP service port is 9100.
<H2>CUPS Browsing Protocol</H2>
<P>The CUPS Browsing Protocol is a UDP/IP-based broadcast service. By default
this service operates on IP service port 631.
<P>Each broadcast packet describes the state of a single printer or class and
is an ASCII text string of up to 1450 bytes ending with a newline (0x0a). The
string is formatted as follows:
<UL><PRE>
type SP state SP uri NL
</PRE></UL>
<P>The <I>state</I> and <I>uri</I> values correspond to the IPP
<CODE>printer-state</CODE> and <CODE>printer-uri-supported</CODE> attributes.
<P>The <I>type</I> value is a hexadecimal number string representing
capability/type bits:
<CENTER><TABLE WIDTH="40%" BORDER="1">
<TR>
<TH WIDTH="8%">Bit</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>0</TD>
<TD>0 = printer<BR>
1 = class</TD>
</TR>
<TR>
<TD>1</TD>
<TD>0 = local<BR>
1 = remote</TD>
</TR>
<TR>
<TD>2</TD>
<TD>1 = can print B&W</TD>
</TR>
<TR>
<TD>3</TD>
<TD>1 = can print color</TD>
</TR>
<TR>
<TD>4</TD>
<TD>1 = can duplex</TD>
</TR>
<TR>
<TD>5</TD>
<TD>1 = can staple</TD>
</TR>
<TR>
<TD>6</TD>
<TD>1 = can do fast copies</TD>
</TR>
<TR>
<TD>7</TD>
<TD>1 = can do fast collating</TD>
</TR>
<TR>
<TD>8</TD>
<TD>1 = can punch holes</TD>
</TR>
<TR>
<TD>9</TD>
<TD>1 = can cover</TD>
</TR>
<TR>
<TD>10</TD>
<TD>1 = can bind</TD>
</TR>
<TR>
<TD>11</TD>
<TD>1 = can sort</TD>
</TR>
<TR>
<TD>12</TD>
<TD>1 = can print up to 9x14 inches</TD>
</TR>
<TR>
<TD>13</TD>
<TD>1 = can print up to 18x24 inches</TD>
</TR>
<TR>
<TD>14</TD>
<TD>1 = can print up to 36x48 inches</TD>
</TR>
<TR>
<TD>15</TD>
<TD>1 = can print variable sizes</TD>
</TR>
</TABLE></CENTER>
<H2>CUPS PostScript File</H2>
CUPS PostScript files are device-dependent Adobe PostScript program files.
The PostScript language is described in the PostScript Language Reference
Manual, Third Edition.
<P>CUPS PostScript files are device-dependent Adobe PostScript program files.
The PostScript language is described in the
<A HREF="http://partners.adobe.com/supportservice/devrelations/PDFS/TN/PLRM.pdf">
Adobe PostScript Language Reference Manual, Third Edition</A>.
<P>The MIME type for CUPS PostScript files is
<CODE>application/vnd.cups-postscript</CODE>.
<H2>CUPS Raster File</H2>
CUPS raster files are device-dependent raster image files that contain a
<P>CUPS raster files are device-dependent raster image files that contain a
PostScript page device dictionary and device-dependent raster imagery for
each page in the document. These files are used to transfer raster data
from the PostScript and image file RIPs to device-dependent filters that
@@ -131,8 +614,8 @@ raster data for that page.
<CENTER><TABLE WIDTH="80%" BORDER="1">
<TR>
<TH>Bytes</TH>
<TH>Description</TH>
<TH WIDTH="10%">Bytes</TH>
<TH WIDTH="20%">Description</TH>
<TH>Values</TH>
</TR>
<TR>
@@ -158,7 +641,7 @@ raster data for that page.
<TR>
<TD>256-259</TD>
<TD>AdvanceDistance</TD>
<TD>0 to 2<SUP>32</SUP> - 1 pixels</TD>
<TD>0 to 2<SUP>32</SUP> - 1 points</TD>
</TR>
<TR>
<TD>260-263</TD>
@@ -199,7 +682,7 @@ raster data for that page.
<TD>284-299</TD>
<TD>ImagingBoundingBox</TD>
<TD>Four integers giving the left, bottom, right, and top positions
of the page bounding box in pixels</TD>
of the page bounding box in points</TD>
</TR>
<TR>
<TD>300-303</TD>
@@ -226,7 +709,7 @@ raster data for that page.
<TR>
<TD>312-319</TD>
<TD>Margins</TD>
<TD>Left and bottom origin of image in pixels</TD>
<TD>Left and bottom origin of image in points</TD>
</TR>
<TR>
<TD>320-323</TD>
@@ -253,52 +736,355 @@ raster data for that page.
<TR>
<TD>336-339</TD>
<TD>NegativePrint</TD>
<TD></TD>
<TD>0 = Do not invert prints<BR>
1 = Invert prints</TD>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>340-343</TD>
<TD>NumCopies</TD>
<TD>1 to 2<SUP>32</SUP> - 1</TD>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>344-347</TD>
<TD>Orientation</TD>
<TD>0 = Do not rotate page<BR>
1 = Rotate page counter-clockwise<BR>
2 = Turn page upside down<BR>
3 = Rotate page clockwise</TD>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>348-351</TD>
<TD>OutputFaceUp</TD>
<TD>0 = Output face down<BR>
1 = Output face up</TD>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>352-359</TD>
<TD>PageSize</TD>
<TD>Width and length in points</TD>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>360-363</TD>
<TD>Separations</TD>
<TD>0 = Print composite image<BR>
1 = Print color separations</TD>
</TR>
<TR>
<TD>364-367</TD>
<TD>TraySwitch</TD>
<TD>0 = Do not change trays if selected tray is empty<BR>
1 = Change trays if selected tray is empty</TD>
</TR>
<TR>
<TD>368-371</TD>
<TD>Tumble</TD>
<TD>0 = Do not rotate even pages when duplexing<BR>
1 = Rotate even pages when duplexing</TD>
</TR>
<TR>
<TD>372-375</TD>
<TD>cupsWidth</TD>
<TD>Width of page image in pixels</TD>
</TR>
<TR>
<TD>376-379</TD>
<TD>cupsHeight</TD>
<TD>Height of page image in pixels</TD>
</TR>
<TR>
<TD>380-383</TD>
<TD>cupsMediaType</TD>
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
</TR>
<TR>
<TD>384-387</TD>
<TD>cupsBitsPerColor</TD>
<TD>1, 2, 4, 8 bits</TD>
</TR>
<TR>
<TD>388-391</TD>
<TD>cupsBitsPerPixel</TD>
<TD>1 to 32 bits</TD>
</TR>
<TR>
<TD>392-395</TD>
<TD>cupsBytesPerLine</TD>
<TD>1 to 2<SUP>32</SUP> - 1 bytes</TD>
</TR>
<TR>
<TD>396-399</TD>
<TD>cupsColorOrder</TD>
<TD>0 = chunky pixels (CMYK CMYK CMYK)<BR>
1 = banded pixels (CCC MMM YYY KKK)<BR>
2 = planar pixels (CCC... MMM... YYY... KKK...)</TD>
</TR>
<TR>
<TD>400-403</TD>
<TD>cupsColorSpace</TD>
<TD>0 = white<BR>
1 = RGB<BR>
2 = RGBA<BR>
3 = black<BR>
4 = CMY<BR>
5 = YMC<BR>
6 = CMYK<BR>
7 = YMCK<BR>
8 = KCMY<BR>
9 = KCMYcm</TD>
</TR>
<TR>
<TD>404-407</TD>
<TD>cupsCompression</TD>
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
</TR>
<TR>
<TD>408-411</TD>
<TD>cupsRowCount</TD>
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
</TR>
<TR>
<TD>412-415</TD>
<TD>cupsRowFeed</TD>
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
</TR>
<TR>
<TD>416-419</TD>
<TD>cupsRowStep</TD>
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
</TR>
</TABLE></CENTER>
<P>The MIME type for CUPS Raster files is
<CODE>application/vnd.cups-raster</CODE>.
<H2>CUPS Raw Files</H2>
<P>Raw files are printer-dependent print files that are in a format suitable
to the destination printer (e.g. HP-PCL, HP-RTL, etc.) The MIME type for CUPS
Raw files is <CODE>application/vnd.cups-raw</CODE>.
<H2>File Transfer Protocol</H2>
<P>The File Transfer Protocol (FTP) is described by
<A HREF="http://www.ietf.org/rfc/rfc959.txt">RFC 959: File Transfer
Protocol</A>.
<H2>Internet Printing Protocol</H2>
<P>The Internet Printing Protocol is described by the following RFCs:
<UL>
<LI><A HREF="http://www.ietf.org/rfc/rfc2565.txt">
RFC 2565: Internet Printing Protocol/1.0: Encoding and Transport</A>
<LI><A HREF="http://www.ietf.org/rfc/rfc2566.txt">
RFC 2566: Internet Printing Protocol/1.0: Model and Semantics</A>
<LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">
RFC 2567: Design Goals for an Internet Printing Protocol</A>
<LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">
RFC 2568: Rationale for the Structure of the Model and Protocol
for the Internet Printing Protocol</A>
<LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">
RFC 2569: Mapping between LPD and IPP Protocols</A>
</UL>
<P>CUPS defines the following extension operations to IPP.
<H3>Get Default Destination (CUPS_GET_DEFAULT = 0x4001)</H3>
<P>The get default destination operation returns the printer attributes
for the system default printer or class. The only required attributes
are <CODE>attributes-charset</CODE> and
<CODE>attributes-natural-language</CODE>.
<P>Get default destination will only return <CODE>ipp-ok</CODE>.
<H3>Get Printers (CUPS_GET_PRINTERS = 0x4002)</H3>
<P>The get printers operation returns the printer attributes for all
printers known to the system. The only required attributes are
<CODE>attributes-charset</CODE> and
<CODE>attributes-natural-language</CODE>.
<P>Get printers will only return <CODE>ipp-ok</CODE>.
<H3>Add Printer (CUPS_ADD_PRINTER = 0x4003)</H3>
<P>The add printer operation adds or replaces the specified printer. The
<CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE> and <CODE>printer-uri</CODE>
attributes are required.
<P>The <CODE>printer-location</CODE>, <CODE>printer-info</CODE>,
<CODE>printer-more-info</CODE>, and <CODE>device-uri</CODE> attributes
are required when initially adding a printer and optional when modifying
a printer.
<P>A PPD file or System V interface script may follow the IPP request
body. Note that the printer will be disabled until a valid interface script or
PPD file is sent.
<P>Add printer will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-authorized</CODE>,
<CODE>ipp-bad-request</CODE>, or <CODE>ipp-attributes</CODE>.
<H3>Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</H3>
<P>The delete printer operation removes the specified printer. The only
required attributes are <CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>.
<P>Delete printer will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>,
or <CODE>ipp-not-authorized</CODE>.
<H3>Get Classes (CUPS_GET_CLASSES = 0x4005)</H3>
<P>The get classes operation returns the printer attributes for all
classes known to the system. The only required attributes are
<CODE>attributes-charset</CODE> and
<CODE>attributes-natural-language</CODE>.
<P>Get classes will only return <CODE>ipp-ok</CODE>.
<H3>Add Class (CUPS_ADD_CLASS = 0x4006)</H3>
<P>The add class operation adds or replaces the specified class. The
<CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>
attributes are required.
<P>The <CODE>printer-location</CODE>, <CODE>printer-info</CODE>,
<CODE>printer-more-info</CODE>, and <CODE>member-uris</CODE> attributes
are required when initially adding a printer and optional when modifying
a printer.
<P>Add class will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-authorized</CODE>,
<CODE>ipp-bad-request</CODE>, or <CODE>ipp-attributes</CODE>.
<H3>Delete Class (CUPS_DELETE_CLASS = 0x4007)</H3>
<P>The delete class operation removes the specified class. The only
required attributes are <CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>.
<P>Delete class will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>,
or <CODE>ipp-not-authorized</CODE>.
<H3>Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</H3>
<P>The accept jobs operation allows jobs to be accepted by the
specified destination. The only required attributes are
<CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE>, and
<CODE>printer-uri</CODE>.
<P>Accept jobs will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>,
or <CODE>ipp-not-authorized</CODE>.
<H3>Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</H3>
<P>The reject jobs operation prevents jobs from being accepted by the
specified destination. The only required attributes are
<CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE>, and
<CODE>printer-uri</CODE>.
<P>Reject jobs will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>,
or <CODE>ipp-not-authorized</CODE>.
<H3>Set Default Destination (CUPS_SET_DEFAULT = 0x400A)</H3>
<P>The set default destination operation returns the printer attributes
for the system default printer or class. The only required attributes
are <CODE>attributes-charset</CODE>,
<CODE>attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>.
<P>Set default destination will return <CODE>ipp-ok</CODE>,
<CODE>ipp-not-authorized</CODE>, <CODE>ipp-bad-request</CODE>, or
<CODE>ipp-not-found</CODE>.
<H2>Line Printer Daemon Protocol</H2>
<H2>Parallel Device</H2>
<H2>Serial Device</H2>
<P>The Line Printer Daemon (LPD) protocol is described by
<A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179: Line Printer Daemon
Protocol</A>.
<H2>Server Message Block Protocol</H2>
<P>The Server Message Block (SMB) and related Common Internet File
System (CIFS) protocols are described at
<A HREF="http://anu.samba.org/cifs">http://anu.samba.org/cifs</A>.
<H2>Trivial File Transfer Protocol</H2>
<H1>Command-Line Interfaces</H1>
<P>The Trivial File Transfer Protocol (TFTP) is described by
<A HREF="http://www.ietf.org/rfc/rfc1350.txt">RFC 1350: The TFTP Protocol
(Revision 2)</A>.
<H2>Backend Interfaces</H2>
<H1>5 - Directories</H1>
<H2>Filter Interfaces</H2>
<DL>
<DT>/usr/bin
<DD>The <CODE>cancel</CODE>, <CODE>lp</CODE>, <CODE>lpq</CODE>,
<CODE>lpr</CODE>, <CODE>lprm</CODE>, and <CODE>lpstat</CODE> commands
reside here.
<DT>/usr/lib
<DD>The <CODE>accept</CODE>, <CODE>disable</CODE>, <CODE>enable</CODE>,
<CODE>lpadmin</CODE>, and <CODE>reject</CODE> commands reside here.
<DT>/usr/sbin
<DD>The <CODE>lpc</CODE> and <CODE>cupsd</CODE> commands resize here.
<DT>/usr/share/cups
<DD>The character set and filter data files reside here.
<DT>/usr/share/cups/fonts
<DD>The <CODE>pstoraster</CODE> font files reside here.
<DT>/usr/share/cups/model
<DD>The sample PPD files reside here.
<DT>/usr/share/cups/pstoraster
<DD>The <CODE>pstoraster</CODE> data files reside here.
<DT>/var/cups
<DD>This is the root directory of the CUPS scheduler.
<DT>/var/cups/backend
<DD>The backend filters reside here.
<DT>/var/cups/cgi-bin
<DD>The CGI programs reside here.
<DT>/var/cups/conf
<DD>The scheduler configuration and MIME files reside here.
<DT>/var/cups/doc
<DD>The scheduler documentation files reside here.
<DT>/var/cups/filter
<DD>The file filters reside here.
<DT>/var/cups/interfaces
<DD>System V interface scripts reside here.
<DT>/var/cups/logs
<DD>The <CODE>access_log</CODE>, <CODE>error_log</CODE>, and
<CODE>page_log</CODE> files reside here.
<DT>/var/cups/ppd
<DD>This directory contains PPD files for each printer.
<DT>/var/cups/requests
<DD>This directory contains pending print job files.
</DL>
<H1 TYPE=A VALUE=1>Glossary</H1>
+5 -5
Ver Arquivo
@@ -3,11 +3,11 @@
<TITLE>Common UNIX Printing System</TITLE>
<LINK REL=STYLESHEET TYPE="text/css" HREF="cups.css">
<MAP NAME="navbar">
<AREA SHAPE="RECT" COORDS="10,10,100,35" HREF="printers" ALT="Current Printer Status">
<AREA SHAPE="RECT" COORDS="115,10,205,35" HREF="classes" ALT="Current Printer Classes Status">
<AREA SHAPE="RECT" COORDS="220,10,280,35" HREF="jobs" ALT="Current Jobs Status">
<AREA SHAPE="RECT" COORDS="295,10,470,35" HREF="documentation.html" ALT="Read CUPS Documentation On-Line">
<AREA SHAPE="RECT" COORDS="485,10,590,35" HREF="http://www.cups.org" ALT="Download the Current CUPS Software">
<AREA SHAPE="RECT" COORDS="10,10,85,30" HREF="printers" ALT="Current Printer Status">
<AREA SHAPE="RECT" COORDS="95,10,175,30" HREF="classes" ALT="Current Printer Classes Status">
<AREA SHAPE="RECT" COORDS="185,10,235,30" HREF="jobs" ALT="Current Jobs Status">
<AREA SHAPE="RECT" COORDS="245,10,395,30" HREF="documentation.html" ALT="Read CUPS Documentation On-Line">
<AREA SHAPE="RECT" COORDS="405,10,490,30" HREF="http://www.cups.org" ALT="Download the Current CUPS Software">
</MAP>
</HEAD>
Arquivo binário não exibido.
+715 -38
Ver Arquivo
@@ -15,55 +15,732 @@ Copyright 1997-1999, All Rights Reserved<BR>
<HR>
<H1 ALIGN=CENTER><A NAME=CONTENTS>Table of Contents</A></H1>
<BR>
<BR><B><A HREF=#1>1 Scope</A></B>
<BR><B><A HREF=#1>Preface</A></B>
<UL>
<LI><A HREF=#1_1>1.1 Identification</A></LI>
<LI><A HREF=#1_2>1.2 Document Overview</A></LI>
<LI><A HREF=#1_1>System Overview</A></LI>
<LI><A HREF=#1_2>Document Overview</A></LI>
</UL>
<B><A HREF=#2>2 Printing System Overview</A></B>
<BR>
<BR><B><A HREF=#3>3 Printer Queue Management</A></B>
<B><A HREF=#2>1 - Printing System Overview</A></B>
<UL>
<LI><A HREF=#3_1>3.1 Adding Printers</A></LI>
<LI><A HREF=#3_2>3.2 Removing Printers</A></LI>
<LI><A HREF=#3_3>3.3 Reconfiguring Printers</A></LI>
<LI><A HREF=#3_4>3.4 Printer Options</A></LI>
<LI><A HREF=#3_5>3.5 Printer Security</A></LI>
<LI><A HREF=#3_6>3.6 Printer Accounting</A></LI>
<LI><A HREF=#2_1>The Printing Problem</A></LI>
<LI><A HREF=#2_2>The Technology</A></LI>
<LI><A HREF=#2_3>Filters</A></LI>
<LI><A HREF=#2_4>Printer Drivers</A></LI>
</UL>
<B><A HREF=#4>4 Printing System Management</A></B>
<B><A HREF=#3>2 - Building and Installing CUPS</A></B>
<UL>
<LI><A HREF=#4_1>4.1 Log Files</A></LI>
<LI><A HREF=#4_2>4.2 Network Configuration</A></LI>
<LI><A HREF=#4_3>4.3 Adding File Types</A></LI>
<LI><A HREF=#3_1>Installing a Source Distribution</A></LI>
<UL>
<LI><A HREF=#3_1_1>Requirements</A></LI>
<LI><A HREF=#3_1_2>Compiling CUPS</A></LI>
<LI><A HREF=#3_1_3>Installing the Software</A></LI>
<LI><A HREF=#3_1_4>Running the Software</A></LI>
</UL>
<LI><A HREF=#binary>Installing a Binary Distribution</A></LI>
</UL>
<B><A HREF=#4>3 - Printer Queue Management</A></B>
<UL>
<LI><A HREF=#4_1>The lpadmin Command</A></LI>
<LI><A HREF=#4_2>Adding and Modifying Printers</A></LI>
<UL>
<LI><A HREF=#4_2_1>Using Standard Printer Drivers</A></LI>
</UL>
<LI><A HREF=#4_3>Removing Printers</A></LI>
<LI><A HREF=#4_4>Printer Classes</A></LI>
<LI><A HREF=#4_5>Setting the Default Printer</A></LI>
</UL>
<B><A HREF=#5>4 - Printing System Management</A></B>
<UL>
<LI><A HREF=#5_1>Network Configuration</A></LI>
<UL>
<LI><A HREF=#5_1_1>Port</A></LI>
<LI><A HREF=#5_1_2>Listen</A></LI>
<LI><A HREF=#5_1_3>BrowsePort</A></LI>
<LI><A HREF=#5_1_4>BrowseAddress</A></LI>
</UL>
<LI><A HREF=#5_2>Printer Security</A></LI>
<UL>
<LI><A HREF=#5_2_1>Location</A></LI>
<LI><A HREF=#5_2_2>Order</A></LI>
<LI><A HREF=#5_2_3>Allow</A></LI>
<LI><A HREF=#5_2_4>Deny</A></LI>
<LI><A HREF=#5_2_5>AuthType</A></LI>
<LI><A HREF=#5_2_6>AuthClass</A></LI>
<LI><A HREF=#5_2_7>AuthGroupName</A></LI>
<LI><A HREF=#5_2_8>SystemGroup</A></LI>
</UL>
<LI><A HREF=#5_3>File Formats</A></LI>
<UL>
<LI><A HREF=#5_3_1>mime.types</A></LI>
<LI><A HREF=#5_3_2>mime.convs</A></LI>
</UL>
</UL>
<B><A HREF=#6>5 - Printer Accounting</A></B>
<UL>
<LI><A HREF=#6_1>Where to Find the Log Files</A></LI>
<LI><A HREF=#6_2>The access_log File</A></LI>
<LI><A HREF=#6_3>The error_log File</A></LI>
<LI><A HREF=#6_4>The page_log File</A></LI>
</UL>
<HR>
<H1><A NAME=1>1 Scope</A></H1>
<H2><A NAME=1_1>1.1 Identification</A></H2>
This softwae administrators manual provides printer administration
<H1 ALIGN=RIGHT><A NAME=1>Preface</A></H1>
This software administrators manual provides printer administration
information for the Common UNIX Printing System (&quot;CUPS&quot;) Version 1.0.0.
<H2><A NAME=1_2>1.2 Document Overview</A></H2>
<H2><A NAME=1_1>System Overview</A></H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line
interfaces.
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for
managing print jobs and queues. The Line Printer Daemon (LPD, RFC1179),
Server Message Block (SMB), and AppSocket protocols are also supported
with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_2>Document Overview</A></H2>
<P>This software administrators manual is organized into the following
sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Printing System Overview</LI>
<LI>4 - Printer Queue Management</LI>
<LI>5 - Printing System Management</LI>
<LI>A - Glossary</LI>
<LI>1 - Printing System Overview</LI>
<LI>2 - Building and Installing CUPS</LI>
<LI>3 - Printer Queue Management</LI>
<LI>4 - Printing System Management</LI>
<LI>5 - Printer Accounting</LI>
</UL>
<H1><A NAME=2>2 Printing System Overview</A></H1>
<H1><A NAME=3>3 Printer Queue Management</A></H1>
<H2><A NAME=3_1>3.1 Adding Printers</A></H2>
<H2><A NAME=3_2>3.2 Removing Printers</A></H2>
<H2><A NAME=3_3>3.3 Reconfiguring Printers</A></H2>
<H2><A NAME=3_4>3.4 Printer Options</A></H2>
<H2><A NAME=3_5>3.5 Printer Security</A></H2>
<H2><A NAME=3_6>3.6 Printer Accounting</A></H2>
<H1><A NAME=4>4 Printing System Management</A></H1>
<H2><A NAME=4_1>4.1 Log Files</A></H2>
<H2><A NAME=4_2>4.2 Network Configuration</A></H2>
<H2><A NAME=4_3>4.3 Adding File Types</A></H2>
<H1 ALIGN=RIGHT><A NAME=2>1 - Printing System Overview</A></H1>
<P>This chapter provides an overview of how the Common UNIX Printing
System works. </P>
<H2><A NAME=2_1>The Printing Problem</A></H2>
<P>For years <I>the printing problem</I> has plagued UNIX&reg;. Unlike
Microsoft&reg; Windows&reg; or MacOS, UNIX has no standard interface or system
in place for supporting printers. Among the solutions previously
available, the Berkeley and System V printing systems are the most
prevalent. </P>
<P>These printing systems support line printers (text only) or
PostScript printers (text and graphics), and with some coaxing they can
be made to support a full range of printers and file formats. However,
because each varient of the UNIX operating system uses a different
printing system than the next, developing printer drivers for a wide
range of printers is extremely difficult. That combined with the
limited volume of customers for each UNIX varient has forced most
printer vendors to give up supporting UNIX entirely. </P>
<P>The Common UNIX Printing System, or CUPS, is designed to eliminate <I>
the printing problem</I>. One common printing system can be used by all
UNIX varients to support the printing needs of users. Printer vendors
can use its modular filter interface to develop a single driver program
that supports a wide range of file formats with little or no effort.
Since CUPS provides both the System V and Berkeley printing commands,
users (and applications) can reap the benefits of this new technology
with no changes. </P>
<H2><A NAME=2_2>The Technology</A></H2>
<P>CUPS is based upon an emerging Internet standard called the Internet
Printing Protocol, or IPP. IPP has been embraced by dozens of printer
and printer server manufacturers, and will be supported by the next
Microsoft Windows operating system. </P>
<P>IPP defines a standard protocol for printing as well as managing
print jobs and printer options like media size, resolution, and so
forth. Like all IP-based protocols, IPP can be used locally or over the
Internet to printers hundreds or thousands of miles away. Unlike other
protocols, however, IPP also supports access control, authentication,
and encryption, making it a much more secure printing solution than
older ones. </P>
<P>IPP is layered on top of the Hyper-Text Transport Protocol, or HTTP,
which is the basis of web servers on the Internet. This allows the user
to view documentation and status information on a printer or server
using their web browser. </P>
<P>CUPS provides a complete IPP/1.0-based printing system that provides
Basic authentication and domain or IP-based access control. Digest
authentication and TLS encryption will be available in future versions
of CUPS. </P>
<H2><A NAME=2_3>Filters</A></H2>
<P>Filters allow a user or application to print many types of files
without extra effort. Print jobs sent to a CUPS server are filtered
before sending them to a printer. Some filters convert job files to
different formats that the printer can understand. Others perform page
selection and ordering tasks. <I>Backend</I> filters perform the most
important task of all - they send the filtered print data to the
printer. </P>
<P>CUPS provides filters for printing many types of image files,
HP-GL/2 files, PDF files, and text files. CUPS also supplies PostScript
and image file Raster Image Processors, or RIPs, that convert
PostScript or image files into bitmaps that can be sent to a raster
printer. </P>
<P>CUPS provides backends for printing over parallel and serial ports,
and over the network via the JetDirect (AppSocket), Server Message
Block, and Line Printer Daemon protocols. </P>
<H2><A NAME=2_4>Printer Drivers</A></H2>
<P>Printer drivers in CUPS consist of one of more filters specific to a
printer. CUPS includes a sample printer driver for Hewlett-Packard
LaserJet and DeskJet printers. While this driver does not generate
optimal output for different printer models, it does demonstrate how
you can write your own printer drivers and incorporate them into CUPS. </P>
<H1 ALIGN=RIGHT><A NAME=3>2 - Building and Installing CUPS</A></H1>
<P>This chapter shows how to build and install the Common UNIX Printing
System. If you are installing a binary distribution from the CUPS web
site, proceed to the section titled, <A HREF=#binary>Installing a
Binary Distribution</A>. </P>
<H2><A NAME=3_1>Installing a Source Distribution</A></H2>
<H3><A NAME=3_1_1>Requirements</A></H3>
<P>You'll need an ANSI C compiler to build CUPS on your system. As its
name implies, CUPS is designed to run on the UNIX operating system,
however the CUPS interface library and most of the filters and backends
supplied with CUPS should also run under Microsoft&reg; Windows&reg;. </P>
<P>For the image file filters and PostScript RIP, you'll need the JPEG,
PNG, TIFF, and ZLIB libraries. CUPS will build without these, but with
reduced functionality. Easy Software Products maintains a mirror of the
current versions of these libraries at: </P>
<UL>
<PRE>
<A HREF=ftp://ftp.easysw.com/pub/libraries>ftp://ftp.easysw.com/pub/libraries</A>
</PRE>
</UL>
<P>If you make changes to the man pages you'll need GNU groff or
another nroff-like package. GNU groff is available from: </P>
<UL>
<PRE>
<A HREF=ftp://ftp.gnu.org/pub/groff>ftp://ftp.gnu.org/pub/groff</A>
</PRE>
</UL>
<P>The documentation is formatted using the HTMLDOC software. If you
need to make changes you can get the HTMLDOC software from: </P>
<UL>
<PRE>
<A HREF=http://www.easysw.com/htmldoc>http://www.easysw.com/htmldoc</A>
</PRE>
</UL>
<H3><A NAME=3_1_2>Compiling CUPS</A></H3>
<P>CUPS uses GNU autoconf to configure the makefiles and source code
for your system. To configure CUPS for your system type: </P>
<UL>
<PRE>
% ./configure ENTER
</PRE>
</UL>
<P>The default installation will put the CUPS software in the <CODE>/usr</CODE>
and <CODE>/var</CODE> directories on your system, which will overwrite
any existing printing commands on your system. To install the CUPS
software in another location use the <CODE>--prefix</CODE> option: </P>
<UL>
<PRE>
% ./configure --prefix=/usr/local ENTER
</PRE>
</UL>
<P>If the PNG, JPEG, TIFF, and ZLIB libraries are not installed in a
system default location (typically <CODE>/usr/include</CODE> and <CODE>
/usr/lib</CODE>) you'll need to set the <CODE>CFLAGS</CODE> and <CODE>
LDFLAGS</CODE> environment variables prior to running configure: </P>
<UL>
<PRE>
% setenv CFLAGS &quot;-I/some/directory&quot;
% setenv LDFLAGS &quot;-L/some/directory&quot;
% ./configure ... ENTER
</PRE>
</UL>
<P>Once you have configured things, just type: </P>
<UL>
<PRE>
% make ENTER
</PRE>
</UL>
<P>to build the software. </P>
<H3><A NAME=3_1_3>Installing the Software</A></H3>
<P>To install the software type: </P>
<UL>
<PRE>
% make install ENTER
</PRE>
</UL>
<H3><A NAME=3_1_4>Running the Software</A></H3>
Once you have installed the software you can start the CUPS daemon by
typing:
<UL>
<PRE>
% /usr/sbin/cupsd &amp; ENTER
</PRE>
</UL>
<H2><A NAME=binary>Installing a Binary Distribution</A></H2>
<P>We are currently distributing CUPS binary distributions in TAR
format with installation and removal scripts. </P>
<UL><B>WARNING:</B>
<P>Installing CUPS will overwrite your existing printing system. If
you experience difficulties with the CUPS software and need to go back
to your old printing system, you will need to remove the CUPS software
with the provided script and reinstall the printing system from your
operating system CDs. </P>
</UL>
<P>To install the CUPS software you will need to be logged in as root
(doing an &quot;su&quot; is good enough). Once you are the root user, run the
installation script with: </P>
<UL>
<PRE>
./cups.install ENTER
</PRE>
</UL>
<P>After asking you a few yes/no questions the CUPS software will be
installed and the scheduler will be started automatically. </P>
<H1 ALIGN=RIGHT><A NAME=4>3 - Printer Queue Management</A></H1>
<P>This chapter discusses how to add, modify, and delete print queues
on your system. </P>
<H2><A NAME=4_1>The lpadmin Command</A></H2>
<P>The <CODE>lpadmin</CODE> command allows you to perform most printer
administration tasks from the command-line. Since <CODE>lpadmin</CODE>
is also a System V printing system command, it is located in the <CODE>
/usr/lib</CODE> directory instead of a more common one like <CODE>
/usr/bin</CODE> or <CODE>/usr/sbin</CODE>. </P>
<H2><A NAME=4_2>Adding and Modifying Printers</A></H2>
<P>To add a printer to CUPS you simply run the <CODE>lpadmin</CODE>
command with the &quot;-p&quot; option: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -p<I>printer</I> -v<I>device</I> -P<I>ppd</I> ENTER
</PRE>
</UL>
<P>Spaces between the option letter and value are optional. </P>
<P>The <I>printer</I> name can be up to 127 letters, digits, hyphens,
and underscores. Unlike other printing systems, the printer name in
CUPS is <I>not</I> case-sensitive, so you can't add two printers named <CODE>
LaserJet</CODE> and <CODE>laserjet</CODE>. </P>
<P>The <I>device</I> argument specifies the device URI or filename for
the printer. The following devices are supported in a basic
installation of CUPS: </P>
<DL>
<DT>file:/dev/filename </DT>
<DT>/dev/filename </DT>
<DD>Sends all output to the specified file. </DD>
<DT>ipp://hostname[:port]/resource </DT>
<DD>Sends all output to the specified IPP printer or server. The <I>
port</I> parameters defaults to 631. </DD>
<DT>lpd://hostname/queue </DT>
<DD>Sends all output to the specified LPD printer queue. </DD>
<DT>parallel:/dev/filename </DT>
<DD>Sends all output to the specified parallel port device. </DD>
<DT>serial:/dev/filename[?options] </DT>
<DD>Sends all output to the specified serial port device. The <I>
options</I> can be any of the following separated by the plus (+)
character:
<UL>
<LI><CODE>baud=<I>rate</I></CODE> - Sets the baud rate for the device. </LI>
<LI><CODE>bits=<I>7 or 8</I></CODE> - Sets the number of data bits. </LI>
<LI><CODE>parity=<I>even</I></CODE> - Sets even parity checking. </LI>
<LI><CODE>parity=<I>odd</I></CODE> - Sets odd parity checking. </LI>
<LI><CODE>parity=<I>none</I></CODE> - Turns parity checking off. </LI>
</UL>
</DD>
<DT>socket://hostname[:port] </DT>
<DD>Sends all output to the specified printer using the AppSocket
protocol. The <I>port</I> parameter defaults to 9100. </DD>
</DL>
<P>The <I>ppd</I> argument specifies the PostScript Printer Description
file to use for this printer. Many options (such as media size, etc.)
will not be available if you omit this part of the <CODE>lpadmin</CODE>
command. </P>
<H3><A NAME=4_2_1>Using Standard Printer Drivers</A></H3>
<P>The <CODE>lpadmin</CODE> command allows you to use &quot;standard&quot; PPD
files and interface scripts located in the <CODE>/usr/share/cups/model</CODE>
directory with the &quot;-m&quot; option: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -p<I>printer</I> -v<I>device</I> -m<I>model</I> ENTER
</PRE>
</UL>
<P>The <I>model</I> argument specifies the name of the PPD file or
interface script. For example, to add a printer using the sample HP
DeskJet series driver connected to parallel port 1 under Linux you
would use: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -pDeskJet -vparallel:/dev/par1 -mdeskjet.ppd ENTER
</PRE>
</UL>
<H2><A NAME=4_3>Removing Printers</A></H2>
<P>To remove a printer to CUPS you simply run the <CODE>lpadmin</CODE>
command with the &quot;-x&quot; option: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -x<I>printer</I> ENTER
</PRE>
</UL>
<H2><A NAME=4_4>Printer Classes</A></H2>
<P>CUPS allows you to group similar printers in a <I>printer class</I>.
When a user sends a print job to a class, the job will be processed by
the first available printer in that class. </P>
<P>To add a printer to a class you simply run the <CODE>lpadmin</CODE>
command with the &quot;-p&quot; and &quot;-c&quot; options: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -p<I>printer</I> -c<I>class</I> ENTER
</PRE>
</UL>
<P>The <I>class</I> is created automatically if it doesn't exist. To
remove a class just use the &quot;-x&quot; option: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -x<I>class</I> ENTER
</PRE>
</UL>
<H2><A NAME=4_5>Setting the Default Printer</A></H2>
<P>To set the default printer or class simply run the <CODE>lpadmin</CODE>
command with the &quot;-d&quot; option: </P>
<UL>
<PRE>
% /usr/lib/lpadmin -d<I>destination</I> ENTER
</PRE>
</UL>
<P>The <I>destination</I> argument is the name of the printer or class. </P>
<H1 ALIGN=RIGHT><A NAME=5>4 - Printing System Management</A></H1>
<P>This chapter shows how you can configure the CUPS server. </P>
<H2><A NAME=5_1>Network Configuration</A></H2>
<P>The default configuration of the CUPS server listens for connections
from all network interfaces on port 631 (the standard IPP port).
Administration functions are limited to local connections with the
appropriate username and password. </P>
<P>If you'd like to limit access to your system you'll need to edit the <CODE>
/var/cups/conf/cupsd.conf</CODE> file. </P>
<H3><A NAME=5_1_1>Port</A></H3>
<P>The <CODE>Port</CODE> directive specifies a port to listen on for
all interfaces. Besides the standard IPP port (631) you can also setup
your server to listen on the HTTP port (80) to use your CUPS server as
a standard web server as well. </P>
<H3><A NAME=5_1_2>Listen</A></H3>
<P>The <CODE>Listen</CODE> directive specifies a listening address and
port, extending the functionality of the <CODE>Port</CODE> directive.
If you want to allow connections only from the local machine you can
use: </P>
<UL>
<PRE>
Listen 127.0.0.1:631
</PRE>
</UL>
<P>instead of the <CODE>Port</CODE> directive. </P>
<P>If you want to limit access to a specific network/subnet, make sure
you specific only the network address and not your system's network
address! </P>
<H3><A NAME=5_1_3>BrowsePort</A></H3>
<P>The <CODE>BrowsePort</CODE> directive controls which port is
monitored for remote printers. By default it is set to the IPP port
(631), however you can change it as needed. </P>
<UL><B>NOTE:</B>
<P>You must set the <CODE>BrowsePort</CODE> to the same value on all
of the systems that you want to see. </P>
</UL>
<H3><A NAME=5_1_4>BrowseAddress</A></H3>
<P>The <CODE>BrowseAddress</CODE> directive specifies a broadcast
address to use when sending printer status updates over the network.
The default browse address is <CODE>255.255.255.255</CODE> which will
send printer information to all subnets. </P>
<UL><B>NOTE:</B>
<P>If you are using HP-UX 10.20 and a subnet that is not 24, 16, or 8
bits, printer browsing (and in fact all broadcast reception) will not
work. This problem appears to be fixed in HP-UX 11.0. </P>
</UL>
<H2><A NAME=5_2>Printer Security</A></H2>
<P>CUPS provides IP and domain-name based access control and Basic
authentication for authentication. </P>
<H3><A NAME=5_2_1>Location</A></H3>
<P>The <CODE>Location</CODE> directive defines access control for a
specific HTTP directory. The following pseudo directories are provided
by the CUPS server: </P>
<UL>
<LI><CODE>/admin</CODE> - This is the URI that must be referenced to
do printer administation commands. </LI>
<LI><CODE>/classes</CODE> - This is the URI that must be referenced to
access printer classes. </LI>
<LI><CODE>/jobs</CODE> - This is the URI that must be referenced to
access jobs. </LI>
<LI><CODE>/printers</CODE> - This is the URI that must be referenced to
access printers. </LI>
</UL>
<P>All other directories are taken from the <CODE>/usr/share/cups/doc</CODE>
directory. </P>
<P>The <CODE>Location</CODE> directive surrounds the other access
control directives described below. The default server configuration
uses: </P>
<UL>
<PRE>
&lt;Location /admin&gt;
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
&lt;/Location&gt;
</PRE>
</UL>
<H3><A NAME=5_2_2>Order</A></H3>
<P>The <CODE>Order</CODE> directive defines the default access control.
The following values are supported: </P>
<UL>
<LI><CODE>Order Allow,Deny</CODE> - Allow requests from all systems <I>
except</I> for those listed in a <CODE>Deny</CODE> directive. </LI>
<LI><CODE>Order Deny,Allow</CODE> - Allow requests only from those
listed in an <CODE>Allow</CODE> directive. </LI>
</UL>
<P>The <CODE>Order</CODE> directive must appear inside a <CODE>Location</CODE>
directive. </P>
<H3><A NAME=5_2_3>Allow</A></H3>
<P>The <CODE>Allow</CODE> directive specifies a hostname, IP address,
or network that is allowed access to the server: </P>
<UL>
<PRE>
Allow from All
Allow from None
Allow from *.domain.com
Allow from .domain.com
Allow from host.domain.com
Allow from nnn.*
Allow from nnn.nnn.*
Allow from nnn.nnn.nnn.*
Allow from nnn.nnn.nnn.nnn
Allow from nnn.nnn.nnn.nnn/mm
Allow from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
</PRE>
</UL>
<P><CODE>Allow</CODE> directives are cummulative, so multiple <CODE>
Allow</CODE> directives can be used to allow access for multiple hosts
or networks. </P>
<P>The <CODE>Allow</CODE> directive must appear inside a <CODE>Location</CODE>
directive. </P>
<H3><A NAME=5_2_4>Deny</A></H3>
<P>The <CODE>Deny</CODE> directive specifies a hostname, IP address, or
network that is allowed access to the server: </P>
<UL>
<PRE>
Deny from All
Deny from None
Deny from *.domain.com
Deny from .domain.com
Deny from host.domain.com
Deny from nnn.*
Deny from nnn.nnn.*
Deny from nnn.nnn.nnn.*
Deny from nnn.nnn.nnn.nnn
Deny from nnn.nnn.nnn.nnn/mm
Deny from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
</PRE>
</UL>
<P><CODE>Deny</CODE> directives are cummulative, so multiple <CODE>Deny</CODE>
directives can be used to allow access for multiple hosts or networks. </P>
<P>The <CODE>Deny</CODE> directive must appear inside a <CODE>Location</CODE>
directive. </P>
<H3><A NAME=5_2_5>AuthType</A></H3>
<P>The <CODE>AuthType</CODE> directive defines the type of
authentication to perform: </P>
<UL>
<LI><CODE>None</CODE> - No authentication should be performed
(default.) </LI>
<LI><CODE>Basic</CODE> - Basic authentication should be performed
using the UNIX password and group files. </LI>
</UL>
<P>The <CODE>AuthType</CODE> directive must appear inside a <CODE>
Location</CODE> directive. </P>
<H3><A NAME=5_2_6>AuthClass</A></H3>
<P>The <CODE>AuthClass</CODE> directive defines what level of <CODE>
Basic</CODE> access is required: </P>
<UL>
<LI><CODE>Anonymous</CODE> - No authentication should be performed
(default.) </LI>
<LI><CODE>User</CODE> - A valid username and password is required. </LI>
<LI><CODE>System</CODE> - A valid username and password is required,
and the username must belong to the &quot;sys&quot; group (this can be changed
using the <CODE>SystemGroup</CODE> directive, below. </LI>
<LI><CODE>Group</CODE> - A valid username and password is required,
and the username must belong to the group named by the <CODE>
AuthGroupName</CODE> directive. </LI>
</UL>
<P>The <CODE>AuthClass</CODE> directive must appear inside a <CODE>
Location</CODE> directive. </P>
<H3><A NAME=5_2_7>AuthGroupName</A></H3>
<P>The <CODE>AuthGroupName</CODE> directive sets the group to use for <CODE>
Group</CODE> authentication. </P>
<P>The <CODE>AuthGroupName</CODE> directive must appear inside a <CODE>
Location</CODE> directive. </P>
<H3><A NAME=5_2_8>SystemGroup</A></H3>
<P>The <CODE>SystemGroup</CODE> directive sets the administration group
used when authenticating the <CODE>System</CODE> type. It defaults to
the &quot;sys&quot; group. </P>
<H2><A NAME=5_3>File Formats</A></H2>
<P>CUPS provides a MIME-based file typing and filtering mechanism to
convert files to a printable format for each printer. The <CODE>
mime.types</CODE> and <CODE>mime.convs</CODE> files define the file
type and filters that are available on the system. </P>
<H3><A NAME=5_3_1>mime.types</A></H3>
<P>The <CODE>mime.types</CODE> defines the known file types. Each line
of the file starts with the MIME type and may be followed by one or
more file type recognition rules. For example, the <CODE>text/html</CODE>
file type is defined as: </P>
<UL>
<PRE>
text/html html htm \
printable(0,1024) + (string(0,&quot;&lt;HTML&gt;&quot;) string(0,&quot;&lt;!DOCTYPE&quot;))
</PRE>
</UL>
<P>The first two rules say that any file with an extension of &quot;.html&quot;
or &quot;.htm&quot; is a HTML file. The third rules says that any file whose
first 1024 characters are printable text and starts with the strings
&quot;&lt;HTML&gt;&quot; or &quot;&lt;!DOCTYPE&quot; is a HTML file as well. </P>
<P>The first two rules deal solely with the name of the file being
typed. This is useful when the original filename is known, however for
print files the server doesn't always have a filename to work with. The
third rule takes care of this possibility and automatically figures out
the file type based upon the contents of the file instead. </P>
<P>The available tests are: </P>
<UL>
<LI><CODE>( expr )</CODE> - Parenthesis for expression grouping </LI>
<LI><CODE>+</CODE> - Logical AND </LI>
<LI><CODE>,</CODE> or whitespace - Logical OR </LI>
<LI><CODE>!</CODE> - Logical NOT </LI>
<LI><CODE>match(&quot;pattern&quot;)</CODE> - Pattern match on filename </LI>
<LI><CODE>extension</CODE> - Pattern match on &quot;*.extension&quot; </LI>
<LI><CODE>ascii(offset,length)</CODE> - True if bytes are valid
printable ASCII (CR, NL, TAB, BS, 32-126) </LI>
<LI><CODE>printable(offset,length)</CODE> - True if bytes are
printable 8-bit chars (CR, NL, TAB, BS, 32-126, 160-254) </LI>
<LI><CODE>string(offset,&quot;string&quot;)</CODE> - True if bytes are identical
to string </LI>
<LI><CODE>char(offset,value)</CODE> - True if byte is identical </LI>
<LI><CODE>short(offset,value)</CODE> - True if 16-bit integer is
identical </LI>
<LI><CODE>int(offset,value)</CODE> - True if 32-bit integer is
identical </LI>
<LI><CODE>locale(&quot;string&quot;)</CODE> - True if current locale matches
string </LI>
</UL>
<H3><A NAME=5_3_2>mime.convs</A></H3>
<P>The <CODE>mime.convs</CODE> file defines all of the filter programs
that are known to the system. Each line consists of: </P>
<UL>
<PRE>
source destination cost program
text/plain application/postscript 50 texttops
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
image/* application/vnd.cups-postscript 50 imagetops
image/* application/vnd.cups-raster 50 imagetoraster
</PRE>
</UL>
<P>The <I>source</I> field is a MIME type, optionally using a wildcard
for the super-type or sub-type (e.g. &quot;text/plain&quot;, &quot;image/*&quot;,
&quot;*/postscript&quot;). </P>
<P>The <I>destination</I> field is a MIME type defined in the <CODE>
mime.types</CODE> file. </P>
<P>The <I>cost</I> field defines a relative cost for the filtering
operation from 1 to 100. The cost is used to choose between two
different sets of filters when converting a file. For example, to
convert from <CODE>image/jpeg</CODE> to <CODE>
application/vnd.cups-raster</CODE>, you could use the <CODE>imagetops</CODE>
and <CODE>pstoraster</CODE> filters for a total cost of 100, or the <CODE>
imagetoraster</CODE> filter for a total cost of 50. </P>
<P>The <I>program</I> field defines the filter program to run; the
special program &quot;-&quot; can be used to make two file types equivalent. The
program must accept the standard filter arguments and environment
variables described in the CUPS Interface Design Document: </P>
<UL>
<PRE>
program job user title options [filename]
</PRE>
</UL>
<P>If specified, the <I>filename</I> argument defines a file to read
when filtering, otherwise the filter must read from the standard input.
All filtered output must go to the standard output. </P>
<H1 ALIGN=RIGHT><A NAME=6>5 - Printer Accounting</A></H1>
This chapter describes the CUPS log files.
<H2><A NAME=6_1>Where to Find the Log Files</A></H2>
<P>The log files are normally stored in the <CODE>/var/cups/logs</CODE>
directory. You can change this by editing the <CODE>
/var/cups/conf/cupsd.conf</CODE> configuration file. </P>
<H2><A NAME=6_2>The access_log File</A></H2>
<P>The <CODE>access_log</CODE> file lists each HTTP resource that is
accessed by a web browser or CUPS/IPP client. Each line is in the
so-called &quot;Common Log Format&quot; used by many web servers and web
reporting tools: </P>
<UL>
<PRE>
host group user date-time \&quot;method resource version\&quot; status bytes
127.0.0.1 - - [20/May/1999:19:20:29 +0000] &quot;POST /admin/ HTTP/1.1&quot; 401 0
127.0.0.1 - mike [20/May/1999:19:20:31 +0000] &quot;POST /admin/ HTTP/1.1&quot; 200 0
</PRE>
</UL>
<P>The <I>host</I> field will normally only be an IP address unless you
have changed the <CODE>HostnameLookups</CODE> directive on in the <CODE>
cupsd.conf</CODE> file. </P>
<P>The <I>group</I> field always contains &quot;-&quot;. </P>
<P>The <I>user</I> field is the authenticated username of the
requesting user. If no username and password is supplied for the
request then this field contains &quot;-&quot;. </P>
<P>The <I>date-time</I> field is the date and time of the request in
Greenwich Mean Time (a.k.a. ZULU) and is in the format: </P>
<UL>
<PRE>
[DD/MON/YYYY:HH:MM:SS +0000]
</PRE>
</UL>
<P>The <I>method</I> field is the HTTP method used (&quot;GET&quot;, &quot;PUT&quot;,
&quot;POST&quot;, etc.) </P>
<P>The <I>resource</I> field is the filename of the requested resource. </P>
<P>The <I>version</I> field is the HTTP specification version used by
the client. For CUPS clients this will always be &quot;HTTP/1.1&quot;. </P>
<P>The <I>status</I> field contains the HTTP result status of the
request. Usually it is &quot;200&quot;, but other HTTP status codes are possible.
For example, 401 is the &quot;unauthorized access&quot; status in the example
above. </P>
<P>The <I>bytes</I> field contains the number of bytes in the request.
For POST requests the <I>bytes</I> field contains the number of bytes
of non-IPP data that is received from the client. </P>
<H2><A NAME=6_3>The error_log File</A></H2>
<P>The <CODE>error_log</CODE> file lists messages from the scheduler
(errors, warnings, etc.): </P>
<UL>
<PRE>
level date-time message
I [20/May/1999:19:18:28 +0000] Job 1 queued on 'DeskJet' by 'mike'.
I [20/May/1999:19:21:02 +0000] Job 2 queued on 'DeskJet' by 'mike'.
I [20/May/1999:19:22:24 +0000] Job 2 was cancelled by 'mike'.
</PRE>
</UL>
<P>The <I>level</I> field contains the type of message: </P>
<UL>
<LI><CODE>E</CODE> - An error occurred. </LI>
<LI><CODE>W</CODE> - The server was unable to perform some action. </LI>
<LI><CODE>I</CODE> - Informational message. </LI>
<LI><CODE>D</CODE> - Debugging message. </LI>
</UL>
<P>The <I>date-time</I> field contains the date and time of when the
page started printing. The format of this field is identical to the <I>
data-time</I> field in the <CODE>access_log</CODE> file. </P>
<P>The <I>message</I> fields contains a free-form textual message. </P>
<H2><A NAME=6_4>The page_log File</A></H2>
<P>The <CODE>page_log</CODE> file lists each page that is sent to a
printer. Each line contains the following information: </P>
<UL>
<PRE>
printer user job-id date-time page-number num-copies
DeskJet root 2 [20/May/1999:19:21:05 +0000] 1 0
</PRE>
</UL>
<P>The <I>printer</I> field contains the name of the printer that
printed the page. If you send a job to a printer class, this field will
contain the name of the printer that was assigned the job. </P>
<P>The <I>user</I> field contains the name of the user (the IPP <CODE>
requesting-user-name</CODE> attribute) that submitted this file for
printing. </P>
<P>The <I>job-id</I> field contains the job number of the page being
printed. Job numbers are reset to 1 whenever the CUPS server is
started, so don't depend on this number being unique! </P>
<P>The <I>date-time</I> field contains the date and time of when the
page started printing. The format of this field is identical to the <I>
data-time</I> field in the <CODE>access_log</CODE> file. </P>
<P>The <I>page-number</I> and <I>num-pages</I> fields contain the page
number and number of copies being printed of that page. For printer
that can not produce copies on their own, the <I>num-pages</I> field
will always be 1. </P>
</BODY>
</HTML>
BIN
Ver Arquivo
Arquivo binário não exibido.
+817 -20
Ver Arquivo
@@ -7,49 +7,846 @@
</HEAD>
<BODY>
<H1>Scope</H1>
<H1 ALIGN=RIGHT>Preface</H1>
<H2>Identification</H2>
This softwae administrators manual provides printer administration
This software administrators manual provides printer administration
information for the Common UNIX Printing System ("CUPS") Version 1.0.0.
<H2>System Overview</H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line interfaces.
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis
for managing print jobs and queues. The Line Printer Daemon (LPD,
RFC1179), Server Message Block (SMB), and AppSocket protocols are also
supported with reduced functionality.
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
<P>This software administrators manual is organized into the following sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Printing System Overview</LI>
<LI>4 - Printer Queue Management</LI>
<LI>5 - Printing System Management</LI>
<LI>A - Glossary</LI>
<LI>1 - Printing System Overview</LI>
<LI>2 - Building and Installing CUPS</LI>
<LI>3 - Printer Queue Management</LI>
<LI>4 - Printing System Management</LI>
<LI>5 - Printer Accounting</LI>
</UL>
<H1>Printing System Overview</H1>
<H1 ALIGN=RIGHT>1 - Printing System Overview</H1>
<H1>Printer Queue Management</H1>
<P>This chapter provides an overview of how the Common UNIX Printing System
works.
<H2>Adding Printers</H2>
<H2>The Printing Problem</H2>
<P>For years <I>the printing problem</I> has plagued UNIX&reg;. Unlike
Microsoft&reg; Windows&reg; or MacOS, UNIX has no standard interface or
system in place for supporting printers. Among the solutions previously
available, the Berkeley and System V printing systems are the most
prevalent.
<P>These printing systems support line printers (text only) or
PostScript printers (text and graphics), and with some coaxing they can
be made to support a full range of printers and file formats. However,
because each varient of the UNIX operating system uses a different
printing system than the next, developing printer drivers for a wide
range of printers is extremely difficult. That combined with the
limited volume of customers for each UNIX varient has forced most
printer vendors to give up supporting UNIX entirely.
<P>The Common UNIX Printing System, or CUPS, is designed to eliminate
<I>the printing problem</I>. One common printing system can be used by
all UNIX varients to support the printing needs of users. Printer
vendors can use its modular filter interface to develop a single driver
program that supports a wide range of file formats with little or no
effort. Since CUPS provides both the System V and Berkeley printing
commands, users (and applications) can reap the benefits of this new
technology with no changes.
<H2>The Technology</H2>
<P>CUPS is based upon an emerging Internet standard called the Internet
Printing Protocol, or IPP. IPP has been embraced by dozens of printer
and printer server manufacturers, and will be supported by the next
Microsoft Windows operating system.
<P>IPP defines a standard protocol for printing as well as managing print
jobs and printer options like media size, resolution, and so forth. Like all
IP-based protocols, IPP can be used locally or over the Internet to printers
hundreds or thousands of miles away. Unlike other protocols, however, IPP
also supports access control, authentication, and encryption, making it a
much more secure printing solution than older ones.
<P>IPP is layered on top of the Hyper-Text Transport Protocol, or HTTP,
which is the basis of web servers on the Internet. This allows the user to
view documentation and status information on a printer or server using their
web browser.
<P>CUPS provides a complete IPP/1.0-based printing system that provides Basic
authentication and domain or IP-based access control. Digest authentication
and TLS encryption will be available in future versions of CUPS.
<H2>Filters</H2>
<P>Filters allow a user or application to print many types of files
without extra effort. Print jobs sent to a CUPS server are filtered
before sending them to a printer. Some filters convert job files to
different formats that the printer can understand. Others perform page
selection and ordering tasks. <I>Backend</I> filters perform the most
important task of all - they send the filtered print data to the
printer.
<P>CUPS provides filters for printing many types of image files,
HP-GL/2 files, PDF files, and text files. CUPS also supplies
PostScript and image file Raster Image Processors, or RIPs, that
convert PostScript or image files into bitmaps that can be sent to a
raster printer.
<P>CUPS provides backends for printing over parallel and serial ports,
and over the network via the JetDirect (AppSocket), Server Message
Block, and Line Printer Daemon protocols.
<H2>Printer Drivers</H2>
<P>Printer drivers in CUPS consist of one of more filters specific to a
printer. CUPS includes a sample printer driver for Hewlett-Packard
LaserJet and DeskJet printers. While this driver does not generate
optimal output for different printer models, it does demonstrate how
you can write your own printer drivers and incorporate them into CUPS.
<H1 ALIGN=RIGHT>2 - Building and Installing CUPS</H1>
<P>This chapter shows how to build and install the Common UNIX Printing System.
If you are installing a binary distribution from the CUPS web site, proceed to
the section titled, <A HREF="#binary">Installing a Binary Distribution</A>.
<H2>Installing a Source Distribution</H2>
<H3>Requirements</H3>
<P>You'll need an ANSI C compiler to build CUPS on your system. As its name
implies, CUPS is designed to run on the UNIX operating system, however
the CUPS interface library and most of the filters and backends supplied
with CUPS should also run under Microsoft&reg; Windows&reg;.
<P>For the image file filters and PostScript RIP, you'll need the JPEG,
PNG, TIFF, and ZLIB libraries. CUPS will build without these, but with
reduced functionality. Easy Software Products maintains a mirror of the
current versions of these libraries at:
<UL><PRE>
<A HREF="ftp://ftp.easysw.com/pub/libraries">ftp://ftp.easysw.com/pub/libraries</A>
</PRE></UL>
<P>If you make changes to the man pages you'll need GNU groff or another
nroff-like package. GNU groff is available from:
<UL><PRE>
<A HREF="ftp://ftp.gnu.org/pub/groff">ftp://ftp.gnu.org/pub/groff</A>
</PRE></UL>
<P>The documentation is formatted using the HTMLDOC software. If you need to
make changes you can get the HTMLDOC software from:
<UL><PRE>
<A HREF="http://www.easysw.com/htmldoc">http://www.easysw.com/htmldoc</A>
</PRE></UL>
<H3>Compiling CUPS</H3>
<P>CUPS uses GNU autoconf to configure the makefiles and source code
for your system. To configure CUPS for your system type:
<UL><PRE>
% ./configure ENTER
</PRE></UL>
<P>The default installation will put the CUPS software in the
<CODE>/usr</CODE> and <CODE>/var</CODE> directories on your system,
which will overwrite any existing printing commands on your system. To
install the CUPS software in another location use the
<CODE>--prefix</CODE> option:
<UL><PRE>
% ./configure --prefix=/usr/local ENTER
</PRE></UL>
<P>If the PNG, JPEG, TIFF, and ZLIB libraries are not installed in a
system default location (typically <CODE>/usr/include</CODE> and
<CODE>/usr/lib</CODE>) you'll need to set the <CODE>CFLAGS</CODE> and
<CODE>LDFLAGS</CODE> environment variables prior to running configure:
<UL><PRE>
% setenv CFLAGS "-I/some/directory"
% setenv LDFLAGS "-L/some/directory"
% ./configure ... ENTER
</PRE></UL>
<P>Once you have configured things, just type:
<UL><PRE>
% make ENTER
</PRE></UL>
<P>to build the software.
<H3>Installing the Software</H3>
<P>To install the software type:
<UL><PRE>
% make install ENTER
</PRE></UL>
<H3>Running the Software</A></H3>
Once you have installed the software you can start the CUPS daemon by
typing:
<UL><PRE>
% /usr/sbin/cupsd &amp; ENTER
</PRE></UL>
<H2><A NAME="binary">Installing a Binary Distribution</A></H2>
<P>We are currently distributing CUPS binary distributions in TAR format
with installation and removal scripts.
<UL>
<B>WARNING:</B>
<P>Installing CUPS will overwrite your existing printing
system. If you experience difficulties with the CUPS software
and need to go back to your old printing system, you will need
to remove the CUPS software with the provided script and
reinstall the printing system from your operating system CDs.
</UL>
<P>To install the CUPS software you will need to be logged in as root
(doing an "su" is good enough). Once you are the root user, run the
installation script with:
<UL><PRE>
./cups.install ENTER
</PRE></UL>
<P>After asking you a few yes/no questions the CUPS software will be
installed and the scheduler will be started automatically.
<H1 ALIGN=RIGHT>3 - Printer Queue Management</H1>
<P>This chapter discusses how to add, modify, and delete print queues
on your system.
<H2>The lpadmin Command</H2>
<P>The <CODE>lpadmin</CODE> command allows you to perform most printer
administration tasks from the command-line. Since <CODE>lpadmin</CODE>
is also a System V printing system command, it is located in the
<CODE>/usr/lib</CODE> directory instead of a more common one like
<CODE>/usr/bin</CODE> or <CODE>/usr/sbin</CODE>.
<H2>Adding and Modifying Printers</H2>
<P>To add a printer to CUPS you simply run the <CODE>lpadmin</CODE> command
with the "-p" option:
<UL><PRE>
% /usr/lib/lpadmin -p<I>printer</I> -v<I>device</I> -P<I>ppd</I> ENTER
</PRE></UL>
<P>Spaces between the option letter and value are optional.
<P>The <I>printer</I> name can be up to 127 letters, digits, hyphens,
and underscores. Unlike other printing systems, the printer name in
CUPS is <I>not</I> case-sensitive, so you can't add two printers named
<CODE>LaserJet</CODE> and <CODE>laserjet</CODE>.
<P>The <I>device</I> argument specifies the device URI or filename for the
printer. The following devices are supported in a basic installation of
CUPS:
<DL>
<DT>file:/dev/filename
<DT>/dev/filename
<DD>Sends all output to the specified file.
<DT>ipp://hostname[:port]/resource
<DD>Sends all output to the specified IPP printer or server.
The <I>port</I> parameters defaults to 631.
<DT>lpd://hostname/queue
<DD>Sends all output to the specified LPD printer queue.
<DT>parallel:/dev/filename
<DD>Sends all output to the specified parallel port device.
<DT>serial:/dev/filename[?options]
<DD>Sends all output to the specified serial port device. The
<I>options</I> can be any of the following separated by the
plus (+) character:
<UL>
<LI><CODE>baud=<I>rate</I></CODE> - Sets the baud rate
for the device.
<LI><CODE>bits=<I>7 or 8</I></CODE> - Sets the number
of data bits.
<LI><CODE>parity=<I>even</I></CODE> - Sets even parity
checking.
<LI><CODE>parity=<I>odd</I></CODE> - Sets odd parity
checking.
<LI><CODE>parity=<I>none</I></CODE> - Turns parity
checking off.
</UL>
<DT>socket://hostname[:port]
<DD>Sends all output to the specified printer using the
AppSocket protocol. The <I>port</I> parameter defaults to 9100.
</DL>
<P>The <I>ppd</I> argument specifies the PostScript Printer Description file
to use for this printer. Many options (such as media size, etc.) will not
be available if you omit this part of the <CODE>lpadmin</CODE> command.
<H3>Using Standard Printer Drivers</H2>
<P>The <CODE>lpadmin</CODE> command allows you to use "standard" PPD files
and interface scripts located in the <CODE>/usr/share/cups/model</CODE>
directory with the "-m" option:
<UL><PRE>
% /usr/lib/lpadmin -p<I>printer</I> -v<I>device</I> -m<I>model</I> ENTER
</PRE></UL>
<P>The <I>model</I> argument specifies the name of the PPD file or interface
script. For example, to add a printer using the sample HP DeskJet series
driver connected to parallel port 1 under Linux you would use:
<UL><PRE>
% /usr/lib/lpadmin -pDeskJet -vparallel:/dev/par1 -mdeskjet.ppd ENTER
</PRE></UL>
<H2>Removing Printers</H2>
<H2>Reconfiguring Printers</H2>
<P>To remove a printer to CUPS you simply run the <CODE>lpadmin</CODE> command
with the "-x" option:
<H2>Printer Options</H2>
<UL><PRE>
% /usr/lib/lpadmin -x<I>printer</I> ENTER
</PRE></UL>
<H2>Printer Security</H2>
<H2>Printer Classes</H2>
<H2>Printer Accounting</H2>
<P>CUPS allows you to group similar printers in a <I>printer class</I>. When
a user sends a print job to a class, the job will be processed by the first
available printer in that class.
<H1>Printing System Management</H1>
<P>To add a printer to a class you simply run the <CODE>lpadmin</CODE> command
with the "-p" and "-c" options:
<H2>Log Files</H2>
<UL><PRE>
% /usr/lib/lpadmin -p<I>printer</I> -c<I>class</I> ENTER
</PRE></UL>
<P>The <I>class</I> is created automatically if it doesn't exist. To remove a
class just use the "-x" option:
<UL><PRE>
% /usr/lib/lpadmin -x<I>class</I> ENTER
</PRE></UL>
<H2>Setting the Default Printer</H2>
<P>To set the default printer or class simply run the <CODE>lpadmin</CODE>
command with the "-d" option:
<UL><PRE>
% /usr/lib/lpadmin -d<I>destination</I> ENTER
</PRE></UL>
<P>The <I>destination</I> argument is the name of the printer or class.
<H1 ALIGN=RIGHT>4 - Printing System Management</H1>
<P>This chapter shows how you can configure the CUPS server.
<H2>Network Configuration</H2>
<H2>Adding File Types</H2>
<P>The default configuration of the CUPS server listens for connections from
all network interfaces on port 631 (the standard IPP port). Administration
functions are limited to local connections with the appropriate username and
password.
<P>If you'd like to limit access to your system you'll need to edit the
<CODE>/var/cups/conf/cupsd.conf</CODE> file.
<H3>Port</H3>
<P>The <CODE>Port</CODE> directive specifies a port to listen on for
all interfaces. Besides the standard IPP port (631) you can also setup
your server to listen on the HTTP port (80) to use your CUPS server as
a standard web server as well.
<H3>Listen</H3>
<P>The <CODE>Listen</CODE> directive specifies a listening address and port,
extending the functionality of the <CODE>Port</CODE> directive. If you want
to allow connections only from the local machine you can use:
<UL><PRE>
Listen 127.0.0.1:631
</PRE></UL>
<P>instead of the <CODE>Port</CODE> directive.
<P>If you want to limit access to a specific network/subnet, make sure you
specific only the network address and not your system's network address!
<H3>BrowsePort</H3>
<P>The <CODE>BrowsePort</CODE> directive controls which port is monitored for
remote printers. By default it is set to the IPP port (631), however you can
change it as needed.
<UL>
<B>NOTE:</B>
<P>You must set the <CODE>BrowsePort</CODE> to the same value
on all of the systems that you want to see.
</UL>
<H3>BrowseAddress</H3>
<P>The <CODE>BrowseAddress</CODE> directive specifies a broadcast address to
use when sending printer status updates over the network. The default
browse address is <CODE>255.255.255.255</CODE> which will send printer
information to all subnets.
<UL>
<B>NOTE:</B>
<P>If you are using HP-UX 10.20 and a subnet that is not 24,
16, or 8 bits, printer browsing (and in fact all broadcast
reception) will not work. This problem appears to be fixed in
HP-UX 11.0.
</UL>
<H2>Printer Security</H2>
<P>CUPS provides IP and domain-name based access control and Basic
authentication for authentication.
<H3>Location</H3>
<P>The <CODE>Location</CODE> directive defines access control for a
specific HTTP directory. The following pseudo directories are provided
by the CUPS server:
<UL>
<LI><CODE>/admin</CODE> - This is the URI that must be referenced to
do printer administation commands.
<LI><CODE>/classes</CODE> - This is the URI that must be referenced to
access printer classes.
<LI><CODE>/jobs</CODE> - This is the URI that must be referenced to
access jobs.
<LI><CODE>/printers</CODE> - This is the URI that must be referenced to
access printers.
</UL>
<P>All other directories are taken from the
<CODE>/usr/share/cups/doc</CODE> directory.
<P>The <CODE>Location</CODE> directive surrounds the other access control
directives described below. The default server configuration uses:
<UL><PRE>
&lt;Location /admin&gt;
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
&lt;/Location&gt;
</PRE></UL>
<H3>Order</H3>
<P>The <CODE>Order</CODE> directive defines the default access control.
The following values are supported:
<UL>
<LI><CODE>Order Allow,Deny</CODE> - Allow requests from all
systems <I>except</I> for those listed in a <CODE>Deny</CODE>
directive.
<LI><CODE>Order Deny,Allow</CODE> - Allow requests only from
those listed in an <CODE>Allow</CODE> directive.
</UL>
<P>The <CODE>Order</CODE> directive must appear inside a
<CODE>Location</CODE> directive.
<H3>Allow</H3>
<P>The <CODE>Allow</CODE> directive specifies a hostname, IP address, or
network that is allowed access to the server:
<UL><PRE>
Allow from All
Allow from None
Allow from *.domain.com
Allow from .domain.com
Allow from host.domain.com
Allow from nnn.*
Allow from nnn.nnn.*
Allow from nnn.nnn.nnn.*
Allow from nnn.nnn.nnn.nnn
Allow from nnn.nnn.nnn.nnn/mm
Allow from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
</PRE></UL>
<P><CODE>Allow</CODE> directives are cummulative, so multiple <CODE>Allow</CODE>
directives can be used to allow access for multiple hosts or networks.
<P>The <CODE>Allow</CODE> directive must appear inside a
<CODE>Location</CODE> directive.
<H3>Deny</H3>
<P>The <CODE>Deny</CODE> directive specifies a hostname, IP address, or
network that is allowed access to the server:
<UL><PRE>
Deny from All
Deny from None
Deny from *.domain.com
Deny from .domain.com
Deny from host.domain.com
Deny from nnn.*
Deny from nnn.nnn.*
Deny from nnn.nnn.nnn.*
Deny from nnn.nnn.nnn.nnn
Deny from nnn.nnn.nnn.nnn/mm
Deny from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
</PRE></UL>
<P><CODE>Deny</CODE> directives are cummulative, so multiple <CODE>Deny</CODE>
directives can be used to allow access for multiple hosts or networks.
<P>The <CODE>Deny</CODE> directive must appear inside a
<CODE>Location</CODE> directive.
<H3>AuthType</H3>
<P>The <CODE>AuthType</CODE> directive defines the type of authentication to
perform:
<UL>
<LI><CODE>None</CODE> - No authentication should be performed
(default.)
<LI><CODE>Basic</CODE> - Basic authentication should be
performed using the UNIX password and group files.
</UL>
<P>The <CODE>AuthType</CODE> directive must appear inside a
<CODE>Location</CODE> directive.
<H3>AuthClass</H3>
<P>The <CODE>AuthClass</CODE> directive defines what level of <CODE>Basic</CODE>
access is required:
<UL>
<LI><CODE>Anonymous</CODE> - No authentication should be performed
(default.)
<LI><CODE>User</CODE> - A valid username and password is required.
<LI><CODE>System</CODE> - A valid username and password is
required, and the username must belong to the "sys" group (this
can be changed using the <CODE>SystemGroup</CODE> directive,
below.
<LI><CODE>Group</CODE> - A valid username and password is
required, and the username must belong to the group named by
the <CODE>AuthGroupName</CODE> directive.
</UL>
<P>The <CODE>AuthClass</CODE> directive must appear inside a
<CODE>Location</CODE> directive.
<H3>AuthGroupName</H3>
<P>The <CODE>AuthGroupName</CODE> directive sets the group to use for
<CODE>Group</CODE> authentication.
<P>The <CODE>AuthGroupName</CODE> directive must appear inside a
<CODE>Location</CODE> directive.
<H3>SystemGroup</H3>
<P>The <CODE>SystemGroup</CODE> directive sets the administration group used
when authenticating the <CODE>System</CODE> type. It defaults to the "sys"
group.
<H2>File Formats</H2>
<P>CUPS provides a MIME-based file typing and filtering mechanism to
convert files to a printable format for each printer. The
<CODE>mime.types</CODE> and <CODE>mime.convs</CODE> files define the
file type and filters that are available on the system.
<H3>mime.types</H3>
<P>The <CODE>mime.types</CODE> defines the known file types. Each line
of the file starts with the MIME type and may be followed by one or
more file type recognition rules. For example, the
<CODE>text/html</CODE> file type is defined as:
<UL><PRE>
text/html html htm \
printable(0,1024) + (string(0,"&lt;HTML&gt;") string(0,"&lt;!DOCTYPE"))
</PRE></UL>
<P>The first two rules say that any file with an extension of ".html" or
".htm" is a HTML file. The third rules says that any file whose first
1024 characters are printable text and starts with the strings "&lt;HTML&gt;"
or "&lt;!DOCTYPE" is a HTML file as well.
<P>The first two rules deal solely with the name of the file being
typed. This is useful when the original filename is known, however for
print files the server doesn't always have a filename to work with. The
third rule takes care of this possibility and automatically figures out
the file type based upon the contents of the file instead.
<P>The available tests are:
<UL>
<LI><CODE>( expr )</CODE> - Parenthesis for expression grouping
<LI><CODE>+</CODE> - Logical AND
<LI><CODE>,</CODE> or whitespace - Logical OR
<LI><CODE>!</CODE> - Logical NOT
<LI><CODE>match("pattern")</CODE> - Pattern match on filename
<LI><CODE>extension</CODE> - Pattern match on "*.extension"
<LI><CODE>ascii(offset,length)</CODE> - True if bytes are valid
printable ASCII (CR, NL, TAB, BS, 32-126)
<LI><CODE>printable(offset,length)</CODE> - True if bytes are
printable 8-bit chars (CR, NL, TAB, BS, 32-126, 160-254)
<LI><CODE>string(offset,"string")</CODE> - True if bytes are
identical to string
<LI><CODE>char(offset,value)</CODE> - True if byte is identical
<LI><CODE>short(offset,value)</CODE> - True if 16-bit integer
is identical
<LI><CODE>int(offset,value)</CODE> - True if 32-bit integer is
identical
<LI><CODE>locale("string")</CODE> - True if current locale
matches string
</UL>
<H3>mime.convs</H3>
<P>The <CODE>mime.convs</CODE> file defines all of the filter programs that
are known to the system. Each line consists of:
<UL><PRE>
source destination cost program
text/plain application/postscript 50 texttops
application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster
image/* application/vnd.cups-postscript 50 imagetops
image/* application/vnd.cups-raster 50 imagetoraster
</PRE></UL>
<P>The <I>source</I> field is a MIME type, optionally using a wildcard for
the super-type or sub-type (e.g. "text/plain", "image/*", "*/postscript").
<P>The <I>destination</I> field is a MIME type defined in the
<CODE>mime.types</CODE> file.
<P>The <I>cost</I> field defines a relative cost for the filtering
operation from 1 to 100. The cost is used to choose between two
different sets of filters when converting a file. For example, to convert
from <CODE>image/jpeg</CODE> to <CODE>application/vnd.cups-raster</CODE>,
you could use the <CODE>imagetops</CODE> and <CODE>pstoraster</CODE>
filters for a total cost of 100, or the <CODE>imagetoraster</CODE> filter
for a total cost of 50.
<P>The <I>program</I> field defines the filter program to run; the
special program "-" can be used to make two file types equivalent. The
program must accept the standard filter arguments and environment
variables described in the CUPS Interface Design Document:
<UL><PRE>
program job user title options [filename]
</PRE></UL>
<P>If specified, the <I>filename</I> argument defines a file to read
when filtering, otherwise the filter must read from the standard input.
All filtered output must go to the standard output.
<H1 ALIGN=RIGHT>5 - Printer Accounting</H1>
This chapter describes the CUPS log files.
<H2>Where to Find the Log Files</H2>
<P>The log files are normally stored in the <CODE>/var/cups/logs</CODE>
directory. You can change this by editing the
<CODE>/var/cups/conf/cupsd.conf</CODE> configuration file.
<H2>The access_log File</H2>
<P>The <CODE>access_log</CODE> file lists each HTTP resource that is accessed
by a web browser or CUPS/IPP client. Each line is in the so-called "Common
Log Format" used by many web servers and web reporting tools:
<UL><PRE>
host group user date-time \"method resource version\" status bytes
127.0.0.1 - - [20/May/1999:19:20:29 +0000] "POST /admin/ HTTP/1.1" 401 0
127.0.0.1 - mike [20/May/1999:19:20:31 +0000] "POST /admin/ HTTP/1.1" 200 0
</PRE></UL>
<P>The <I>host</I> field will normally only be an IP address unless you
have changed the <CODE>HostnameLookups</CODE> directive on in the
<CODE>cupsd.conf</CODE> file.
<P>The <I>group</I> field always contains "-".
<P>The <I>user</I> field is the authenticated username of the requesting user.
If no username and password is supplied for the request then this field
contains "-".
<P>The <I>date-time</I> field is the date and time of the request in Greenwich
Mean Time (a.k.a. ZULU) and is in the format:
<UL><PRE>
[DD/MON/YYYY:HH:MM:SS +0000]
</PRE></UL>
<P>The <I>method</I> field is the HTTP method used ("GET", "PUT", "POST", etc.)
<P>The <I>resource</I> field is the filename of the requested resource.
<P>The <I>version</I> field is the HTTP specification version used by the
client. For CUPS clients this will always be "HTTP/1.1".
<P>The <I>status</I> field contains the HTTP result status of the
request. Usually it is "200", but other HTTP status codes are possible.
For example, 401 is the "unauthorized access" status in the example
above.
<P>The <I>bytes</I> field contains the number of bytes in the request.
For POST requests the <I>bytes</I> field contains the number of bytes
of non-IPP data that is received from the client.
<H2>The error_log File</H2>
<P>The <CODE>error_log</CODE> file lists messages from the scheduler (errors,
warnings, etc.):
<UL><PRE>
level date-time message
I [20/May/1999:19:18:28 +0000] Job 1 queued on 'DeskJet' by 'mike'.
I [20/May/1999:19:21:02 +0000] Job 2 queued on 'DeskJet' by 'mike'.
I [20/May/1999:19:22:24 +0000] Job 2 was cancelled by 'mike'.
</PRE></UL>
<P>The <I>level</I> field contains the type of message:
<UL>
<LI><CODE>E</CODE> - An error occurred.
<LI><CODE>W</CODE> - The server was unable to perform some action.
<LI><CODE>I</CODE> - Informational message.
<LI><CODE>D</CODE> - Debugging message.
</UL>
<P>The <I>date-time</I> field contains the date and time of when the page
started printing. The format of this field is identical to the <I>data-time</I>
field in the <CODE>access_log</CODE> file.
<P>The <I>message</I> fields contains a free-form textual message.
<H2>The page_log File</H2>
<P>The <CODE>page_log</CODE> file lists each page that is sent to a printer.
Each line contains the following information:
<UL><PRE>
printer user job-id date-time page-number num-copies
DeskJet root 2 [20/May/1999:19:21:05 +0000] 1 0
</PRE></UL>
<P>The <I>printer</I> field contains the name of the printer that
printed the page. If you send a job to a printer class, this field will
contain the name of the printer that was assigned the job.
<P>The <I>user</I> field contains the name of the user (the IPP
<CODE>requesting-user-name</CODE> attribute) that submitted this file for
printing.
<P>The <I>job-id</I> field contains the job number of the page being printed.
Job numbers are reset to 1 whenever the CUPS server is started, so don't depend
on this number being unique!
<P>The <I>date-time</I> field contains the date and time of when the page
started printing. The format of this field is identical to the <I>data-time</I>
field in the <CODE>access_log</CODE> file.
<P>The <I>page-number</I> and <I>num-pages</I> fields contain the page number
and number of copies being printed of that page. For printer that can not
produce copies on their own, the <I>num-pages</I> field will always be 1.
</BODY>
</HTML>
+3
Ver Arquivo
@@ -116,6 +116,9 @@ with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
This software design description document is organized into the
following sections:
+126 -130
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990513142506Z)/Title(DRAFT - CUPS Software Design Description)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990521210321Z)/Title(DRAFT - CUPS Software Design Description)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier-Oblique/Encoding 2 0 R>>endobj
@@ -17,9 +17,9 @@
15 0 obj<</Subtype/Link/Rect[108.0 646.8 124.5 659.8]/Border[0 0 0]/Dest[219 0 R/XYZ null 658 0]>>endobj
16 0 obj<</Subtype/Link/Rect[124.5 646.8 159.6 659.8]/Border[0 0 0]/Dest[219 0 R/XYZ null 658 0]>>endobj
17 0 obj<</Subtype/Link/Rect[159.6 646.8 203.0 659.8]/Border[0 0 0]/Dest[219 0 R/XYZ null 658 0]>>endobj
18 0 obj<</Subtype/Link/Rect[108.0 633.6 124.5 646.6]/Border[0 0 0]/Dest[219 0 R/XYZ null 474 0]>>endobj
19 0 obj<</Subtype/Link/Rect[124.5 633.6 173.1 646.6]/Border[0 0 0]/Dest[219 0 R/XYZ null 474 0]>>endobj
20 0 obj<</Subtype/Link/Rect[173.1 633.6 216.4 646.6]/Border[0 0 0]/Dest[219 0 R/XYZ null 474 0]>>endobj
18 0 obj<</Subtype/Link/Rect[108.0 633.6 124.5 646.6]/Border[0 0 0]/Dest[219 0 R/XYZ null 434 0]>>endobj
19 0 obj<</Subtype/Link/Rect[124.5 633.6 173.1 646.6]/Border[0 0 0]/Dest[219 0 R/XYZ null 434 0]>>endobj
20 0 obj<</Subtype/Link/Rect[173.1 633.6 216.4 646.6]/Border[0 0 0]/Dest[219 0 R/XYZ null 434 0]>>endobj
21 0 obj<</Subtype/Link/Rect[72.0 607.2 80.2 620.2]/Border[0 0 0]/Dest[225 0 R/XYZ null 818 0]>>endobj
22 0 obj<</Subtype/Link/Rect[80.2 607.2 131.6 620.2]/Border[0 0 0]/Dest[225 0 R/XYZ null 818 0]>>endobj
23 0 obj<</Subtype/Link/Rect[108.0 594.0 124.5 607.0]/Border[0 0 0]/Dest[225 0 R/XYZ null 737 0]>>endobj
@@ -292,7 +292,7 @@
153 0 obj<</D[219 0 R/XYZ null 818 null]>>endobj
154 0 obj<</D[219 0 R/XYZ null 737 null]>>endobj
155 0 obj<</D[219 0 R/XYZ null 658 null]>>endobj
156 0 obj<</D[219 0 R/XYZ null 474 null]>>endobj
156 0 obj<</D[219 0 R/XYZ null 434 null]>>endobj
157 0 obj<</D[225 0 R/XYZ null 818 null]>>endobj
158 0 obj<</D[225 0 R/XYZ null 737 null]>>endobj
159 0 obj<</D[225 0 R/XYZ null 540 null]>>endobj
@@ -408,17 +408,13 @@ endobj
œéöÐ1‡  à, sd Þ Tê׌ÌÇ3 ÔKÎcîç ÇÜa:\‡±†;peu°õfŽàB*ý@±ž1ð?j˜c† À©ÃtXÄ ë€í‡é°”éL/AƒÈ!Qà¸ÖX°•Ý5CreŽt˜Œ¸A8F†Xûª¥qB
Õ,
3Cìuâ,ùV…™!öªõا»@sá
±GéÈ l
SCô“‘5^)^`&°}Zâ­Ç7C-—ôƶÄÜHº 06Äž4QùP0´=yg´ªWÆÀxÔöãsCkc_ßË“‘¡l'fƲ6}¤`aàÚ÷bw„T®”Ôa6µƒ¢Y!™Kz#ÉÈ|#· &……›‚%s°P‘Æõ‚ÁE»Ãcùn`)l uÀÂêBÉ*ÌUñÊŽ‰€ùªE0–> %w²K/U`+J;‚½H Û7ƒÁ¢6™ª«å4Øóü'ëàÙbQo²¹ŠˆVÿ¦sT¹¦ßfÃçJY\žCí,†Å·Å]\Ìó¼ó¤çÎjŸurÅ·à¿tþ^°†qaÂ%=~9GYc~Áûô•—A‡mÇÙe—9Þ3©:¦Ý\&¶G{ÐöuÄþÜ…!u¦4ÈˇF¿Éûedò¸
S®Ü³SÎΗËåë‡Çr¿\^D†Ÿ¶0æ²ÑaÖKWþ#†K:ȵ°Àe&‰£tŽË½[Yár®Ãº—¾p\rjÝ…ä"ìÚ Q zH®"r‰kc+Vw¡¹X+=i|b“+w†kQØärFëqÛx.MEãi\Ü%œDƒÆå„t`÷{)\r2VHãrÀÑ[‡$®Ñ-Ÿu@ãÊ'b…T®‘ã_Â6kTK¤ä¾P¹ÆôΔí'*׈=)iŽÌ5Ú£¥½Ð¹FbÄÄ2×8CŒ¸·ËàeˆQ³ 8\”ôÀ14ƒÍ5¸vÐSåx\k#É%…»RhÂ5¤(²R‡¹\Ãñ2ÉØ\Œ´ŸA—1×@“1扮!ü³Ï=HaÂÕ¿)ò³4¸ú3H>5ãêWM’…
¹útÐF9Ц\ý™%ãs‘s¨{š˜ØçêcÚb˜®n‡Ë¾,šŸ›°ÂUH»¶xiÞ";\¶h¯Ë‚MáW!/Üé,\–ºì|S¸ÆUÈkc|m«-6¹ø©ÕªK{-±Ëe^“‹Kf—ª.ÙùkÛm胋˜ï/{xÏE?\åïŸßôrûÞ¸v½Öagˇ¾îÝ'×®Û®—gê~º|èó¾}sí;n{Âayq¶-çËååÃCï·„k„ɧWé«;ùêÝÅÕG!'n®ÅÍúí?ÿÓCvû£oÄ}¹ÈýÝ·¿ýöËgñðùë/¿ÿãö??}ùåOß~ùõÿ,ÿ÷ñnÄÕÕö®>¼ûA¼¹zÿözû!Û‹ßäo®Þ®·ß\ݼýA¼¹þ°¿GòÛ¯?}6|ùõç¿üôíë®âMõs~ýÓß¿üòûÿùöØÎ?¼yü×Ç·øƒÈ¶¿ü*²Ï_?ùë矷—&ò‘êÿTMòšendstream
endobj
215 0 obj
6311
endobj
±GéÈ l
SCô“‘5^)^`&°}Zâ­Ç7C-—ôƶÄÜHº 06Äž4QùP0´=yg´ªWÆÀxÔöãsCkc_ßË“‘¡l'fƲ6}¤`aàÚ÷bw„T®”Ôa6µƒ¢Y!™Kz#ÉÈ|#· &……›‚%s°P‘Æõ‚ÁE»Ãcùn`)l uÀÂêBÉ*ÌUñÊŽ‰€ùªE0–> %w²K/U`+J;‚½H Û7ƒÁ¢6™ª«å4Øóü'ëàÙbQo²¹ŠˆVÿ¦sT¹¦ßfÃçJY\žCí,†Å·Å]\Ìó¼ó¤çÎjŸurÅ·à¿tþ^°†qaÂ%=~9GYc~Áûô•—A‡mÇÙe—9Þ3©:¦Ý\&¶G{ÐöuÄþÜ…!u¦4ÈˇF¿Éûedò¸
S®Ü³SÎΗËåë‡Çr¿\^D†Ÿ¶0æ²ÑaÖKWþ#†K:ȵ°Àe&‰£tŽË½[Yár®Ãº—¾p\rjÝ…ä"ìÚ Q zH®"r‰kc+Vw¡¹X+=i|b“+w†kQØärFëqÛx.MEãi\Ü%œDƒÆå„t`÷{)\r2VHãrÀÑ[‡$®Ñ-Ÿu@ãÊ'b…T®‘ã_Â6kTK¤ä¾P¹ÆôΔí'*׈=)iŽÌ5Ú£¥½Ð¹FbÄÄ2×8CŒ¸·ËàeˆQ³ 8\”ôÀ14ƒÍ5¸vÐSåx\k#É%…»RhÂ5¤(²R‡¹\Ãñ2ÉØ\Œ´ŸA—1×@“1扮!ü³Ï=HaÂÕ¿)ò³4¸ú3H>5ãêWM’…
¹útÐF9Ц\ý™%ãs‘s¨{š˜ØçêcÚb˜®n‡Ë¾,šŸ›°ÂUH»¶xiÞ";\¶h¯Ë‚MáW!/Üé,\–ºì|S¸ÆUÈkc|m«-6¹ø©ÕªK{-±Ëe^“‹Kf—ª.ÙùkÛm胋˜ï/{xÏE?\åïŸßôrûÞ¸v½Öagˇ¾îÝ'×®Û®—gê~º|èó¾}sí;n{Âayq¶-çËååÃCï·„k„ɧWé«;ùêÝÅÕG!'n®ÅÍúí?ÿÓCvû£oÄ}¹ÈýÝ·¿ýöËgñðùë/¿ÿãö??}ùåOß~ùõÿ,ÿ÷ñnÄÕÕö®>¼ûA¼¹zÿözû!Û‹ßäo®Þ®·ß\ݼýA¼¹þ°¿GòÛ¯?}6|ùõç¿üôíë®âMõs~ýÓß¿üòûÿùöØÎ?¼yü×Ç·øƒÈ¶¿ü*²Ï_?ùë矷—&ò‘êÿTMòšendstream
endobj
215 0 obj
xÚ+ä2T0BCc3JÎår
6311
endobj
216 0 obj<</Type/Page/Parent 212 0 R/Contents 217 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 8 0 R>>>>>>endobj
217 0 obj<</Length 218 0 R/Filter/FlateDecode>>stream
@@ -592,7 +588,7 @@ endobj
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS046Ò3W072PIÑp rt QÐUp
VÎO+)O,JUpI-ÎLÏQÉE™%™ùyš!Y\ººP­†& A=#°€ PCIbfNj
260 0 obj
Ô¼kW ~ö&;endstream
endobj
260 0 obj
126
@@ -872,122 +868,122 @@ xref
0000017515 00000 n
0000017564 00000 n
0000017613 00000 n
0000017760 00000 n
0000017809 00000 n
0000017858 00000 n
0000017907 00000 n
0000017956 00000 n
0000018005 00000 n
0000018054 00000 n
0000018103 00000 n
0000018152 00000 n
0000018201 00000 n
0000018250 00000 n
0000018299 00000 n
0000018348 00000 n
0000018397 00000 n
0000018446 00000 n
0000018495 00000 n
0000018544 00000 n
0000018593 00000 n
0000018642 00000 n
0000018691 00000 n
0000018740 00000 n
0000018789 00000 n
0000018838 00000 n
0000018887 00000 n
0000018936 00000 n
0000018985 00000 n
0000019034 00000 n
0000019083 00000 n
0000019132 00000 n
0000019181 00000 n
0000019230 00000 n
0000019279 00000 n
0000019328 00000 n
0000019377 00000 n
0000019426 00000 n
0000019475 00000 n
0000019524 00000 n
0000019573 00000 n
0000019622 00000 n
0000019671 00000 n
0000019720 00000 n
0000019769 00000 n
0000019818 00000 n
0000019867 00000 n
0000019916 00000 n
0000019965 00000 n
0000020014 00000 n
0000020063 00000 n
0000020112 00000 n
0000020341 00000 n
0000020493 00000 n
0000026875 00000 n
0000026897 00000 n
0000027010 00000 n
0000027112 00000 n
0000027132 00000 n
0000027273 00000 n
0000028082 00000 n
0000028103 00000 n
0000028216 00000 n
0000028408 00000 n
0000028429 00000 n
0000028570 00000 n
0000029163 00000 n
0000029184 00000 n
0000029297 00000 n
0000029493 00000 n
0000029514 00000 n
0000029664 00000 n
0000030677 00000 n
0000030698 00000 n
0000030857 00000 n
0000032012 00000 n
0000032034 00000 n
0000032165 00000 n
0000033044 00000 n
0000033065 00000 n
0000033206 00000 n
0000034316 00000 n
0000034338 00000 n
0000034469 00000 n
0000035451 00000 n
0000035472 00000 n
0000035612 00000 n
0000036603 00000 n
0000036624 00000 n
0000036755 00000 n
0000037427 00000 n
0000037448 00000 n
0000037561 00000 n
0000037758 00000 n
0000037779 00000 n
0000037901 00000 n
0000038066 00000 n
0000038086 00000 n
0000038199 00000 n
0000038396 00000 n
0000038417 00000 n
0000038557 00000 n
0000039053 00000 n
0000039074 00000 n
0000039205 00000 n
0000039656 00000 n
0000039677 00000 n
0000039832 00000 n
0000042073 00000 n
0000042095 00000 n
0000042250 00000 n
0000043158 00000 n
0000043179 00000 n
0000043234 00000 n
0000043339 00000 n
0000043483 00000 n
0000043589 00000 n
0000017662 00000 n
0000017711 00000 n
0000017760 00000 n
0000017809 00000 n
0000017858 00000 n
0000017907 00000 n
0000017956 00000 n
0000018005 00000 n
0000018054 00000 n
0000018103 00000 n
0000018152 00000 n
0000018201 00000 n
0000018250 00000 n
0000018299 00000 n
0000018348 00000 n
0000018397 00000 n
0000018446 00000 n
0000018495 00000 n
0000018544 00000 n
0000018593 00000 n
0000018642 00000 n
0000018691 00000 n
0000018740 00000 n
0000018789 00000 n
0000018838 00000 n
0000018887 00000 n
0000018936 00000 n
0000018985 00000 n
0000019034 00000 n
0000019083 00000 n
0000019132 00000 n
0000019181 00000 n
0000019230 00000 n
0000019279 00000 n
0000019328 00000 n
0000019377 00000 n
0000019426 00000 n
0000019475 00000 n
0000019524 00000 n
0000019573 00000 n
0000019622 00000 n
0000019671 00000 n
0000019720 00000 n
0000019769 00000 n
0000019818 00000 n
0000019867 00000 n
0000019916 00000 n
0000019965 00000 n
0000020014 00000 n
0000020063 00000 n
0000020112 00000 n
0000020341 00000 n
0000020493 00000 n
0000026875 00000 n
0000026897 00000 n
0000027010 00000 n
0000027112 00000 n
0000027132 00000 n
0000027273 00000 n
0000028169 00000 n
0000028190 00000 n
0000028303 00000 n
0000028495 00000 n
0000028516 00000 n
0000028657 00000 n
0000029250 00000 n
0000029271 00000 n
0000029384 00000 n
0000029580 00000 n
0000029601 00000 n
0000029751 00000 n
0000030764 00000 n
0000030785 00000 n
0000030944 00000 n
0000032099 00000 n
0000032121 00000 n
0000032252 00000 n
0000033131 00000 n
0000033152 00000 n
0000033293 00000 n
0000034403 00000 n
0000034425 00000 n
0000034556 00000 n
0000035538 00000 n
0000035559 00000 n
0000035699 00000 n
0000036690 00000 n
0000036711 00000 n
0000036842 00000 n
0000037514 00000 n
0000037535 00000 n
0000037648 00000 n
0000037845 00000 n
0000037866 00000 n
0000037988 00000 n
0000038153 00000 n
0000038173 00000 n
0000038286 00000 n
0000038483 00000 n
0000038504 00000 n
0000038644 00000 n
0000039140 00000 n
0000039161 00000 n
0000039292 00000 n
0000039743 00000 n
0000039764 00000 n
0000039919 00000 n
0000042160 00000 n
0000042182 00000 n
0000042337 00000 n
0000043245 00000 n
0000043266 00000 n
0000043321 00000 n
0000043426 00000 n
0000043570 00000 n
0000043676 00000 n
0000043796 00000 n
0000044077 00000 n
0000043905 00000 n
0000044054 00000 n
+4
Ver Arquivo
@@ -31,6 +31,10 @@ supported with reduced functionality.
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
This software design description document is organized into the
+3
Ver Arquivo
@@ -60,6 +60,9 @@ with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
<P>This software security report is organized into the following
sections:</P>
+66 -65
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990513142508Z)/Title(DRAFT - CUPS Software Security Report)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990521210323Z)/Title(DRAFT - CUPS Software Security Report)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Bold/Encoding 2 0 R>>endobj
@@ -15,9 +15,9 @@
13 0 obj<</Subtype/Link/Rect[108.0 646.8 124.5 659.8]/Border[0 0 0]/Dest[82 0 R/XYZ null 658 0]>>endobj
14 0 obj<</Subtype/Link/Rect[124.5 646.8 159.6 659.8]/Border[0 0 0]/Dest[82 0 R/XYZ null 658 0]>>endobj
15 0 obj<</Subtype/Link/Rect[159.6 646.8 203.0 659.8]/Border[0 0 0]/Dest[82 0 R/XYZ null 658 0]>>endobj
16 0 obj<</Subtype/Link/Rect[108.0 633.6 124.5 646.6]/Border[0 0 0]/Dest[82 0 R/XYZ null 474 0]>>endobj
17 0 obj<</Subtype/Link/Rect[124.5 633.6 173.1 646.6]/Border[0 0 0]/Dest[82 0 R/XYZ null 474 0]>>endobj
18 0 obj<</Subtype/Link/Rect[173.1 633.6 216.4 646.6]/Border[0 0 0]/Dest[82 0 R/XYZ null 474 0]>>endobj
16 0 obj<</Subtype/Link/Rect[108.0 633.6 124.5 646.6]/Border[0 0 0]/Dest[82 0 R/XYZ null 434 0]>>endobj
17 0 obj<</Subtype/Link/Rect[124.5 633.6 173.1 646.6]/Border[0 0 0]/Dest[82 0 R/XYZ null 434 0]>>endobj
18 0 obj<</Subtype/Link/Rect[173.1 633.6 216.4 646.6]/Border[0 0 0]/Dest[82 0 R/XYZ null 434 0]>>endobj
19 0 obj<</Subtype/Link/Rect[72.0 607.2 80.2 620.2]/Border[0 0 0]/Dest[88 0 R/XYZ null 818 0]>>endobj
20 0 obj<</Subtype/Link/Rect[80.2 607.2 131.6 620.2]/Border[0 0 0]/Dest[88 0 R/XYZ null 818 0]>>endobj
21 0 obj<</Subtype/Link/Rect[108.0 594.0 124.5 607.0]/Border[0 0 0]/Dest[88 0 R/XYZ null 737 0]>>endobj
@@ -107,7 +107,7 @@
59 0 obj<</D[82 0 R/XYZ null 818 null]>>endobj
60 0 obj<</D[82 0 R/XYZ null 737 null]>>endobj
61 0 obj<</D[82 0 R/XYZ null 658 null]>>endobj
62 0 obj<</D[82 0 R/XYZ null 474 null]>>endobj
62 0 obj<</D[82 0 R/XYZ null 434 null]>>endobj
63 0 obj<</D[88 0 R/XYZ null 818 null]>>endobj
64 0 obj<</D[88 0 R/XYZ null 737 null]>>endobj
65 0 obj<</D[88 0 R/XYZ null 540 null]>>endobj
@@ -183,13 +183,14 @@ endobj
œd™‘½¬ 6° ‹ÉsXC>°rHz€5EV
œåöÐ1‡ Ï àl sd Þ$Tê׌ ÌÇ3 ÔKÎcîç ÇÜi:Ü€±¦;peu°ÃõfŽàB*ý@±ž1ð?j˜c† ÀŸ©Ã ë€í°”éL/AƒÈ)Qà¸ÖX°•Ã5CreŽ ˜Œ¸A8F†Xû©¥qB
Õ*
3Cìuá,ùV…™!öªõا»@sá
±GéÈ l
SCô“‘5^)^`&°}Zâ'o†Z.ém‰¹‘tAalˆ=i¢0ò¡`<i{òÎh+TïŒñ¬íÇ;ç†Öƾ¾—)&#CÙOÌþŠemúHÁÂĵïÅî _\P¹RÒ€ÙÔŠf…d.é&#ó vŒÜ&˜¾,™ƒÅ€Š4¯ .Ú7lË7KaK¨vJVa®Š7vLl¬W-‚ѰôñXÙ_(¹“ÍXz©[QÚ ìõ@JØ~ µÉT=ÈX-·ÑÀžç?[ÏóˆúE!›«ˆ8`õ_:G•[ú×lø\)‹Ëó糖Űø¶8 ‹‹9`žw™ô<Xík£N®ØãüÎ?Ö4.L¸¤Ç/—(k̯xŸ¾2â2°Ý<»î2Ç&UÇò¡›ËdÀhúϾ؟»0ä¢.ÔyýØ7ù°ŒLWaÊ•{vÊÅår¹|ý¸-ËåUdøi c.f½tå?b¸¤ƒ\ \f’8Êpá¸Ü°•¬{ë Ç%§6\H.©Í±¡‡ä*"—¸6ö¸²i
š‹µÓÑ“Æ'6¹rg¸…M.g´ç’ÑT4žÆÅÝÂA4h\NHö¼—Â%'c…4.,}tHâÝñY4®|"VHå9þ%`¹FµDJî •kLïL9~¢rØ“’æÈ\£M1ZÚ k¤)FL,cp3ňg» ®Q¦5Ë€ÃEIC3Ø\ƒk=UŽÇ5°v02™\R¸+…&\CŠ"+u˜Ë5/“ŒÍÅHûÄqs
3Cìuá,ùV…™!öªõا»@sá
±GéÈ l
SCô“‘5^)^`&°}Zâ'o†Z.ém‰¹‘tAalˆ=i¢0ò¡`<i{òÎh+TïŒñ¬íÇ;ç†Öƾ¾—)&#CÙOÌþŠemúHÁÂĵïÅî _\P¹RÒ€ÙÔŠf…d.é&#ó vŒÜ&˜¾,™ƒÅ€Š4¯ .Ú7lË7KaK¨vJVa®Š7vLl¬W-‚ѰôñXÙ_(¹“ÍXz©[QÚ ìõ@JØ~ µÉT=ÈX-·ÑÀžç?[ÏóˆúE!›«ˆ8`õ_:G•[ú×lø\)‹Ëó糖Űø¶8 ‹‹9`žw™ô<Xík£N®ØãüÎ?Ö4.L¸¤Ç/—(k̯xŸ¾2â2°Ý<»î2Ç&UÇò¡›ËdÀhúϾ؟»0ä¢.ÔyýØ7ù°ŒLWaÊ•{vÊÅår¹|ý¸-ËåUdøi c.f½tå?b¸¤ƒ\ \f’8Êpá¸Ü°•¬{ë Ç%§6\H.©Í±¡‡ä*"—¸6ö¸²i
š‹µÓÑ“Æ'6¹rg¸…M.g´ç’ÑT4žÆÅÝÂA4h\NHö¼—Â%'c…4.,}tHâÝñY4®|"VHå9þ%`¹FµDJî •kLïL9~¢rØ“’æÈ\£M1ZÚ k¤)FL,cp3ňg» ®Q¦5Ë€ÃEIC3Ø\ƒk=UŽÇ5°v02™\R¸+…&\CŠ"+u˜Ë5/“ŒÍÅHûÄqs
´cÞ80àÂ?ûÜ‹&\ý›"?KÓˆ«o0ƒäS3®~UÑ$YØ«Om”mÊÕ˜Y2¾19‡º§…‰}®>–-†éêv¸ìË¢ù½ +\…´k‹×æ=²ÃµµE{Cl
w¸
yåÎ`Ùä²4d—›Â5®BÞËàk[}±ÉÅO­>R]Ûë‰].ƒôjDêö˜\\2»T}pqÈ._ÛîC\ļxÙÃ{.úáÚ–G\v¼y×Ë×÷Ƶµƒ¼X>öõÝ}rí‡ívy¡§ëÇ>¿·o®ÃÀín8,¯.vår¹¼~|ìý+á¡@òëôÕ½|õîûâæ£›ïÞ~wë·wBþôOÙ§ï¥x#
yåÎ`Ùä²4d—›Â5®BÞËàk[}±ÉÅO­>R]Ûë‰].ƒôjDêö˜\\2»T}pqÈ._ÛîC\ļxÙÃ{.úáÚ–G\v¼y×Ë×÷Ƶµƒ¼X>öõÝ}rí‡ívy¡§ëÇ>¿·o®ÃÀín8,¯.vår¹¼~|ìý+á¡@òëôÕ½|õîûâæ£›ïÞ~wë·wBþôOÙ§ï¥x#
ÈEþó¿þß¾|ùçýò§¯¿‰ìó_þòõŸåŸ·íïÄÍÍ®ýÍÝGñææýÛÛ]û]»7yž½¹y»ÞU{s³Ù~ú›ÛOþðËoç…/?ÿôë_ÙW¼{ÿöCés~þëo_þôßÿóuÛÉß½ÙþßÇŸþò‘íþò—mG~ùüåïŸÚ5MäéÿiÁñ½endstream
endobj
78 0 obj
6308
@@ -292,7 +293,7 @@ endobj
106 0 obj<</Type/Page/Parent 75 0 R/Contents 107 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 3 0 R/F6 5 0 R/F8 6 0 R/F9 7 0 R>>>>>>endobj
107 0 obj<</Length 108 0 R/Filter/FlateDecode>>stream
T]o›0}çWÜÇíZÒ4…Ç %i¤ªcJ}uÍ
108 0 obj
õâf;‹òïwZ©ÝŠ¥N „uçžã{ð¯$‡Kºr¸™ÁÕ¸J¾µÉꄼ„vG•ÅÍÚîË6Ò8Çìékûs\gÅI¯‹le9´h•1 Èó€ Þt¶!ÕXšPZ7j8x´ ™î¬Çì=Qú>0ˤD9MØ î„îÁX°ÈQü‹ŽyÊXÿÌ4Ýà…Š7ÆÔé‘ uЂ3/ŒvÀ©F OèˆüÑÀ`Mo™r±v­`ÿåîžœá{ô1W$÷ìJ“|c÷S‘RžÒ«ò53Xrkô)eSm·)Š6„ÓÈÏtÇl•é«é©ÎŠèñ]=ÔÍt«Š<ÕÃýöj+´[ÛœœGá\5ÕE=Mºª›ï÷ˆ?7@ë"Ìë6»¡µL»
72Âv[§›»i¾[<Jô>­ß¡ˆgÁܽü”ã§Å+uô¼  ÿsJ̋ˬ¤ó
eX¯ÚäGòE8%endstream
endobj
@@ -392,61 +393,61 @@ xref
0000003840 00000 n
0000003944 00000 n
0000004049 00000 n
0000004574 00000 n
0000004679 00000 n
0000004784 00000 n
0000004889 00000 n
0000004992 00000 n
0000005096 00000 n
0000005201 00000 n
0000005306 00000 n
0000005411 00000 n
0000005516 00000 n
0000005854 00000 n
0000005886 00000 n
0000005918 00000 n
0000006128 00000 n
0000006175 00000 n
0000006222 00000 n
0000006269 00000 n
0000006316 00000 n
0000006363 00000 n
0000006410 00000 n
0000006457 00000 n
0000006504 00000 n
0000006551 00000 n
0000006598 00000 n
0000006646 00000 n
0000006694 00000 n
0000006742 00000 n
0000006790 00000 n
0000006838 00000 n
0000006886 00000 n
0000007058 00000 n
0000007207 00000 n
0000013584 00000 n
0000013605 00000 n
0000013715 00000 n
0000013815 00000 n
0000013834 00000 n
0000013971 00000 n
0000014774 00000 n
0000014794 00000 n
0000014904 00000 n
0000015091 00000 n
0000015111 00000 n
0000015248 00000 n
0000015839 00000 n
0000015859 00000 n
0000015969 00000 n
0000016159 00000 n
0000016179 00000 n
0000016298 00000 n
0000016513 00000 n
0000016533 00000 n
0000016643 00000 n
0000004154 00000 n
0000004259 00000 n
0000004364 00000 n
0000004469 00000 n
0000004574 00000 n
0000004679 00000 n
0000004784 00000 n
0000004889 00000 n
0000004992 00000 n
0000005096 00000 n
0000005201 00000 n
0000005306 00000 n
0000005411 00000 n
0000005516 00000 n
0000005854 00000 n
0000005886 00000 n
0000005918 00000 n
0000006128 00000 n
0000006175 00000 n
0000006222 00000 n
0000006269 00000 n
0000006316 00000 n
0000006363 00000 n
0000006410 00000 n
0000006457 00000 n
0000006504 00000 n
0000006551 00000 n
0000006598 00000 n
0000006646 00000 n
0000006694 00000 n
0000006742 00000 n
0000006790 00000 n
0000006838 00000 n
0000006886 00000 n
0000007058 00000 n
0000007207 00000 n
0000013584 00000 n
0000013605 00000 n
0000013715 00000 n
0000013815 00000 n
0000013834 00000 n
0000013971 00000 n
0000014864 00000 n
0000014884 00000 n
0000014994 00000 n
0000015181 00000 n
0000015201 00000 n
0000015338 00000 n
0000015929 00000 n
0000015949 00000 n
0000016059 00000 n
0000016249 00000 n
0000016269 00000 n
0000016388 00000 n
0000016603 00000 n
0000016623 00000 n
0000017194 00000 n
0000016733 00000 n
0000016932 00000 n
+4
Ver Arquivo
@@ -30,6 +30,10 @@ supported with reduced functionality.
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
<P>This software security report is organized into the following sections:</P>
+3
Ver Arquivo
@@ -54,6 +54,9 @@ with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
This software test plan is organized into the following sections:
<UL>
+4
Ver Arquivo
@@ -31,6 +31,10 @@ supported with reduced functionality.
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
This software test plan is organized into the following sections:
+442 -25
Ver Arquivo
@@ -15,40 +15,457 @@ Copyright 1997-1999, All Rights Reserved<BR>
<HR>
<H1 ALIGN=CENTER><A NAME=CONTENTS>Table of Contents</A></H1>
<BR>
<BR><B><A HREF=#1>1 Scope</A></B>
<BR><B><A HREF=#1>Preface</A></B>
<UL>
<LI><A HREF=#1_1>1.1 Identification</A></LI>
<LI><A HREF=#1_2>1.2 Document Overview</A></LI>
<LI><A HREF=#1_1>System Overview</A></LI>
<LI><A HREF=#1_2>Document Overview</A></LI>
</UL>
<B><A HREF=#2>2 Printing System Overview</A></B>
<BR>
<BR><B><A HREF=#3>3 Using the Printing System</A></B>
<B><A HREF=#2>1 - Printing System Overview</A></B>
<UL>
<LI><A HREF=#3_1>3.1 Choosing a Printer</A></LI>
<LI><A HREF=#3_2>3.2 Setting Printer Options</A></LI>
<LI><A HREF=#3_3>3.3 Submitting Files for Printing</A></LI>
<LI><A HREF=#3_4>3.4 Checking the Printer Status</A></LI>
<LI><A HREF=#2_1>The Printing Problem</A></LI>
<LI><A HREF=#2_2>The Technology</A></LI>
<LI><A HREF=#2_3>Filters</A></LI>
<LI><A HREF=#2_4>Printer Drivers</A></LI>
</UL>
<B><A HREF=#3>2 - Using the Printing System</A></B>
<UL>
<LI><A HREF=#3_1>Submitting Files for Printing</A></LI>
<LI><A HREF=#3_2>Choosing a Printer</A></LI>
<LI><A HREF=#3_3>Setting Printer Options</A></LI>
<LI><A HREF=#3_4>Printing Multiple Copies</A></LI>
<LI><A HREF=#3_5>Checking the Printer Status from the Command-Line</A></LI>
<LI><A HREF=#3_6>Checking the Printer Status from the Web</A></LI>
<LI><A HREF=#3_7>Canceling a Print Job</A></LI>
</UL>
<B><A HREF=#4>3 - Standard Printer Options</A></B>
<UL>
<LI><A HREF=#4_1>General Options</A></LI>
<UL>
<LI><A HREF=#4_1_1>Selecting the Media Size</A></LI>
<LI><A HREF=#4_1_2>Setting the Orientation</A></LI>
<LI><A HREF=#4_1_3>Printing On Both Sides of the Paper</A></LI>
<LI><A HREF=#4_1_4>Selecting a Range of Pages</A></LI>
<LI><A HREF=#4_1_5>Setting the Brightness</A></LI>
<LI><A HREF=#4_1_6>Setting the Gamma Correction</A></LI>
</UL>
<LI><A HREF=#4_2>Text Options</A></LI>
<UL>
<LI><A HREF=#4_2_1>Setting the Number of Characters Per Inch</A></LI>
<LI><A HREF=#4_2_2>Setting the Number of Lines Per Inch</A></LI>
<LI><A HREF=#4_2_3>Setting the Number of Columns</A></LI>
<LI><A HREF=#4_2_4>Setting the Page Margins</A></LI>
<LI><A HREF=#4_2_5>Pretty Printing</A></LI>
</UL>
<LI><A HREF=#4_3>Image Options</A></LI>
<UL>
<LI><A HREF=#4_3_1>Scaling the Image</A></LI>
<LI><A HREF=#4_3_2>Adjusting the Hue (Tint) of an Image</A></LI>
<LI><A HREF=#4_3_3>Adjusting the Saturation (Color) of an Image</A></LI>
</UL>
</UL>
<HR>
<H1><A NAME=1>1 Scope</A></H1>
<H2><A NAME=1_1>1.1 Identification</A></H2>
<H1 ALIGN=RIGHT><A NAME=1>Preface</A></H1>
This software users manual describes how to use the Common UNIX
Printing System (&quot;CUPS&quot;) Version 1.0.0.
<H2><A NAME=1_2>1.2 Document Overview</A></H2>
<H2><A NAME=1_1>System Overview</A></H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line
interfaces.
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for
managing print jobs and queues. The Line Printer Daemon (LPD, RFC1179),
Server Message Block (SMB), and AppSocket protocols are also supported
with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_2>Document Overview</A></H2>
<P>This software users manual is organized into the following sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Printing System Overview</LI>
<LI>4 - Using the Printing System</LI>
<LI>A - Glossary</LI>
<LI>1 - Printing System Overview</LI>
<LI>2 - Using the Printing System</LI>
<LI>3 - Standard Printer Options</LI>
<LI>4 - Checking the Status Via the Web</LI>
</UL>
<H1><A NAME=2>2 Printing System Overview</A></H1>
<P>
<H1><A NAME=3>3 Using the Printing System</A></H1>
<H2><A NAME=3_1>3.1 Choosing a Printer</A></H2>
<H2><A NAME=3_2>3.2 Setting Printer Options</A></H2>
<H2><A NAME=3_3>3.3 Submitting Files for Printing</A></H2>
<H2><A NAME=3_4>3.4 Checking the Printer Status</A></H2>
<H1 ALIGN=RIGHT><A NAME=2>1 - Printing System Overview</A></H1>
<P>This chapter provides an overview of how the Common UNIX Printing
System works. </P>
<H2><A NAME=2_1>The Printing Problem</A></H2>
<P>For years <I>the printing problem</I> has plagued UNIX&reg;. Unlike
Microsoft&reg; Windows&reg; or MacOS, UNIX has no standard interface or system
in place for supporting printers. Among the solutions previously
available, the Berkeley and System V printing systems are the most
prevalent. </P>
<P>These printing systems support line printers (text only) or
PostScript printers (text and graphics), and with some coaxing they can
be made to support a full range of printers and file formats. However,
because each varient of the UNIX operating system uses a different
printing system than the next, developing printer drivers for a wide
range of printers is extremely difficult. That combined with the
limited volume of customers for each UNIX varient has forced most
printer vendors to give up supporting UNIX entirely. </P>
<P>The Common UNIX Printing System, or CUPS, is designed to eliminate <I>
the printing problem</I>. One common printing system can be used by all
UNIX varients to support the printing needs of users. Printer vendors
can use its modular filter interface to develop a single driver program
that supports a wide range of file formats with little or no effort.
Since CUPS provides both the System V and Berkeley printing commands,
users (and applications) can reap the benefits of this new technology
with no changes. </P>
<H2><A NAME=2_2>The Technology</A></H2>
<P>CUPS is based upon an emerging Internet standard called the Internet
Printing Protocol, or IPP. IPP has been embraced by dozens of printer
and printer server manufacturers, and will be supported by the next
Microsoft Windows operating system. </P>
<P>IPP defines a standard protocol for printing as well as managing
print jobs and printer options like media size, resolution, and so
forth. Like all IP-based protocols, IPP can be used locally or over the
Internet to printers hundreds or thousands of miles away. Unlike other
protocols, however, IPP also supports access control, authentication,
and encryption, making it a much more secure printing solution than
older ones. </P>
<P>IPP is layered on top of the Hyper-Text Transport Protocol, or HTTP,
which is the basis of web servers on the Internet. This allows the user
to view documentation and status information on a printer or server
using their web browser. </P>
<P>CUPS provides a complete IPP/1.0-based printing system that provides
Basic authentication and domain or IP-based access control. Digest
authentication and TLS encryption will be available in future versions
of CUPS. </P>
<H2><A NAME=2_3>Filters</A></H2>
<P>Filters allow a user or application to print many types of files
without extra effort. Print jobs sent to a CUPS server are filtered
before sending them to a printer. Some filters convert job files to
different formats that the printer can understand. Others perform page
selection and ordering tasks. <I>Backend</I> filters perform the most
important task of all - they send the filtered print data to the
printer. </P>
<P>CUPS provides filters for printing many types of image files,
HP-GL/2 files, PDF files, and text files. CUPS also supplies PostScript
and image file Raster Image Processors, or RIPs, that convert
PostScript or image files into bitmaps that can be sent to a raster
printer. </P>
<P>CUPS provides backends for printing over parallel and serial ports,
and over the network via the JetDirect (AppSocket), Server Message
Block, and Line Printer Daemon protocols. </P>
<H2><A NAME=2_4>Printer Drivers</A></H2>
<P>Printer drivers in CUPS consist of one of more filters specific to a
printer. CUPS includes a sample printer driver for Hewlett-Packard
LaserJet and DeskJet printers. While this driver does not generate
optimal output for different printer models, it does demonstrate how
you can write your own printer drivers and incorporate them into CUPS. </P>
<H1 ALIGN=RIGHT><A NAME=3>2 - Using the Printing System</A></H1>
<P>This chapter shows you how to submit, query, and cancel print jobs
to different printers. </P>
<H2><A NAME=3_1>Submitting Files for Printing</A></H2>
<P>CUPS provides both the System V (<CODE>lp</CODE>) and Berkeley (<CODE>
lpr</CODE>) printing commands. To print a file to the default printer
on the system (or your only printer if you have only one) you just need
to type: </P>
<UL>
<PRE>
% lp filename ENTER
</PRE>
</UL>
<P>or: </P>
<UL>
<PRE>
% lpr filename ENTER
</PRE>
</UL>
<P>CUPS understands many different types of files directly, including
PostScript and image files. This allows you to print from inside your
applications or at the command-line, whichever is most convenient! </P>
<H2><A NAME=3_2>Choosing a Printer</A></H2>
<P>Many systems will have more than one printer available to the user.
These printers can be attached to the local system via a parallel or
serial port, or available over the network. </P>
<P>To see a list of available printers, use the <CODE>lpstat</CODE>
command: </P>
<UL>
<PRE>
% lpstat -p -d ENTER
</PRE>
</UL>
<P>The &quot;-p&quot; option specifies that you want to see a list of printers,
and the &quot;-d&quot; option reports the current system default printer or
class. </P>
<P>To print to a specific printer, use the &quot;-d&quot; option to the <CODE>lp</CODE>
command: </P>
<UL>
<PRE>
% lp -d printer filename ENTER
</PRE>
</UL>
<P>or the &quot;-P&quot; option to the <CODE>lpr</CODE> command: </P>
<UL>
<PRE>
% lpr -P printer filename ENTER
</PRE>
</UL>
<H2><A NAME=3_3>Setting Printer Options</A></H2>
<P>For many types of files, the default printer options may be
sufficient for your needs. However, there may be times when you need to
change the options for a particular file you are printing. </P>
<P>The <CODE>lp</CODE> command allows you to pass printer options using
the &quot;-o&quot; option: </P>
<UL>
<PRE>
% lp -o landscape -o scaling=75 -o media=A4 filename.jpg
</PRE>
</UL>
<P>The <CODE>lpr</CODE> command has no command-line option for printer
options. </P>
<P>The available printer options vary depending on the printer. The
standard options are described in <A HREF=#4>Chapter 3</A>. </P>
<H2><A NAME=3_4>Printing Multiple Copies</A></H2>
<P>Both the <CODE>lp</CODE> and <CODE>lpr</CODE> commands have options
for printing more than one copy of a file: </P>
<UL>
<PRE>
% lp -n num-copies filename ENTER
% lpr -#num-copies filename ENTER
</PRE>
</UL>
<P>Copies are normally <I>not</I> collated for you. To get collated
copies use the <CODE>lp</CODE> command with the &quot;-o Collate=True&quot;
option: </P>
<UL>
<PRE>
% lp -n num-copies -o Collate=True filename ENTER
</PRE>
</UL>
<H2><A NAME=3_5>Checking the Printer Status from the Command-Line</A></H2>
<P>The <CODE>lpstat</CODE> command can be used to check for jobs that
you have submitted for printing: </P>
<UL>
<PRE>
% lpstat ENTER
Printer-1 johndoe 4427776
Printer-2 johndoe 15786
Printer-3 johndoe 372842
</PRE>
</UL>
<P>The jobs are listed in the order they will be printed. To see which
files and printers are active, use the &quot;-p&quot; option: </P>
<UL>
<PRE>
% lpstat -p ENTER
printer DeskJet now printing DeskJet-1.
</PRE>
</UL>
<P>Or to show the jobs and the printers, use the &quot;-o&quot; and &quot;-p&quot; options: </P>
<UL>
<PRE>
% lpstat -o -p ENTER
Printer-1 johndoe 4427776
Printer-2 johndoe 15786
Printer-3 johndoe 372842
printer DeskJet now printing DeskJet-1.
</PRE>
</UL>
<H2><A NAME=3_6>Checking the Printer Status from the Web</A></H2>
<P>Since CUPS uses the Internet Printing Protocol, it is also a
full-featured web server. To use your web browser to monitor the
printers on your system, open the URL &quot;<A HREF=http://localhost:631>
http://localhost:631</A>&quot;. From there you can view the status of
classes, jobs, and printers with the click of a button! </P>
<H2><A NAME=3_7>Canceling a Print Job</A></H2>
<P>The <CODE>cancel</CODE> command cancels a print job: </P>
<UL>
<PRE>
% cancel job-id ENTER
</PRE>
</UL>
<P>The <I>job-id</I> is a number that was reported to you by the <CODE>
lp</CODE> or <CODE>lpstat</CODE> commands. </P>
<H1 ALIGN=RIGHT><A NAME=4>3 - Standard Printer Options</A></H1>
<P>This chapter describes the standard printer options that are
available when printing with the <CODE>lp</CODE> command. </P>
<H2><A NAME=4_1>General Options</A></H2>
<P>The following options apply when printing all types of files. </P>
<H3><A NAME=4_1_1>Selecting the Media Size</A></H3>
<P>The &quot;-o media=size&quot; option sets the media size: </P>
<UL>
<PRE>
% lp -o media=Letter filename ENTER
</PRE>
</UL>
<P>The available media sizes depend on the printer, but most support at
least the following sizes (case is significant): </P>
<UL>
<LI><CODE>Letter</CODE> - US Letter (8.5x11 inches, or 216x279mm) </LI>
<LI><CODE>Legal</CODE> - US Legal (8.5x14 inches, or 216x356mm) </LI>
<LI><CODE>A4</CODE> - ISO A4 (8.27x11.69 inches, or 210x297mm) </LI>
<LI><CODE>COM10</CODE> - US #10 Envelope (9.5x4.125 inches, or
241x105mm) </LI>
<LI><CODE>DL</CODE> - ISO DL Envelope (8.66x4.33 inches, or 220x110mm) </LI>
</UL>
<H3><A NAME=4_1_2>Setting the Orientation</A></H3>
<P>The &quot;-o landscape&quot; option will rotate the page 90 degrees to print
in landscape orientation: </P>
<UL>
<PRE>
% lp -o landscape filename ENTER
</PRE>
</UL>
<H3><A NAME=4_1_3>Printing On Both Sides of the Paper</A></H3>
<P>The &quot;-o sides=two-sided-short&quot; and &quot;-o sides=two-sided-long&quot; options
will enable duplexing on the printer (if the printer supports it.) The
&quot;two-sided-short&quot; option is suitable for landscape pages, while the
&quot;two-sided-long&quot; option is suitable for portrait pages: </P>
<UL>
<PRE>
% lp -o sides=two-sided-short filename ENTER
% lp -o sides=two-sided-long filename ENTER
</PRE>
</UL>
<H3><A NAME=4_1_4>Selecting a Range of Pages</A></H3>
<P>The &quot;-o page-range=pages&quot; option selects a range of pages for
printing: </P>
<UL>
<PRE>
% lp -o page-range=1 filename ENTER
% lp -o page-range=1-4 filename ENTER
% lp -o page-range=1-4,7,9-12 filename ENTER
</PRE>
</UL>
<P>As shown above, the <I>pages</I> value can be a single page, a range
of pages, or a collection of page numbers and ranges separated by
commas. The pages will always be printed in ascending order, regardless
of the order of the pages in the &quot;page-range&quot; option. </P>
<P>To select the even or odd pages, use the &quot;-o page-set=set&quot; option: </P>
<UL>
<PRE>
% lp -o page-set=odd filename ENTER
% lp -o page-set=even filename ENTER
</PRE>
</UL>
<H3><A NAME=4_1_5>Setting the Brightness</A></H3>
<P>You can control the overall brightness of the printed output using
the &quot;-o brightness=percent&quot; option: </P>
<UL>
<PRE>
% lp -o brightness=120 filename ENTER
</PRE>
</UL>
<P>Values greater than 100 will lighten the print, while values less
than 100 will darken it. </P>
<H3><A NAME=4_1_6>Setting the Gamma Correction</A></H3>
<P>You can control the overall gamma correction of the printed output
using the &quot;-o gamma=value&quot; option: </P>
<UL>
<PRE>
% lp -o gamma=1700 filename ENTER
</PRE>
</UL>
<P>Values greater than 1000 will lighten the print, while values less
than 1000 will darken it. </P>
<H2><A NAME=4_2>Text Options</A></H2>
<P>The following options apply when printing text files. </P>
<H3><A NAME=4_2_1>Setting the Number of Characters Per Inch</A></H3>
<P>The &quot;-o cpi=value&quot; option sets the number of characters per inch: </P>
<UL>
<PRE>
% lp -o cpi=12 filename ENTER
</PRE>
</UL>
<H3><A NAME=4_2_2>Setting the Number of Lines Per Inch</A></H3>
<P>The &quot;-o lpi=value&quot; option sets the number of lines per inch: </P>
<UL>
<PRE>
% lp -o lpi=8 filename ENTER
</PRE>
</UL>
<H3><A NAME=4_2_3>Setting the Number of Columns</A></H3>
<P>The &quot;-o columns=value&quot; option sets the number of text columns: </P>
<UL>
<PRE>
% lp -o columns=2 filename ENTER
</PRE>
</UL>
<H3><A NAME=4_2_4>Setting the Page Margins</A></H3>
<P>Normally the page margins are set to the hard limits of the printer.
To adjust the page margins use the &quot;-o page-left=value&quot;, &quot;-o
page-right=value&quot;, &quot;-o page-top=value&quot;, and &quot;-o page-bottom=value&quot;
options: </P>
<UL>
<PRE>
% lp -o page-left=value filename ENTER
% lp -o page-right=value filename ENTER
% lp -o page-top=value filename ENTER
% lp -o page-bottom=value filename ENTER
</PRE>
</UL>
<P>The <I>value</I> argument is the margin in points; each point is
1/72 inch or 0.35mm. </P>
<H3><A NAME=4_2_5>Pretty Printing</A></H3>
<P>The &quot;-o prettyprint&quot; option puts a header at the top of each page
with the page number, job title (usually the filename), and the date.
Also, C and C++ keywords are highlighted, and comment lines are
italicized: </P>
<UL>
<PRE>
% lp -o prettyprint filename ENTER
</PRE>
</UL>
<H2><A NAME=4_3>Image Options</A></H2>
<P>The following options apply when printing image files. </P>
<H3><A NAME=4_3_1>Scaling the Image</A></H3>
<P>The &quot;-o scaling=percent&quot; and &quot;-o ppi=value&quot; options change the size
of a printed image: </P>
<UL>
<PRE>
% lp -o scaling=percent filename ENTER
% lp -o ppi=value filename ENTER
</PRE>
</UL>
<P>The scaling <I>percent</I> is a number from 1 to 800 specifying the
size in relation to the page (<I>not</I> the image.) A scaling of 100
percent will fill the page as completely as the image aspect ratio
allows. A scaling of 200 percent will print on up to 4 pages. </P>
<P>The ppi <I>value</I> is a number from 1 to 1200 specifying the
resolution of the image in pixels per inch. An image that is 3000x2400
pixels will print 10x8 inches at 300 pixels per inch, for example. If
the specified resolution makes the image larger than the page, multiple
pages will be printed to satisfy the request. </P>
<H3><A NAME=4_3_2>Adjusting the Hue (Tint) of an Image</A></H3>
<P>The &quot;-o hue=value&quot; option will adjust the hue of the printed image,
much like the tint control on your television: </P>
<UL>
<PRE>
% lp -o hue=value filename ENTER
</PRE>
</UL>
<P>The <I>value</I> argument is a number from -360 to 360 and
represents the color hue rotation. The following table summarizes the
change you'll see with different colors:
<CENTER>
<TABLE BORDER=1 WIDTH=50%>
<TR><TH>Original</TH><TH>hue=-45</TH><TH>hue=45</TH></TR>
<TR><TD>Red</TD><TD>Purple</TD><TD>Yellow-orange</TD></TR>
<TR><TD>Green</TD><TD>Yellow-green</TD><TD>Blue-green</TD></TR>
<TR><TD>Yellow</TD><TD>Orange</TD><TD>Green-yellow</TD></TR>
<TR><TD>Blue</TD><TD>Sky-blue</TD><TD>Purple</TD></TR>
<TR><TD>Magenta</TD><TD>Indigo</TD><TD>Crimson</TD></TR>
<TR><TD>Cyan</TD><TD>Blue-green</TD><TD>Light-navy-blue</TD></TR>
</TABLE>
</CENTER>
</P>
<H3><A NAME=4_3_3>Adjusting the Saturation (Color) of an Image</A></H3>
<P>The &quot;-o saturation=percent&quot; option adjusts the saturation of the
colors in an image, much like the color knob on your television: </P>
<UL>
<PRE>
% lp -o saturation=percent filename ENTER
</PRE>
</UL>
<P>The <I>percent</I> argument specifies the color saturation from 0 to
200. A color saturation of 0 produces a black-and-white print, while a
value of 200 will make the colors extremely intense. </P>
</BODY>
</HTML>
BIN
Ver Arquivo
Arquivo binário não exibido.
+483 -14
Ver Arquivo
@@ -8,38 +8,507 @@
</HEAD>
<BODY>
<H1>Scope</H1>
<H2>Identification</H2>
<H1 ALIGN=RIGHT>Preface</H1>
This software users manual describes how to use the Common UNIX Printing
System ("CUPS") Version 1.0.0.
<H2>System Overview</H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line interfaces.
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis
for managing print jobs and queues. The Line Printer Daemon (LPD,
RFC1179), Server Message Block (SMB), and AppSocket protocols are also
supported with reduced functionality.
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
<P>This software users manual is organized into the following sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Printing System Overview</LI>
<LI>4 - Using the Printing System</LI>
<LI>A - Glossary</LI>
<LI>1 - Printing System Overview</LI>
<LI>2 - Using the Printing System</LI>
<LI>3 - Standard Printer Options</LI>
<LI>4 - Checking the Status Via the Web</LI>
</UL>
<H1>Printing System Overview</H1>
<H1 ALIGN=RIGHT>1 - Printing System Overview</H1>
<P></P>
<P>This chapter provides an overview of how the Common UNIX Printing System
works.
<H1>Using the Printing System</H1>
<H2>The Printing Problem</H2>
<H2>Choosing a Printer</H2>
<P>For years <I>the printing problem</I> has plagued UNIX&reg;. Unlike
Microsoft&reg; Windows&reg; or MacOS, UNIX has no standard interface or
system in place for supporting printers. Among the solutions previously
available, the Berkeley and System V printing systems are the most
prevalent.
<H2>Setting Printer Options</H2>
<P>These printing systems support line printers (text only) or
PostScript printers (text and graphics), and with some coaxing they can
be made to support a full range of printers and file formats. However,
because each varient of the UNIX operating system uses a different
printing system than the next, developing printer drivers for a wide
range of printers is extremely difficult. That combined with the
limited volume of customers for each UNIX varient has forced most
printer vendors to give up supporting UNIX entirely.
<P>The Common UNIX Printing System, or CUPS, is designed to eliminate
<I>the printing problem</I>. One common printing system can be used by
all UNIX varients to support the printing needs of users. Printer
vendors can use its modular filter interface to develop a single driver
program that supports a wide range of file formats with little or no
effort. Since CUPS provides both the System V and Berkeley printing
commands, users (and applications) can reap the benefits of this new
technology with no changes.
<H2>The Technology</H2>
<P>CUPS is based upon an emerging Internet standard called the Internet
Printing Protocol, or IPP. IPP has been embraced by dozens of printer
and printer server manufacturers, and will be supported by the next
Microsoft Windows operating system.
<P>IPP defines a standard protocol for printing as well as managing print
jobs and printer options like media size, resolution, and so forth. Like all
IP-based protocols, IPP can be used locally or over the Internet to printers
hundreds or thousands of miles away. Unlike other protocols, however, IPP
also supports access control, authentication, and encryption, making it a
much more secure printing solution than older ones.
<P>IPP is layered on top of the Hyper-Text Transport Protocol, or HTTP,
which is the basis of web servers on the Internet. This allows the user to
view documentation and status information on a printer or server using their
web browser.
<P>CUPS provides a complete IPP/1.0-based printing system that provides Basic
authentication and domain or IP-based access control. Digest authentication
and TLS encryption will be available in future versions of CUPS.
<H2>Filters</H2>
<P>Filters allow a user or application to print many types of files
without extra effort. Print jobs sent to a CUPS server are filtered
before sending them to a printer. Some filters convert job files to
different formats that the printer can understand. Others perform page
selection and ordering tasks. <I>Backend</I> filters perform the most
important task of all - they send the filtered print data to the
printer.
<P>CUPS provides filters for printing many types of image files,
HP-GL/2 files, PDF files, and text files. CUPS also supplies
PostScript and image file Raster Image Processors, or RIPs, that
convert PostScript or image files into bitmaps that can be sent to a
raster printer.
<P>CUPS provides backends for printing over parallel and serial ports,
and over the network via the JetDirect (AppSocket), Server Message
Block, and Line Printer Daemon protocols.
<H2>Printer Drivers</H2>
<P>Printer drivers in CUPS consist of one of more filters specific to a
printer. CUPS includes a sample printer driver for Hewlett-Packard
LaserJet and DeskJet printers. While this driver does not generate
optimal output for different printer models, it does demonstrate how
you can write your own printer drivers and incorporate them into CUPS.
<H1 ALIGN=RIGHT>2 - Using the Printing System</H1>
<P>This chapter shows you how to submit, query, and cancel print jobs to
different printers.
<H2>Submitting Files for Printing</H2>
<H2>Checking the Printer Status</H2>
<P>CUPS provides both the System V (<CODE>lp</CODE>) and Berkeley
(<CODE>lpr</CODE>) printing commands. To print a file to the default printer
on the system (or your only printer if you have only one) you just need to
type:
<UL><PRE>
% lp filename ENTER
</PRE></UL>
<P>or:
<UL><PRE>
% lpr filename ENTER
</PRE></UL>
<P>CUPS understands many different types of files directly, including PostScript
and image files. This allows you to print from inside your applications or at
the command-line, whichever is most convenient!
<H2>Choosing a Printer</H2>
<P>Many systems will have more than one printer available to the user. These
printers can be attached to the local system via a parallel or serial port,
or available over the network.
<P>To see a list of available printers, use the <CODE>lpstat</CODE> command:
<UL><PRE>
% lpstat -p -d ENTER
</PRE></UL>
<P>The "-p" option specifies that you want to see a list of printers, and the
"-d" option reports the current system default printer or class.
<P>To print to a specific printer, use the "-d" option to the <CODE>lp</CODE>
command:
<UL><PRE>
% lp -d printer filename ENTER
</PRE></UL>
<P>or the "-P" option to the <CODE>lpr</CODE> command:
<UL><PRE>
% lpr -P printer filename ENTER
</PRE></UL>
<H2>Setting Printer Options</H2>
<P>For many types of files, the default printer options may be sufficient for
your needs. However, there may be times when you need to change the options
for a particular file you are printing.
<P>The <CODE>lp</CODE> command allows you to pass printer options using the
"-o" option:
<UL><PRE>
% lp -o landscape -o scaling=75 -o media=A4 filename.jpg
</PRE></UL>
<P>The <CODE>lpr</CODE> command has no command-line option for printer options.
<P>The available printer options vary depending on the printer. The standard
options are described in <A HREF="#4">Chapter 3</A>.
<H2>Printing Multiple Copies</H2>
<P>Both the <CODE>lp</CODE> and <CODE>lpr</CODE> commands have options for
printing more than one copy of a file:
<UL><PRE>
% lp -n num-copies filename ENTER
% lpr -#num-copies filename ENTER
</PRE></UL>
<P>Copies are normally <I>not</I> collated for you. To get collated copies
use the <CODE>lp</CODE> command with the "-o Collate=True" option:
<UL><PRE>
% lp -n num-copies -o Collate=True filename ENTER
</PRE></UL>
<H2>Checking the Printer Status from the Command-Line</H2>
<P>The <CODE>lpstat</CODE> command can be used to check for jobs that you
have submitted for printing:
<UL><PRE>
% lpstat ENTER
Printer-1 johndoe 4427776
Printer-2 johndoe 15786
Printer-3 johndoe 372842
</PRE></UL>
<P>The jobs are listed in the order they will be printed. To see which files
and printers are active, use the "-p" option:
<UL><PRE>
% lpstat -p ENTER
printer DeskJet now printing DeskJet-1.
</PRE></UL>
<P>Or to show the jobs and the printers, use the "-o" and "-p" options:
<UL><PRE>
% lpstat -o -p ENTER
Printer-1 johndoe 4427776
Printer-2 johndoe 15786
Printer-3 johndoe 372842
printer DeskJet now printing DeskJet-1.
</PRE></UL>
<H2>Checking the Printer Status from the Web</H2>
<P>Since CUPS uses the Internet Printing Protocol, it is also a
full-featured web server. To use your web browser to monitor the
printers on your system, open the URL
"<A HREF="http://localhost:631">http://localhost:631</A>". From there
you can view the status of classes, jobs, and printers with the click
of a button!
<H2>Canceling a Print Job</H2>
<P>The <CODE>cancel</CODE> command cancels a print job:
<UL><PRE>
% cancel job-id ENTER
</PRE></UL>
<P>The <I>job-id</I> is a number that was reported to you by the
<CODE>lp</CODE> or <CODE>lpstat</CODE> commands.
<H1 ALIGN=RIGHT>3 - Standard Printer Options</H1>
<P>This chapter describes the standard printer options that are available
when printing with the <CODE>lp</CODE> command.
<H2>General Options</H2>
<P>The following options apply when printing all types of files.
<H3>Selecting the Media Size</H3>
<P>The "-o media=size" option sets the media size:
<UL><PRE>
% lp -o media=Letter filename ENTER
</PRE></UL>
<P>The available media sizes depend on the printer, but most support at
least the following sizes (case is significant):
<UL>
<LI><CODE>Letter</CODE> - US Letter (8.5x11 inches, or 216x279mm)
<LI><CODE>Legal</CODE> - US Legal (8.5x14 inches, or 216x356mm)
<LI><CODE>A4</CODE> - ISO A4 (8.27x11.69 inches, or 210x297mm)
<LI><CODE>COM10</CODE> - US #10 Envelope (9.5x4.125 inches, or
241x105mm)
<LI><CODE>DL</CODE> - ISO DL Envelope (8.66x4.33 inches, or 220x110mm)
</UL>
<H3>Setting the Orientation</H3>
<P>The "-o landscape" option will rotate the page 90 degrees to print in
landscape orientation:
<UL><PRE>
% lp -o landscape filename ENTER
</PRE></UL>
<H3>Printing On Both Sides of the Paper</H3>
<P>The "-o sides=two-sided-short" and "-o sides=two-sided-long" options will
enable duplexing on the printer (if the printer supports it.) The "two-sided-short"
option is suitable for landscape pages, while the "two-sided-long" option is
suitable for portrait pages:
<UL><PRE>
% lp -o sides=two-sided-short filename ENTER
% lp -o sides=two-sided-long filename ENTER
</PRE></UL>
<H3>Selecting a Range of Pages</H3>
<P>The "-o page-range=pages" option selects a range of pages for printing:
<UL><PRE>
% lp -o page-range=1 filename ENTER
% lp -o page-range=1-4 filename ENTER
% lp -o page-range=1-4,7,9-12 filename ENTER
</PRE></UL>
<P>As shown above, the <I>pages</I> value can be a single page, a range of
pages, or a collection of page numbers and ranges separated by commas. The
pages will always be printed in ascending order, regardless of the order of
the pages in the "page-range" option.
<P>To select the even or odd pages, use the "-o page-set=set" option:
<UL><PRE>
% lp -o page-set=odd filename ENTER
% lp -o page-set=even filename ENTER
</PRE></UL>
<H3>Setting the Brightness</H3>
<P>You can control the overall brightness of the printed output using the
"-o brightness=percent" option:
<UL><PRE>
% lp -o brightness=120 filename ENTER
</PRE></UL>
<P>Values greater than 100 will lighten the print, while values less than
100 will darken it.
<H3>Setting the Gamma Correction</H3>
<P>You can control the overall gamma correction of the printed output
using the "-o gamma=value" option:
<UL><PRE>
% lp -o gamma=1700 filename ENTER
</PRE></UL>
<P>Values greater than 1000 will lighten the print, while values less
than 1000 will darken it.
<H2>Text Options</H2>
<P>The following options apply when printing text files.
<H3>Setting the Number of Characters Per Inch</H3>
<P>The "-o cpi=value" option sets the number of characters per inch:
<UL><PRE>
% lp -o cpi=12 filename ENTER
</PRE></UL>
<H3>Setting the Number of Lines Per Inch</H3>
<P>The "-o lpi=value" option sets the number of lines per inch:
<UL><PRE>
% lp -o lpi=8 filename ENTER
</PRE></UL>
<H3>Setting the Number of Columns</H3>
<P>The "-o columns=value" option sets the number of text columns:
<UL><PRE>
% lp -o columns=2 filename ENTER
</PRE></UL>
<H3>Setting the Page Margins</H3>
<P>Normally the page margins are set to the hard limits of the printer. To
adjust the page margins use the "-o page-left=value", "-o page-right=value",
"-o page-top=value", and "-o page-bottom=value" options:
<UL><PRE>
% lp -o page-left=value filename ENTER
% lp -o page-right=value filename ENTER
% lp -o page-top=value filename ENTER
% lp -o page-bottom=value filename ENTER
</PRE></UL>
<P>The <I>value</I> argument is the margin in points; each point is 1/72 inch
or 0.35mm.
<H3>Pretty Printing</H3>
<P>The "-o prettyprint" option puts a header at the top of each page with the
page number, job title (usually the filename), and the date. Also, C and C++
keywords are highlighted, and comment lines are italicized:
<UL><PRE>
% lp -o prettyprint filename ENTER
</PRE></UL>
<H2>Image Options</H2>
<P>The following options apply when printing image files.
<H3>Scaling the Image</H3>
<P>The "-o scaling=percent" and "-o ppi=value" options change the size of a
printed image:
<UL><PRE>
% lp -o scaling=percent filename ENTER
% lp -o ppi=value filename ENTER
</PRE></UL>
<P>The scaling <I>percent</I> is a number from 1 to 800 specifying the size
in relation to the page (<I>not</I> the image.) A scaling of 100 percent will
fill the page as completely as the image aspect ratio allows. A scaling of
200 percent will print on up to 4 pages.
<P>The ppi <I>value</I> is a number from 1 to 1200 specifying the resolution
of the image in pixels per inch. An image that is 3000x2400 pixels will print
10x8 inches at 300 pixels per inch, for example. If the specified resolution
makes the image larger than the page, multiple pages will be printed to
satisfy the request.
<H3>Adjusting the Hue (Tint) of an Image</H3>
<P>The "-o hue=value" option will adjust the hue of the printed image, much
like the tint control on your television:
<UL><PRE>
% lp -o hue=value filename ENTER
</PRE></UL>
<P>The <I>value</I> argument is a number from -360 to 360 and represents the
color hue rotation. The following table summarizes the change you'll see with
different colors:
<CENTER><TABLE WIDTH="50%" BORDER="1">
<TR>
<TH>Original</TH>
<TH>hue=-45</TH>
<TH>hue=45</TH>
</TR>
<TR>
<TD>Red</TD>
<TD>Purple</TD>
<TD>Yellow-orange</TD>
</TR>
<TR>
<TD>Green</TD>
<TD>Yellow-green</TD>
<TD>Blue-green</TD>
</TR>
<TR>
<TD>Yellow</TD>
<TD>Orange</TD>
<TD>Green-yellow</TD>
</TR>
<TR>
<TD>Blue</TD>
<TD>Sky-blue</TD>
<TD>Purple</TD>
</TR>
<TR>
<TD>Magenta</TD>
<TD>Indigo</TD>
<TD>Crimson</TD>
</TR>
<TR>
<TD>Cyan</TD>
<TD>Blue-green</TD>
<TD>Light-navy-blue</TD>
</TR>
</TABLE></CENTER>
<H3>Adjusting the Saturation (Color) of an Image</H3>
<P>The "-o saturation=percent" option adjusts the saturation of the colors in
an image, much like the color knob on your television:
<UL><PRE>
% lp -o saturation=percent filename ENTER
</PRE></UL>
<P>The <I>percent</I> argument specifies the color saturation from 0 to 200.
A color saturation of 0 produces a black-and-white print, while a value of 200
will make the colors extremely intense.
</BODY>
</HTML>
+3
Ver Arquivo
@@ -53,6 +53,9 @@ with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
<P>This Something Something Something document is organized into the
following sections:</P>
BIN
Ver Arquivo
Arquivo binário não exibido.
+4
Ver Arquivo
@@ -30,6 +30,10 @@ supported with reduced functionality.
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
<P>This Something Something Something document is organized into the following
+11 -2
Ver Arquivo
@@ -24,7 +24,8 @@
include ../Makedefs
TARGETS = hpgltops texttops pstops imagetops imagetoraster
TARGETS = hpgltops texttops pstops imagetops imagetoraster \
rastertohp
HPGLOBJS = hpgl-attr.o hpgl-config.o hpgl-main.o hpgl-prolog.o \
hpgl-char.o hpgl-input.o hpgl-polygon.o hpgl-vector.o
@@ -32,7 +33,7 @@ IMAGEOBJS = image-colorspace.o image-photocd.o image-sgilib.o \
image-tiff.o image-gif.o image-png.o image-sgi.o image-zoom.o \
image-jpeg.o image-pnm.o image-sun.o image.o
OBJS = $(HPGLOBJS) $(IMAGEOBJS) imagetops.o imagetoraster.o \
common.o pstops.o texttops.o textcommon.o
common.o pstops.o rastertohp.o texttops.o textcommon.o
#
# Make all targets...
@@ -97,6 +98,14 @@ pstops: pstops.o common.o ../Makedefs ../cups/libcups.a
$(CC) $(LDFLAGS) -o $@ pstops.o common.o $(LIBS)
pstops.o: common.h
#
# rastertohp
#
rastertohp: rastertohp.o ../Makedefs ../cups/libcups.a
$(CC) $(LDFLAGS) -o $@ rastertohp.o $(LIBS)
rastertohp.o: ../cups/raster.h
#
# texttops
#
+18 -4
Ver Arquivo
@@ -298,6 +298,9 @@ main(int argc, /* I - Number of command-line arguments */
if (!sloworder)
{
if (ppd == NULL || ppd->num_filters == 0)
fprintf(stderr, "PAGE: %d %d\n", NumPages, Copies);
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
start_nup(NumPages - 1);
}
@@ -334,6 +337,9 @@ main(int argc, /* I - Number of command-line arguments */
for (number = 0; number < NumPages; number ++)
{
if (ppd == NULL || ppd->num_filters == 0)
fprintf(stderr, "PAGE: %d 1\n", number + 1);
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
start_nup(number);
copy_bytes(temp, Pages[number + 1] - Pages[number]);
@@ -345,13 +351,14 @@ main(int argc, /* I - Number of command-line arguments */
}
else
{
if (!slowcollate)
Copies = 1;
while (Copies > 0)
do
{
for (number = NumPages - 1; number >= 0; number --)
{
if (ppd == NULL || ppd->num_filters == 0)
fprintf(stderr, "PAGE: %d %d\n", NumPages - number,
slowcollate ? 1 : Copies);
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
start_nup(NumPages - 1 - number);
fseek(temp, Pages[number], SEEK_SET);
@@ -361,6 +368,7 @@ main(int argc, /* I - Number of command-line arguments */
Copies --;
}
while (Copies > 0 || !slowcollate);
}
}
}
@@ -370,6 +378,9 @@ main(int argc, /* I - Number of command-line arguments */
* No DSC comments - write any page commands and then the rest of the file...
*/
if (ppd == NULL || ppd->num_filters == 0)
fprintf(stderr, "PAGE: 1 %d\n", slowcollate ? 1 : Copies);
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
while (psgets(line, sizeof(line), fp) != NULL)
@@ -387,6 +398,9 @@ main(int argc, /* I - Number of command-line arguments */
{
while (Copies > 1)
{
if (ppd == NULL || ppd->num_filters == 0)
fputs("PAGE: 1 1\n", stderr);
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
rewind(temp);
copy_bytes(temp, 0);
+493
Ver Arquivo
@@ -0,0 +1,493 @@
/*
* "$Id$"
*
* Hewlett-Packard Page Control Language and Raster Transfer Language
* filter for ESP Print.
*
* Copyright 1993-1999 by Easy Software Products
*
* These coded instructions, statements, and computer programs contain
* unpublished proprietary information of Easy Software Products, and
* are protected by Federal copyright law. They may not be disclosed
* to third parties or copied or duplicated in any form, in whole or
* in part, without the prior written consent of Easy Software Products.
*
* Contents:
*
*/
/*
* Include necessary headers...
*/
#include <cups/cups.h>
#include <cups/raster.h>
#include <cups/string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
/*
* Globals...
*/
unsigned char *Planes[4], /* Output buffers */
*CompBuffer; /* Compression buffer */
int NumPlanes, /* Number of color planes */
Feed; /* Number of lines to skip */
/*
* Prototypes...
*/
void Setup(void);
void StartPage(cups_page_header_t *header);
void EndPage(cups_page_header_t *header);
void Shutdown(void);
void CompressData(unsigned char *line, int length, int plane, int type);
void OutputLine(cups_page_header_t *header);
/*
* 'Setup()' - Prepare the printer for printing.
*/
void
Setup(void)
{
/*
* Send a PCL reset sequence.
*/
putchar(0x1b);
putchar('E');
}
/*
* 'StartPage()' - Start a page of graphics.
*/
void
StartPage(cups_page_header_t *header) /* I - Page header */
{
int plane; /* Looping var */
/*
* Set the media type, position, and size...
*/
printf("\033&l6D\033&k12H"); /* Set 6 LPI, 10 CPI */
printf("\033&l%.2fP", /* Set page length */
header->PageSize[1] / 12.0);
printf("\033&l%dX", header->NumCopies); /* Set number copies */
if (header->MediaPosition)
printf("\033&l%dH", header->MediaPosition); /* Set media position */
if (header->cupsMediaType)
printf("\033&l%dM", /* Set media type */
header->cupsMediaType);
/*
* Set graphics mode...
*/
if (header->cupsColorSpace == CUPS_CSPACE_KCMY)
{
NumPlanes = 4;
printf("\033*r-4U"); /* Set KCMY graphics */
}
else
NumPlanes = 1;
printf("\033*t%dR", header->HWResolution[0]); /* Set resolution */
printf("\033*r%dS", header->cupsWidth); /* Set width */
printf("\033*r%dT", header->cupsHeight); /* Set height */
printf("\033&a0H\033&a0V"); /* Set top-of-page */
printf("\033*r1A"); /* Start graphics */
if (header->cupsCompression)
printf("\033*b%dM", /* Set compression */
header->cupsCompression);
Feed = 0; /* No blank lines yet */
/*
* Allocate memory for a line of graphics...
*/
Planes[0] = malloc(header->cupsBytesPerLine);
for (plane = 1; plane < NumPlanes; plane ++)
Planes[plane] = Planes[0] + plane * header->cupsBytesPerLine / NumPlanes;
if (header->cupsCompression)
CompBuffer = malloc(header->cupsBytesPerLine * 2);
}
/*
* 'EndPage()' - Finish a page of graphics.
*/
void
EndPage(cups_page_header_t *header) /* I - Page header */
{
/*
* Eject the current page...
*/
if (NumPlanes > 1)
{
printf("\033*rC"); /* End color GFX */
printf("\033&l0H"); /* Eject current page */
}
else
{
printf("\033*r0B"); /* End GFX */
printf("\014"); /* Eject currnet page */
}
/*
* Free memory...
*/
free(Planes[0]);
if (header->cupsCompression)
free(CompBuffer);
}
/*
* 'Shutdown()' - Shutdown the printer.
*/
void
Shutdown(void)
{
/*
* Send a PCL reset sequence.
*/
putchar(0x1b);
putchar('E');
}
/*
* 'CompressData()' - Compress a line of graphics.
*/
void
CompressData(unsigned char *line, /* I - Data to compress */
int length, /* I - Number of bytes */
int plane, /* I - Color plane */
int type) /* I - Type of compression */
{
unsigned char *line_ptr, /* Current byte pointer */
*line_end, /* End-of-line byte pointer */
*comp_ptr, /* Pointer into compression buffer */
*start; /* Start of compression sequence */
int count; /* Count of bytes for output */
switch (type)
{
case 0 :
/*
* Do no compression...
*/
line_ptr = line;
line_end = line + length;
break;
case 1 :
/*
* Do run-length encoding...
*/
line_end = line + length;
for (line_ptr = line, comp_ptr = CompBuffer;
line_ptr < line_end;
comp_ptr += 2, line_ptr += count)
{
for (count = 1;
(line_ptr + count) < line_end &&
line_ptr[0] == line_ptr[count] &&
count < 256;
count ++);
comp_ptr[0] = count - 1;
comp_ptr[1] = line_ptr[0];
}
line_ptr = CompBuffer;
line_end = comp_ptr;
break;
case 2 :
/*
* Do TIFF pack-bits encoding...
*/
line_ptr = line;
line_end = line + length;
comp_ptr = CompBuffer;
while (line_ptr < line_end)
{
if ((line_ptr + 1) >= line_end)
{
/*
* Single byte on the end...
*/
*comp_ptr++ = 0x00;
*comp_ptr++ = *line_ptr++;
}
else if (line_ptr[0] == line_ptr[1])
{
/*
* Repeated sequence...
*/
line_ptr ++;
count = 2;
while (line_ptr < (line_end - 1) &&
line_ptr[0] == line_ptr[1] &&
count < 127)
{
line_ptr ++;
count ++;
}
*comp_ptr++ = 257 - count;
*comp_ptr++ = *line_ptr++;
}
else
{
/*
* Non-repeated sequence...
*/
start = line_ptr;
line_ptr ++;
count = 1;
while (line_ptr < (line_end - 1) &&
line_ptr[0] != line_ptr[1] &&
count < 127)
{
line_ptr ++;
count ++;
}
*comp_ptr++ = count - 1;
memcpy(comp_ptr, start, count);
comp_ptr += count;
}
}
line_ptr = CompBuffer;
line_end = comp_ptr;
break;
}
/*
* Set the length of the data and write a raster plane...
*/
printf("\033*b%d%c", line_end - line_ptr, plane);
fwrite(line_ptr, line_end - line_ptr, 1, stdout);
}
/*
* 'OutputLine()' - Output a line of graphics.
*/
void
OutputLine(cups_page_header_t *header) /* I - Page header */
{
int plane; /* Current plane */
/*
* Output whitespace as needed...
*/
if (Feed > 0)
{
printf("\033*b%dY", Feed);
Feed = 0;
}
/*
* Write bitmap data as needed...
*/
for (plane = 0; plane < NumPlanes; plane ++)
CompressData(Planes[plane], header->cupsBytesPerLine / NumPlanes,
plane < (NumPlanes - 1) ? 'V' : 'W',
header->cupsCompression);
}
/*
* 'main()' - Main entry and processing of driver.
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int fd; /* File descriptor */
cups_raster_t *ras; /* Raster stream for printing */
cups_page_header_t header; /* Page header from file */
int page; /* Current page */
int y; /* Current line */
/*
* Check for valid arguments...
*/
if (argc < 6 || argc > 7)
{
/*
* We don't have the correct number of arguments; write an error message
* and then sleep for 1 second to give the scheduler a chance to read
* the message.
*/
fputs("ERROR: rastertopcl job-id user title copies options [file]\n", stderr);
sleep(1);
return (1);
}
/*
* Open the page stream...
*/
if (argc == 7)
{
if ((fd = open(argv[6], O_RDONLY)) == -1)
{
perror("ERROR: Unable to open raster file - ");
sleep(1);
return (1);
}
}
else
fd = 0;
ras = cupsRasterOpen(fd, CUPS_RASTER_READ);
/*
* Initialize the print device...
*/
Setup();
/*
* Process pages as needed...
*/
page = 0;
while (cupsRasterReadHeader(ras, &header))
{
/*
* Write a status message with the page number and number of copies.
*/
page ++;
fprintf(stderr, "PAGE: %d %d\n", page, header.NumCopies);
/*
* Start the page...
*/
StartPage(&header);
/*
* Loop for each line on the page...
*/
for (y = 0; y < header.cupsHeight; y ++)
{
/*
* Let the user know how far we have progressed...
*/
if ((y & 127) == 0)
fprintf(stderr, "INFO: Printing page %d, %d%% complete...\n", page,
100 * y / header.cupsHeight);
/*
* Read a line of graphics...
*/
if (cupsRasterReadPixels(ras, Planes[0], header.cupsBytesPerLine) < 1)
break;
/*
* See if the line is blank; if not, write it to the printer...
*/
if (Planes[0][0] ||
memcmp(Planes[0], Planes[0] + 1, header.cupsBytesPerLine - 1))
OutputLine(&header);
else
Feed ++;
}
/*
* Eject the page...
*/
EndPage(&header);
}
/*
* Shutdown the printer...
*/
Shutdown();
/*
* Close the raster stream...
*/
cupsRasterClose(ras);
if (fd != 0)
close(fd);
/*
* If no pages were printed, send an error message...
*/
if (page == 0)
fputs("ERROR: No pages found!\n", stderr);
else
fputs("INFO: Ready to print.\n", stderr);
/*
* Sleep for 1 second and return...
*/
sleep(1);
return (page == 0);
}
/*
* End of "$Id$".
*/
+2 -2
Ver Arquivo
@@ -432,7 +432,7 @@ TextMain(char *name, /* I - Name of filter */
attr &= ~ATTR_BOLD;
}
else if (!isalpha(ch) && keyptr > keyword)
else if (!(isalnum(ch) || ch == '_') && keyptr > keyword)
{
/*
* Look for a keyword...
@@ -458,7 +458,7 @@ TextMain(char *name, /* I - Name of filter */
}
}
}
else if (isalpha(ch) && !ccomment && !cstring)
else if ((isalnum(ch) || ch == '_') && !ccomment && !cstring)
{
/*
* Add characters to the current keyword (if they'll fit).
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
BIN
Ver Arquivo
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
BIN
Ver Arquivo
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
+68
Ver Arquivo
@@ -0,0 +1,68 @@
#
# "$Id$"
#
# Fonts makefile for the Common UNIX Printing System (CUPS).
#
# Copyright 1993-1999 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
include ../Makedefs
#
# Font files...
#
FONTS = AvantGarde-Book AvantGarde-BookOblique AvantGarde-Demi \
AvantGarde-DemiOblique Bookman-Demi Bookman-DemiItalic \
Bookman-Light Bookman-LightItalic Courier Courier-Bold \
Courier-BoldOblique Courier-Oblique Helvetica \
Helvetica-Bold Helvetica-BoldOblique Helvetica-Narrow \
Helvetica-Narrow-Bold Helvetica-Narrow-BoldOblique \
Helvetica-Narrow-Oblique Helvetica-Oblique \
NewCenturySchlbk-Bold NewCenturySchlbk-BoldItalic \
NewCenturySchlbk-Italic NewCenturySchlbk-Roman \
Palatino-Bold Palatino-BoldItalic Palatino-Italic \
Palatino-Roman Symbol Times-Bold Times-BoldItalic \
Times-Italic Times-Roman Utopia-Bold Utopia-BoldItalic \
Utopia-Italic Utopia-Regular ZapfChancery-MediumItalic \
ZapfDingbats
#
# Make everything...
#
all:
#
# Clean all config and object files...
#
clean:
#
# Install files...
#
install:
-$(MKDIR) $(DATADIR)/fonts
$(CP) $(FONTS) $(DATADIR)/fonts
#
# End of "$Id$".
#
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
BIN
Ver Arquivo
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
Arquivo binário não exibido.
+8 -4
Ver Arquivo
@@ -28,16 +28,20 @@ include ../Makedefs
# Man pages...
#
MAN1 = backend.1 filter.1 lprm.1 lpr.1 lpstat.1 lp.1
MAN5 = classes.conf.5 cupsd.conf.5 mime.convs.5 mime.types.5 \
MAN1 = backend.1 filter.1 lprm.1 lpr.1 lpstat.1 lp.1
MAN5 = classes.conf.5 cupsd.conf.5 mime.convs.5 mime.types.5 \
printers.conf.5
MAN8 = accept.8 cupsd.8 enable.8 lpadmin.8 lpc.8
MAN8 = accept.8 cupsd.8 enable.8 lpadmin.8 lpc.8
CAT1 = $(MAN1:.1=.z)
CAT5 = $(MAN5:.5=.z)
CAT8 = $(MAN8:.8=.z)
#
# Make everything...
#
all: $(MAN1:.1=.z) $(MAN5:.5=.z) $(MAN8:.8=.z)
all: $(CAT1) $(CAT5) $(CAT8)
#
# Clean all config and object files...
+27 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lp.1 327 1999-05-14 17:03:06Z mike $"
.\" "$Id: lp.1 343 1999-05-20 16:16:48Z mike $"
.\"
.\" lp/cancel man page for the Common UNIX Printing System (CUPS).
.\"
@@ -27,9 +27,32 @@ lp \- print files
.br
cancel \- cancel jobs
.SH SYNOPSIS
.B lpstat
.B lp
[ \-c ] [ \-d
.I destination
] [ \-m ] [ \-n
.I num-copies
[ \-o
.I option
] [ \-p/q
.I priority
] [ \-s ] [ \-t
.I title
]
.br
.B cancel
[ \-a ] [
.I id
] [
.I destination
] [
.I destination-id
]
.SH DESCRIPTION
\fBlpstat\fR
\fBlp\fR submits files for printing.
.LP
\fBcancel\fR cancels existing print jobs. The \fI-a\fR option will remove
all jobs from the specified destination.
.SH COMPATIBILITY
Unlike the System V printing system, CUPS allows printer names to contain
any printable character except SPACE and TAB. Also, printer and class names are
@@ -40,5 +63,5 @@ CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lp.1 327 1999-05-14 17:03:06Z mike $".
.\" End of "$Id: lp.1 343 1999-05-20 16:16:48Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+18 -14
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpadmin.8 327 1999-05-14 17:03:06Z mike $"
.\" "$Id: lpadmin.8 343 1999-05-20 16:16:48Z mike $"
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
@@ -23,7 +23,7 @@
.\"
.TH lpadmin 8 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
lpadmin \- configure cups destinations
lpadmin \- configure cups printers and classes
.SH SYNOPSIS
.B lpadmin
\-d
@@ -66,6 +66,11 @@ Sets a System V style interface script for the printer. This option cannot
be specified with the \fI\-P\fR option (PPD file) and is intended for
providing support for legacy printer drivers.
.TP 5
\-m \fImodel\fR
.br
Sets a standard System V interface script or PPD file from the model
directory.
.TP 5
\-r \fIclass\fR
.br
Removes the named \fIprinter\fR from \fIclass\fR. If the resulting class
@@ -76,14 +81,13 @@ becomes empty it is removed.
Sets the \fIdevice-uri\fR attribute of the printer queue. If \fIdevice-uri\fR
is a filename it is automatically converted to the form \fBfile:/file/name\fR.
.TP 5
\-F \fIfilter\fR
\-D \fIinfo\fR
.br
Adds a filter for the printer. \fIFilter\fR is a string of the form
\fI"mime-type cost program"\fR, where \fImime-type\fR is a MIME type string
(e.g. "application/postscript", "text/*"), \fIcost\fR is a filtering cost from
0 to 100, and \fIprogram\fR is the filter program to use. If \fIprogram\fR
is not an absolute path then the filter is assumed to reside in the
scheduler's standard filter directory.
Provides a textual description of the printer.
.TP 5
\-L \fIlocation\fR
.br
Provides a textual location of the printer.
.TP 5
\-P \fIppd-file\fR
.br
@@ -92,18 +96,18 @@ specified, this option overrides the \fI-i\fR option (interface script).
.SH COMPATIBILITY
Unlike the System V printing system, CUPS allows printer names to contain
any printable character except SPACE and TAB. Also, printer and class names are
\fBnot\fR case-sensitive. Also, the CUPS version of \fBlpadmin\fR may ask the
\fBnot\fR case-sensitive. Finally, the CUPS version of \fBlpadmin\fR may ask the
user for an access password depending on the printing system configuration.
This differs from the System V version which requires the root user to execute
this command.
.LP
The CUPS version of \fBlpadmin\fR does not support all of the System V
printing system configuration options.
.SH LIMITATIONS
The CUPS version of \fBlpadmin\fR does not support all of the System V or
Solaris printing system configuration options.
.SH SEE ALSO
accept(8), cancel(1), disable(8), enable(8), lp(1), lpstat(1), reject(8),
CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpadmin.8 327 1999-05-14 17:03:06Z mike $".
.\" End of "$Id: lpadmin.8 343 1999-05-20 16:16:48Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+55
Ver Arquivo
@@ -0,0 +1,55 @@
#
# "$Id$"
#
# PPD file makefile for the Common UNIX Printing System (CUPS).
#
# Copyright 1993-1999 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
include ../Makedefs
#
# PPD files...
#
FILES = deskjet.ppd laserjet.ppd
#
# Make everything...
#
all:
#
# Clean all config and object files...
#
clean:
#
# Install files...
#
install:
-$(MKDIR) $(DATADIR)/model
$(CP) $(FILES) $(DATADIR)/model
#
# End of "$Id$".
#
+185
Ver Arquivo
@@ -0,0 +1,185 @@
*PPD-Adobe: "4.3"
*%
*% "$Id$"
*%
*% Sample HP DeskJet driver PPD file for the Common UNIX Printing
*% System (CUPS).
*%
*% Copyright 1997-1999 by Easy Software Products.
*%
*% These coded instructions, statements, and computer programs are the
*% property of Easy Software Products and are protected by Federal
*% copyright law. Distribution and use rights are outlined in the file
*% "LICENSE.txt" which should have been included with this file. If this
*% file is missing or damaged please contact Easy Software Products
*% at:
*%
*% Attn: CUPS Licensing Information
*% Easy Software Products
*% 44145 Airport View Drive, Suite 204
*% Hollywood, Maryland 20636-3111 USA
*%
*% Voice: (301) 373-9603
*% EMail: cups-info@cups.org
*% WWW: http://www.cups.org
*%
*FormatVersion: "4.3"
*FileVersion: "1.0"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PCFileName: "DESKJET.PPD"
*Manufacturer: "ESP"
*Product: "(CUPS v1.0)"
*cupsVersion: 1.0
*cupsManualCopies: True
*cupsFilter: "application/vnd.cups-raster 0 rastertohp"
*ModelName: "HP DeskJet Series"
*ShortNickName: "HP DeskJet Series"
*NickName: "HP DeskJet Series CUPS v1.0"
*PSVersion: "(2017.000) 0"
*LanguageLevel: "2"
*ColorDevice: True
*DefaultColorSpace: RGB
*FileSystem: False
*Throughput: "1"
*LandscapeOrientation: Plus90
*VariablePaperSize: False
*TTRasterizer: Type42
*UIConstraints: *PageSize Executive *InputSlot Envelope
*UIConstraints: *PageSize Letter *InputSlot Envelope
*UIConstraints: *PageSize Legal *InputSlot Envelope
*UIConstraints: *PageSize A4 *InputSlot Envelope
*UIConstraints: *PageSize A5 *InputSlot Envelope
*UIConstraints: *PageSize B5 *InputSlot Envelope
*OpenUI *PageSize/Media Size: PickOne
*OrderDependency: 10 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter/Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
*PageSize Legal/Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
*PageSize Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
*PageSize A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
*PageSize A5/A5: "<</PageSize[420 595]/ImagingBBox null>>setpagedevice"
*PageSize B5/B5 (JIS): "<</PageSize[516 729]/ImagingBBox null>>setpagedevice"
*PageSize EnvISOB5/Envelope B5: "<</PageSize[499 709]/ImagingBBox null>>setpagedevice"
*PageSize Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
*PageSize EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
*PageSize EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
*PageSize EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
*CloseUI: *PageSize
*OpenUI *PageRegion: PickOne
*OrderDependency: 10 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter/Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
*PageRegion Legal/Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
*PageRegion Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
*PageRegion A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
*PageRegion A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice"
*PageRegion B5/B5 (JIS): "<</PageSize[516 729]/ImagingBBox null>>setpagedevice"
*PageRegion EnvISOB5/Envelope B5: "<</PageSize[499 709]/ImagingBBox null>>setpagedevice"
*PageRegion Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
*PageRegion EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
*PageRegion EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
*PageRegion EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
*CloseUI: *PageRegion
*DefaultImageableArea: Letter
*ImageableArea Letter/US Letter: "18 36 594 756"
*ImageableArea Legal/US Legal: "18 36 594 972"
*ImageableArea Executive/Executive: "18 36 504 684"
*ImageableArea A4/A4: "18 36 577 806"
*ImageableArea A5/A5: "18 36 403 559"
*ImageableArea B5/JIS B5: "18 36 498 693"
*ImageableArea EnvISOB5/B5 (ISO): "18 36 463 673"
*ImageableArea Env10/Com-10: "18 36 279 648"
*ImageableArea EnvC5/EnvC5: "18 36 441 613"
*ImageableArea EnvDL/EnvDL: "18 36 294 588"
*ImageableArea EnvMonarch/Envelope Monarch: "18 36 261 504"
*DefaultPaperDimension: Letter
*PaperDimension Letter/Letter: "612 792"
*PaperDimension Legal/Legal: "612 1008"
*PaperDimension Executive/Executive: "522 756"
*PaperDimension A4/A4: "595 842"
*PaperDimension A5/A5: "421 595"
*PaperDimension B5/B5 (JIS): "516 729"
*PaperDimension EnvISOB5/Envelope B5: "499 709"
*PaperDimension Env10/Envelope #10: "297 684"
*PaperDimension EnvC5/Envelope C5: "459 649"
*PaperDimension EnvDL/Envelope DL: "312 624"
*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
*OpenUI *MediaType/Media Type: PickOne
*OrderDependency: 10 AnySetup *MediaType
*DefaultMediaType: Plain
*MediaType Plain/Plain Paper: "<</MediaType(Plain)/cupsMediaType 0>>setpagedevice"
*MediaType Bond/Bond Paper: "<</MediaType(Bond)/cupsMediaType 1>>setpagedevice"
*MediaType Special/Special Paper: "<</MediaType(Special)/cupsMediaType 2>>setpagedevice"
*MediaType Transparency/Transparency: "<</MediaType(Transparency)/cupsMediaType 3>>setpagedevice"
*MediaType Glossy/Glossy Paper: "<</MediaType(Glossy)/cupsMediaType 4>>setpagedevice"
*CloseUI: *MediaType
*OpenUI *InputSlot/Media Source: PickOne
*OrderDependency: 10 AnySetup *InputSlot
*DefaultInputSlot: Tray
*InputSlot Tray/Tray: "<</cupsMediaPosition 1>>setpagedevice"
*InputSlot Manual/Manual Feed: "<</cupsMediaPosition 2>>setpagedevice"
*InputSlot Envelope/Envelope Feed: "<</cupsMediaPosition 3>>setpagedevice"
*CloseUI: *InputSlot
*OpenUI *Resolution/Output Resolution: PickOne
*OrderDependency: 20 AnySetup *Resolution
*DefaultResolution: 300dpi
*Resolution 150dpi/150 DPI: "<</HWResolution[150 150]>>setpagedevice"
*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]>>setpagedevice"
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]/cupsColorSpace 3>>setpagedevice"
*CloseUI: *Resolution
*OpenUI *ColorModel/Output ColorModel: PickOne
*OrderDependency: 10 AnySetup *ColorModel
*DefaultColorModel: CMYK
*ColorModel CMYK/Color: "<</cupsColorOrder 1/cupsColorSpace 8/cupsCompression 2>>setpagedevice"
*ColorModel Gray/Grayscale: "<</cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
*CloseUI: *ColorModel
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
*Font Bookman-Light: Standard "(001.004S)" Standard ROM
*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
*Font Courier: Standard "(002.004S)" Standard ROM
*Font Courier-Bold: Standard "(002.004S)" Standard ROM
*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
*Font Helvetica: Standard "(001.006S)" Standard ROM
*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
*Font Symbol: Special "(001.007S)" Special ROM
*Font Times-Bold: Standard "(001.007S)" Standard ROM
*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
*Font Times-Italic: Standard "(001.007S)" Standard ROM
*Font Times-Roman: Standard "(001.007S)" Standard ROM
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
*Font ZapfDingbats: Special "(001.004S)" Standard ROM
*%
*% End of "$Id$".
*%
+172
Ver Arquivo
@@ -0,0 +1,172 @@
*PPD-Adobe: "4.3"
*%
*% "$Id$"
*%
*% Sample HP LaserJet driver PPD file for the Common UNIX Printing
*% System (CUPS).
*%
*% Copyright 1997-1999 by Easy Software Products.
*%
*% These coded instructions, statements, and computer programs are the
*% property of Easy Software Products and are protected by Federal
*% copyright law. Distribution and use rights are outlined in the file
*% "LICENSE.txt" which should have been included with this file. If this
*% file is missing or damaged please contact Easy Software Products
*% at:
*%
*% Attn: CUPS Licensing Information
*% Easy Software Products
*% 44145 Airport View Drive, Suite 204
*% Hollywood, Maryland 20636-3111 USA
*%
*% Voice: (301) 373-9603
*% EMail: cups-info@cups.org
*% WWW: http://www.cups.org
*%
*FormatVersion: "4.3"
*FileVersion: "1.0"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PCFileName: "LASERJET.PPD"
*Manufacturer: "ESP"
*Product: "(CUPS v1.0)"
*cupsVersion: 1.0
*cupsManualCopies: False
*cupsFilter: "application/vnd.cups-raster 0 rastertohp"
*ModelName: "HP LaserJet Series"
*ShortNickName: "HP LaserJet Series"
*NickName: "HP LaserJet Series CUPS v1.0"
*PSVersion: "(2017.000) 0"
*LanguageLevel: "2"
*ColorDevice: False
*DefaultColorSpace: Gray
*FileSystem: False
*Throughput: "8"
*LandscapeOrientation: Plus90
*VariablePaperSize: False
*TTRasterizer: Type42
*UIConstraints: *PageSize Executive *InputSlot Envelope
*UIConstraints: *PageSize Letter *InputSlot Envelope
*UIConstraints: *PageSize Legal *InputSlot Envelope
*UIConstraints: *PageSize A4 *InputSlot Envelope
*UIConstraints: *PageSize A5 *InputSlot Envelope
*UIConstraints: *PageSize B5 *InputSlot Envelope
*OpenUI *PageSize/Media Size: PickOne
*OrderDependency: 10 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter/Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
*PageSize Legal/Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
*PageSize Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
*PageSize A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
*PageSize A5/A5: "<</PageSize[420 595]/ImagingBBox null>>setpagedevice"
*PageSize B5/B5 (JIS): "<</PageSize[516 729]/ImagingBBox null>>setpagedevice"
*PageSize EnvISOB5/Envelope B5: "<</PageSize[499 709]/ImagingBBox null>>setpagedevice"
*PageSize Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
*PageSize EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
*PageSize EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
*PageSize EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
*CloseUI: *PageSize
*OpenUI *PageRegion: PickOne
*OrderDependency: 10 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter/Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
*PageRegion Legal/Legal: "<</PageSize[612 1008]/ImagingBBox null>>setpagedevice"
*PageRegion Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
*PageRegion A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
*PageRegion A5/A5: "<</PageSize[421 595]/ImagingBBox null>>setpagedevice"
*PageRegion B5/B5 (JIS): "<</PageSize[516 729]/ImagingBBox null>>setpagedevice"
*PageRegion EnvISOB5/Envelope B5: "<</PageSize[499 709]/ImagingBBox null>>setpagedevice"
*PageRegion Env10/Envelope #10: "<</PageSize[297 684]/ImagingBBox null>>setpagedevice"
*PageRegion EnvC5/Envelope C5: "<</PageSize[459 649]/ImagingBBox null>>setpagedevice"
*PageRegion EnvDL/Envelope DL: "<</PageSize[312 624]/ImagingBBox null>>setpagedevice"
*PageRegion EnvMonarch/Envelope Monarch: "<</PageSize[279 540]/ImagingBBox null>>setpagedevice"
*CloseUI: *PageRegion
*DefaultImageableArea: Letter
*ImageableArea Letter/US Letter: "18 36 594 756"
*ImageableArea Legal/US Legal: "18 36 594 972"
*ImageableArea Executive/Executive: "18 36 504 684"
*ImageableArea A4/A4: "18 36 577 806"
*ImageableArea A5/A5: "18 36 403 559"
*ImageableArea B5/JIS B5: "18 36 498 693"
*ImageableArea EnvISOB5/B5 (ISO): "18 36 463 673"
*ImageableArea Env10/Com-10: "18 36 279 648"
*ImageableArea EnvC5/EnvC5: "18 36 441 613"
*ImageableArea EnvDL/EnvDL: "18 36 294 588"
*ImageableArea EnvMonarch/Envelope Monarch: "18 36 261 504"
*DefaultPaperDimension: Letter
*PaperDimension Letter/Letter: "612 792"
*PaperDimension Legal/Legal: "612 1008"
*PaperDimension Executive/Executive: "522 756"
*PaperDimension A4/A4: "595 842"
*PaperDimension A5/A5: "421 595"
*PaperDimension B5/B5 (JIS): "516 729"
*PaperDimension EnvISOB5/Envelope B5: "499 709"
*PaperDimension Env10/Envelope #10: "297 684"
*PaperDimension EnvC5/Envelope C5: "459 649"
*PaperDimension EnvDL/Envelope DL: "312 624"
*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
*OpenUI *InputSlot/Media Source: PickOne
*OrderDependency: 10 AnySetup *InputSlot
*DefaultInputSlot: Default
*InputSlot Default/Default: "<</cupsMediaPosition 0>>setpagedevice"
*InputSlot Tray1/Tray 1: "<</cupsMediaPosition 8>>setpagedevice"
*InputSlot Tray2/Tray 2: "<</cupsMediaPosition 1>>setpagedevice"
*InputSlot Tray3/Tray 3: "<</cupsMediaPosition 4>>setpagedevice"
*InputSlot Tray4/Tray 4: "<</cupsMediaPosition 5>>setpagedevice"
*InputSlot Manual/Manual Feed: "<</cupsMediaPosition 2>>setpagedevice"
*InputSlot Envelope/Envelope Feed: "<</cupsMediaPosition 3>>setpagedevice"
*CloseUI: *InputSlot
*OpenUI *Resolution/Output Resolution: PickOne
*OrderDependency: 20 AnySetup *Resolution
*DefaultResolution: 600dpi
*Resolution 150dpi/150 DPI: "<</HWResolution[150 150]/cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]/cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
*Resolution 600dpi/600 DPI: "<</HWResolution[600 600]/cupsColorOrder 0/cupsColorSpace 3/cupsCompression 2>>setpagedevice"
*CloseUI: *Resolution
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
*Font Bookman-Light: Standard "(001.004S)" Standard ROM
*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
*Font Courier: Standard "(002.004S)" Standard ROM
*Font Courier-Bold: Standard "(002.004S)" Standard ROM
*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
*Font Helvetica: Standard "(001.006S)" Standard ROM
*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
*Font Symbol: Special "(001.007S)" Special ROM
*Font Times-Bold: Standard "(001.007S)" Standard ROM
*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
*Font Times-Italic: Standard "(001.007S)" Standard ROM
*Font Times-Roman: Standard "(001.007S)" Standard ROM
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
*Font ZapfDingbats: Special "(001.004S)" Standard ROM
*%
*% End of "$Id$".
*%
+4
Ver Arquivo
@@ -33,13 +33,17 @@ device_(gs_cups_device)
device_(gs_nullpage_device)
#endif
#ifdef oper_
# ifdef HAVE_LIBZ
oper_(zfzlib_op_defs)
# endif /* HAVE_LIBZ */
oper_(zcie_l2_op_defs)
oper_(zcrd_l2_op_defs)
oper_(zfont0_op_defs)
oper_(zchar2_op_defs)
# ifdef HAVE_LIBJPEG
oper_(zfdcte_op_defs)
oper_(zfdctd_op_defs)
# endif /* HAVE_LIBJPEG */
oper_(zdevice2_l2_op_defs)
oper_(ziodev2_l2_op_defs)
oper_(zmedia2_l2_op_defs)
+4 -1
Ver Arquivo
@@ -199,7 +199,7 @@ gx_device_cups gs_cups_device =
1, /* cupsBitsPerPixel */
107, /* cupsBytesPerLine */
CUPS_ORDER_CHUNKED, /* cupsColorOrder */
CUPS_CSPACE_KCMY, /* cupsColorSpace */
CUPS_CSPACE_K, /* cupsColorSpace */
0, /* cupsCompression */
0, /* cupsRowCount */
0, /* cupsRowFeed */
@@ -1145,6 +1145,9 @@ cups_print_pages(gx_device_printer *pdev, /* I - Device info */
* Output a page of graphics...
*/
if (num_copies < 1)
num_copies = 1;
if (cups->ppd != NULL && !cups->ppd->manual_copies)
{
cups->header.NumCopies = num_copies;
+1 -1
Ver Arquivo
@@ -25,12 +25,12 @@
/* gdevprn.c */
/* Generic printer driver support */
#include <stdlib.h>
#include "ctype_.h"
#include "gdevprn.h"
#include "gp.h"
#include "gsparam.h"
#include "gxclio.h"
#include <stdlib.h>
/* ---------------- Standard device procedures ---------------- */

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais