printDocument : createUploadSession

Espace de noms: microsoft.graph

Créez une session de chargement qui permet à une application de charger de manière itérative des plages d’un fichier binaire lié au document à imprimer.

Dans le cadre de la réponse, cette action retourne une URL de chargement qui peut être utilisée dans les requêtes séquentielles PUT suivantes. Les en-têtes de requête pour chaque PUT opération peuvent être utilisés pour spécifier la plage exacte d’octets à charger. Cela permet de reprendre le transfert, au cas où la connexion réseau serait interrompue pendant le chargement.

Remarque : La création d’une session de chargement à l’aide des autorisations d’application réussit uniquement s’il existe une tâche printTask dans un processing état sur la tâche d’impression associée, démarrée par un déclencheur créé par l’application à la demande. Pour plus d’informations sur l’inscription d’un déclencheur de tâche, consultez Extension de l’impression universelle pour prendre en charge l’impression par extraction.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application PrintJob.ReadWrite.All Non disponible.

Requête HTTP

Pour créer une session de chargement à l’aide d’une imprimante :

POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession

Pour créer une session de chargement à l’aide d’printerShare (pris en charge avec des autorisations déléguées uniquement) :

POST /print/shares/{id}/jobs/{id}/documents/{id}/createUploadSession

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.

Paramètre Type Description
propriétés printDocumentUploadProperties Représente les propriétés du fichier binaire à charger.

La valeur de la propriété contentType dans le corps de la requête doit être prise en charge par printer/printerShare. Vous pouvez obtenir les types de contenu pris en charge en obtenant printerCapabilities de l’printer/printerShare.

Pour la conversion OXPS en PDF , vous devez passer application/oxps en tant que contentType pour printer/printerShare qui prend en charge application/pdf. L’impression universelle convertit OXPS en PDF, lorsque toutes les conditions suivantes sont remplies :

  1. Le partage imprimante/imprimante prend en charge application/pdf dans printerCapabilities.
  2. Le partage imprimante/imprimante ne prend PAS en charge application/oxps dans printerCapabilities.
  3. La valeur de la propriété contentType dans le corps de la demande est application/oxps.

Réponse

Si elle réussit, cette méthode renvoie un 200 OK code de réponse et un nouvel objet uploadSession dans le corps de la réponse.

Remarque : la propriété uploadUrl retournée dans le cadre de l’objet de réponse uploadSession est une URL opaque pour les requêtes suivantes PUT pour charger des plages d’octets du fichier. Il contient le jeton d’authentification approprié pour les requêtes suivantes PUT qui expirent par expirationDateTime. Ne modifiez pas cette URL.

Exemples

L’exemple suivant montre comment créer une session de chargement que vous pouvez utiliser dans les opérations de chargement de fichiers suivantes dans le printDocument spécifié.

Demande

POST https://graph.microsoft.com/v1.0/print/printers/{printerId}/jobs/{printJobId}/documents/{printDocumentId}/createUploadSession
Content-Type: application/json

{
  "properties": {
    "documentName": "TestFile.pdf",
    "contentType": "application/pdf", 
    "size": 4533322
  }
}

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.uploadSession",
    "uploadUrl": "https://print.print.microsoft.com/uploadSessions/5400be13-5a4e-4c20-be70-90c85bfe5d6e?tempauthtoken={token}",
    "expirationDateTime": "2020-10-25T02:19:38.1694207Z",
    "nextExpectedRanges": [
        "0-4533321"
    ]
}