Skip to content

Commit c31ac32

Browse files
authored
Merge pull request #24997 from microsoftgraph/cloud-printing-overview
Cloud printing overview
2 parents ec35340 + 96c963e commit c31ac32

File tree

9 files changed

+151
-27
lines changed

9 files changed

+151
-27
lines changed

api-reference/beta/config/link-validation-config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"/troubleshoot",
4040
"/viva",
4141
"/windows",
42-
"/windows-hardware"
42+
"/windows-hardware",
43+
"/universal-print"
4344
]
4445
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
title: "Use the Universal Print REST API"
3+
description: "Learn how you can use the Universal Print API to simplify and secure the Universal Print infrastructure in your organization"
4+
ms.localizationpriority: high
5+
author: "mnorman-ms"
6+
doc_type: conceptualPageType
7+
ms.subservice: "universal-print"
8+
---
9+
10+
# Use the Universal Print API
11+
12+
[!INCLUDE [beta-disclaimer](../../includes/beta-disclaimer.md)]
13+
14+
Universal Print is a modern print solution that organizations can use to manage their print infrastructure through Microsoft cloud services. Organizations use Universal Print to move key Windows Server print functionality to the Microsoft 365 cloud. Using Universal print helps organizations simplify and secure their print infrastructure, streamline printer management, enable users to discover printers by location, and more.
15+
16+
Use the Universal Print API to:
17+
18+
- Manage printers and shares.
19+
- Configure cloud-enabled and legacy printer capabilities, settings, and defaults.
20+
- Manage print jobs, print tasks and operations, and pull printing.
21+
- Manage printer access through users and groups.
22+
- Report print activity and usage by printer or user.
23+
24+
The cloud printing API provides the following key features.
25+
26+
## Access print devices
27+
28+
The [printerShare](./printershare.md) and [printer](./printer.md) resources define the public view and the actual printer for physical printers that are discoverable by users and applications. A **printerShare** is a logical view of **printer** resources that represent physical printers. The underlying physical printers can be changed without changing the printer share, which enables organizations to maintain high printer availability.
29+
30+
The **printerShare** resource contains properties and methods that let you manage which users and groups can perform operations on that printer, such as creating or deleting print jobs. You can use the **printer** property to access information about the physical printer, see its status, list and reset its settings, and more.
31+
32+
Cloud-enabled printers can connect directly to Universal Print, but legacy printers require a [print connector](./printconnector.md) to connect and enable discovery. For more information about print connectors for legacy print devices, see [What is the Universal Print connector?](/universal-print/fundamentals/universal-print-connector-overview).
33+
34+
## Manage user and group printing permissions
35+
36+
You can manage user and group print permissions with Universal Print APIs that operate on **printerShare** resources. You can add, remove, and list authorized users and groups to a printer share. The permissions applied to the printer share apply to all the physical printers that the share contains. In addition, the **printerShare** resource includes **allowedUsers** and **allowedGroups** navigation properties that contain the users and groups that are authorized to use the printers that the printer share contains.
37+
38+
39+
## Manage print jobs, tasks, and operations
40+
41+
[printJob](./printjob.md) objects are the basic unit of work for printing. They have a list of documents to print and another list of [printTask](./printtask.md) objects that describe the print operation to complete. Resources that derive from the [printOperation](./printoperation.md) base resource type, such as [printerCreateOperation](./printercreateoperation.md), represent long-running operations such as creating a new printer.
42+
43+
To print a document, create a **printJob** and pass its unique identifier to [printDocument: createUploadSession](../api/printdocument-createuploadsession.md) after the print task for the print job enters the **processing** state. Then use the session identifier that you received when you created the upload session to send the document to the **document** property of the **printJob**. After this operation completes, you can start the **printJob** to print your document. For more information about uploading documents, see [Upload documents using the Microsoft Graph Universal Print API](/graph/upload-data-to-upload-session).
44+
45+
## Implement pull printing
46+
47+
In pull printing, the user swipes their badge at a physical printer to enable printing. To implement pull printing, first create a virtual printer and then create a [printTaskTrigger](./printtasktrigger.md) on it. When a job is submitted, it pauses and your application can be notified. When the user swipes their badge at the physical printer, your application can redirect the job from virtual printer to the physical printer. This workflow increases security by reducing the number of unattended documents at the physical printer.
48+
49+
## Get print usage data and reports
50+
51+
Use the [printUsageByUser](./printusagebyuser.md) and [printUsageByPrinter](./printusagebyprinter.md) resources to report information about the daily or monthly number and type of print jobs for a user or printer. These reports are valuable for understanding your organization's usage of print resources and where there might be problems with your print infrastructure. The APIs that return [archivedPrintJob](./archivedprintjob.md) resources contain detailed information about the historical jobs from a printer, user, or group.
52+
53+
## Related content
54+
[Universal Print cloud printing API overview](/graph/universal-print-concept-overview)

api-reference/beta/resources/printer.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ Namespace: microsoft.graph
1313

1414
[!INCLUDE [beta-disclaimer](../../includes/beta-disclaimer.md)]
1515

16-
Represents a printer device that is registered with the Universal Print service. Printer resources can be used to manage print jobs, printer settings, printer metadata, and registration status.
16+
Represents a printer device that is registered with the Universal Print service. Printer resources can be used to manage print jobs, printer settings, printer metadata, and registration status. Inherits from [printerBase](./printerbase.md).
1717

18-
This resource supports:
19-
* [Subscribing to change notifications](/graph/universal-print-webhook-notifications).
18+
This resource supports [subscribing to change notifications](/graph/universal-print-webhook-notifications).
2019

2120
## Methods
2221

@@ -38,17 +37,17 @@ This resource supports:
3837
| Property | Type | Description |
3938
|:-------------|:------------|:------------|
4039
|id|String|The printer's identifier. Read-only.|
41-
|displayName|String|The name of the printer.|
42-
|manufacturer|String|The manufacturer reported by the printer.|
43-
|model|String|The model name reported by the printer.|
40+
|displayName|String|The name of the printer. Inherited from [printerBase](./printerbase.md).|
41+
|manufacturer|String|The manufacturer reported by the printer. Inherited from [printerBase](./printerbase.md).|
42+
|model|String|The model name reported by the printer. Inherited from [printerBase](./printerbase.md).|
4443
|registeredDateTime|DateTimeOffset|The DateTimeOffset when the printer was registered. Read-only.|
45-
|status|[printerStatus](printerstatus.md)|The processing status of the printer, including any errors.|
44+
|status|[printerStatus](printerstatus.md)|The processing status of the printer, including any errors. Inherited from [printerBase](./printerbase.md).|
4645
|isShared|Boolean|True if the printer is shared; false otherwise. Read-only.|
4746
|hasPhysicalDevice|Boolean|True if the printer has a physical device for printing. Read-only.|
48-
|isAcceptingJobs|Boolean| If `true`, the printer is currently accepting new print jobs.|
49-
|location|[printerLocation](printerlocation.md)|The physical and/or organizational location of the printer.|
50-
|defaults|[printerDefaults](printerdefaults.md)|The printer's default print settings.|
51-
|capabilities|[printerCapabilities](printercapabilities.md)|The capabilities of the printer.|
47+
|isAcceptingJobs|Boolean| If `true`, the printer is currently accepting new print jobs. Inherited from [printerBase](./printerbase.md).|
48+
|location|[printerLocation](printerlocation.md)|The physical and/or organizational location of the printer. Inherited from [printerBase](./printerbase.md).|
49+
|defaults|[printerDefaults](printerdefaults.md)|The printer's default print settings. Inherited from [printerBase](./printerbase.md).|
50+
|capabilities|[printerCapabilities](printercapabilities.md)|The capabilities of the printer. Inherited from [printerBase](./printerbase.md).|
5251
|lastSeenDateTime|DateTimeOffset|The most recent dateTimeOffset when a printer interacted with Universal Print. Read-only.|
5352

5453
## Relationships
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: printerBase resource type
3+
description: Represents the base type for printer and printer share.
4+
author: braedenp-msft
5+
ms.localizationpriority: medium
6+
ms.subservice: universal-print
7+
doc_type: resourcePageType
8+
---
9+
# printerBase resource type
10+
11+
Namespace: microsoft.graph
12+
13+
[!INCLUDE [beta-disclaimer](../../includes/beta-disclaimer.md)]
14+
15+
Represents the base type for the [printer](printer.md) and [printerShare](printerShare.md) entity types. Inherits from [printerBase](./printerbase.md).
16+
17+
## Properties
18+
|Property|Type|Description|
19+
|:---|:---|:---|
20+
|capabilities|[printerCapabilities](printercapabilities.md)|The capabilities of the printer/printerShare.|
21+
|defaults|[printerDefaults](printerdefaults.md)|The default print settings of printer/printerShare.|
22+
|displayName|String|The name of the printer/printerShare.|
23+
|id|String|The identifier.|
24+
|isAcceptingJobs|Boolean|Specifies whether the printer/printerShare is currently accepting new print jobs.|
25+
|location|[printerLocation](printerlocation.md)|The physical and/or organizational location of the printer/printerShare.|
26+
|manufacturer|String|The manufacturer of the printer/printerShare.|
27+
|model|String|The model name of the printer/printerShare.|
28+
|status|[printerStatus](printerstatus.md)|The processing status of the printer/printerShare, including any errors.|
29+
30+
## Relationships
31+
|Relationship|Type|Description|
32+
|:---|:---|:---|
33+
|jobs|[printJob](printjob.md) collection|The list of jobs that are queued for printing by the printer/printerShare.|
34+
35+
## JSON representation
36+
The following JSON representation shows the resource type.
37+
<!-- {
38+
"blockType": "resource",
39+
"keyProperty": "id",
40+
"@odata.type": "microsoft.graph.printerBase",
41+
"openType": false
42+
}
43+
-->
44+
``` json
45+
{
46+
"@odata.type": "#microsoft.graph.printerBase",
47+
"id": "String (identifier)",
48+
"displayName": "String",
49+
"manufacturer": "String",
50+
"model": "String",
51+
"isAcceptingJobs": "Boolean",
52+
"defaults": {
53+
"@odata.type": "microsoft.graph.printerDefaults"
54+
},
55+
"location": {
56+
"@odata.type": "microsoft.graph.printerLocation"
57+
},
58+
"capabilities": {
59+
"@odata.type": "microsoft.graph.printerCapabilities"
60+
},
61+
"status": {
62+
"@odata.type": "microsoft.graph.printerStatus"
63+
}
64+
}
65+
```
66+

api-reference/beta/resources/printershare.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,34 @@ Represents a printer that is intended to be discoverable by users and printing a
2525
| [Delete](../api/printershare-delete.md) | None | Unshare a printer. |
2626
| [List jobs](../api/printershare-list-jobs.md) | [printJob](printjob.md) collection | Get a list of print jobs that are queued for processing by the printerShare. |
2727
| [Create job for a printer share](../api/printershare-post-jobs.md) | [printJob](printjob.md) | Create a new print job for the printerShare. To start printing the job, use [start](../api/printjob-start.md). |
28-
| [List allowed users](../api/printershare-list-allowedusers.md) | [user](user.md) collection | Retrieve a list of users who have been granted access to submit print jobs to the associated printer share. |
28+
| [List allowed users](../api/printershare-list-allowedusers.md) | [user](user.md) collection | Retrieve a list of users who can submit print jobs to the associated printer share. |
2929
| [Create allowed user](../api/printershare-post-allowedusers.md) | None | Grant the specified user access to submit print jobs to the associated printer share. |
3030
| [Delete allowed user](../api/printershare-delete-alloweduser.md) | None | Revoke printer share access from the specified user. |
31-
| [List allowed groups](../api/printershare-list-allowedgroups.md) | [group](group.md) collection | Retrieve a list of groups that have been granted access to submit print jobs to the associated printer share. |
31+
| [List allowed groups](../api/printershare-list-allowedgroups.md) | [group](group.md) collection | Retrieve a list of groups whose members can submit print jobs to the associated printer share. |
3232
| [Create allowed group](../api/printershare-post-allowedgroups.md) | None | Grant the specified group access to submit print jobs to the associated printer share. |
3333
| [Delete allowed group](../api/printershare-delete-allowedgroup.md) | None | Revoke printer share access from the specified group. |
3434
| [List recent shares](../api/print-list-recentshares.md) | [printerShare](printershare.md) collection | Get a list of recently used **printerShares** by the signed-in user. |
3535

3636
## Properties
3737
| Property | Type | Description |
3838
|:-------------|:------------|:------------|
39-
|allowAllUsers|Boolean|If true, all users and groups will be granted access to this printer share. This supersedes the allow lists defined by the **allowedUsers** and **allowedGroups** navigation properties.|
40-
|capabilities|[printerCapabilities](printercapabilities.md)|The capabilities of the printer associated with this printer share.|
39+
|allowAllUsers|Boolean|If true, all users and groups can access this printer share. This property supersedes the lists of allowed users and groups defined by the **allowedUsers** and **allowedGroups** navigation properties.|
40+
|capabilities|[printerCapabilities](printercapabilities.md)|The capabilities of the printer associated with this printer share. Inherited from [printerBase](./printerbase.md).|
4141
|createdDateTime|DateTimeOffset|The DateTimeOffset when the printer share was created. Read-only.|
42-
|defaults|[printerDefaults](printerdefaults.md)|The default print settings of the printer associated with this printer share.|
43-
|displayName|String|The name of the printer share that print clients should display.|
42+
|defaults|[printerDefaults](printerdefaults.md)|The default print settings of the printer associated with this printer share. Inherited from [printerBase](./printerbase.md).|
43+
|displayName|String|The name of the printer share that print clients should display. Inherited from [printerBase](./printerbase.md).|
4444
|id|String| The printerShare's identifier. Read-only.|
45-
|isAcceptingJobs|Boolean|Whether the printer associated with this printer share is currently accepting new print jobs.|
46-
|location|[printerLocation](printerlocation.md)|The physical and/or organizational location of the printer associated with this printer share.|
47-
|manufacturer|String|The manufacturer reported by the printer associated with this printer share. Read-only.|
45+
|isAcceptingJobs|Boolean|Whether the printer associated with this printer share is currently accepting new print jobs. Inherited from [printerBase](./printerbase.md).|
46+
|location|[printerLocation](printerlocation.md)|The physical and/or organizational location of the printer associated with this printer share. Inherited from [printerBase](./printerbase.md).|
47+
|manufacturer|String|The manufacturer reported by the printer associated with this printer share. Read-only. Inherited from [printerBase](./printerbase.md).|
4848
|model|String|The model name reported by the printer associated with this printer share. Read-only.|
49-
|status|[printerStatus](printerstatus.md)|The processing status, including any errors, of the printer associated with this printer share. Read-only.|
50-
|viewPoint|[printerShareViewpoint](../resources/printershareviewpoint.md)|Additional data for a printer share as viewed by the signed-in user.|
49+
|status|[printerStatus](printerstatus.md)|The processing status, including any errors, of the printer associated with this printer share. Read-only. Inherited from [printerBase](./printerbase.md).|
50+
|viewPoint|[printerShareViewpoint](../resources/printershareviewpoint.md)|More data for a printer share as viewed by the signed-in user.|
5151

5252
## Relationships
5353
| Relationship | Type | Description |
5454
|:-------------|:------------|:------------|
55-
|allowedGroups|[group](group.md)|The groups whose users have access to print using the printer.|
55+
|allowedGroups|[group](group.md) collection|The groups whose users have access to print using the printer.|
5656
|allowedUsers|[user](user.md) collection|The users who have access to print using the printer.|
5757
|jobs|[printJob](printjob.md) collection| The list of jobs that are queued for printing by the printer associated with this printer share.|
5858
|printer|[printer](printer.md)|The printer that this printer share is related to. |

api-reference/beta/toc/device-and-app-management/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,8 @@ items:
534534
- name: Cloud printing
535535
displayName: Universal Print
536536
items:
537+
- name: Overview
538+
href: ../../resources/print-overview.md
537539
- name: Print
538540
items:
539541
- name: Print

api-reference/beta/toc/toc.mapping.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,7 @@
539539
},
540540
{
541541
"name": "Cloud printing",
542+
"overview": "../../resources/print-overview.md",
542543
"keywords": [
543544
"Universal Print"
544545
],

api-reference/v1.0/config/link-validation-config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"/troubleshoot",
3939
"/viva",
4040
"/windows",
41-
"/windows-hardware"
41+
"/windows-hardware",
42+
"/universal-print"
4243
]
4344
}

api-reference/v1.0/resources/printerbase.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: printerBase resource type
3-
description: Represents base type for printer and printer share
3+
description: Represents the base type for printer and printer share.
44
author: braedenp-msft
55
ms.localizationpriority: medium
66
ms.subservice: universal-print
@@ -11,7 +11,7 @@ ms.date: 04/03/2024
1111

1212
Namespace: microsoft.graph
1313

14-
Represents a base type for [printer](printer.md) and [printerShare](printerShare.md) entity types.
14+
Represents the base type for the [printer](printer.md) and [printerShare](printerShare.md) entity types. Inherits from [printerBase](./printerbase.md).
1515

1616
## Properties
1717
|Property|Type|Description|

0 commit comments

Comments
 (0)