]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/cupspm.md
Update ipp documentation to reflect the behavior of configuring WiFi on IPP USB printers.
[thirdparty/cups.git] / cups / cupspm.md
index 774f1b1b458f6b60ad78403b27318c590af70077..7e03c3d6561a1c595a5bad9ddd5447754d094a91 100644 (file)
@@ -1,8 +1,8 @@
 ---
 title: CUPS Programming Manual
 author: Michael R Sweet
-copyright: Copyright © 2007-2018 by Apple Inc. All Rights Reserved.
-version: 2.3.0
+copyright: Copyright © 2007-2022 by Apple Inc. All Rights Reserved.
+version: 2.3.6
 ...
 
 > Please [file issues on Github](https://github.com/apple/cups/issues) to
@@ -25,7 +25,7 @@ the CUPS scheduler.
 
 ## Guidelines
 
-When writing software that uses the "cups" library:
+When writing software (other than printer drivers) that uses the "cups" library:
 
 - Do not use undocumented or deprecated APIs,
 - Do not rely on pre-configured printers,
@@ -42,16 +42,23 @@ Similarly, printer and job management applications can use standard query
 operations to obtain the status information in a common, generic form and use
 standard management operations to control the state of those printers and jobs.
 
+> **Note:**
+>
+> CUPS printer drivers necessarily depend on specific file formats and certain
+> implementation details of the CUPS software.  Please consult the Postscript
+> and raster printer driver developer documentation on
+> [CUPS.org](https://www.cups.org/documentation.html) for more information.
+
 
 ## Terms Used in This Document
 
 A *Destination* is a printer or print queue that accepts print jobs.  A
-*Print Job* is one or more documents that are processed by a destination
-using options supplied when creating the job.  A *Document* is a file (JPEG
-image, PDF file, etc.) suitable for printing.  An *Option* controls some aspect
-of printing, such as the media used. *Media* is the sheets or roll that is
-printed on.  An *Attribute* is an option encoded for an Internet Printing
-Protocol (IPP) request.
+*Print Job* is a collection of one or more documents that are processed by a
+destination using options supplied when creating the job.  A *Document* is a
+file (JPEG image, PDF file, etc.) suitable for printing.  An *Option* controls
+some aspect of printing, such as the media used. *Media* is the sheets or roll
+that is printed on.  An *Attribute* is an option encoded for an Internet
+Printing Protocol (IPP) request.
 
 
 ## Compiling Programs That Use the CUPS API
@@ -101,7 +108,7 @@ to the file.  Build and run (CMD+R) to see the list of destinations.
 
 ### Compiling with GCC
 
-From the command-line, create a file called `sample.c` using your favorite
+From the command-line, create a file called `simple.c` using your favorite
 editor, copy the example to this file, and save.  Then run the following command
 to compile it with GCC and run it:
 
@@ -195,7 +202,9 @@ can have any of the following constant (bit) values set:
 
 The callback function returns 0 to stop enumeration or 1 to continue.
 
-> Note that the callback function will likely be called multiple times for the
+> **Note:**
+>
+> The callback function will likely be called multiple times for the
 > same destination, so it is up to the caller to suppress any duplicate
 > destinations.
 
@@ -817,7 +826,9 @@ which printer is being queried:
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
                  "printer-uri", NULL, printer_uri);
 
-> Note: If we wanted to query the scheduler instead of the device, we would look
+> **Note:**
+>
+> If we wanted to query the scheduler instead of the device, we would look
 > up the "printer-uri-supported" option instead of the "device-uri" value.
 
 The `ippAddString` function adds the "printer-uri" attribute the the IPP