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.
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 :
Le partage imprimante/imprimante prend en charge application/pdf dans printerCapabilities.
Le partage imprimante/imprimante ne prend PAS en charge application/oxps dans printerCapabilities.
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é.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Print.Printers.Item.Jobs.Item.Documents.Item.CreateUploadSession;
using Microsoft.Graph.Models;
var requestBody = new CreateUploadSessionPostRequestBody
{
Properties = new PrintDocumentUploadProperties
{
DocumentName = "TestFile.pdf",
ContentType = "application/pdf",
Size = 4533322L,
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Print.Printers["{printer-id}"].Jobs["{printJob-id}"].Documents["{printDocument-id}"].CreateUploadSession.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphprint "github.com/microsoftgraph/msgraph-sdk-go/print"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphprint.NewCreateUploadSessionPostRequestBody()
properties := graphmodels.NewPrintDocumentUploadProperties()
documentName := "TestFile.pdf"
properties.SetDocumentName(&documentName)
contentType := "application/pdf"
properties.SetContentType(&contentType)
size := int64(4533322)
properties.SetSize(&size)
requestBody.SetProperties(properties)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
createUploadSession, err := graphClient.Print().Printers().ByPrinterId("printer-id").Jobs().ByPrintJobId("printJob-id").Documents().ByPrintDocumentId("printDocument-id").CreateUploadSession().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.print.printers.item.jobs.item.documents.item.createuploadsession.CreateUploadSessionPostRequestBody createUploadSessionPostRequestBody = new com.microsoft.graph.print.printers.item.jobs.item.documents.item.createuploadsession.CreateUploadSessionPostRequestBody();
PrintDocumentUploadProperties properties = new PrintDocumentUploadProperties();
properties.setDocumentName("TestFile.pdf");
properties.setContentType("application/pdf");
properties.setSize(4533322L);
createUploadSessionPostRequestBody.setProperties(properties);
var result = graphClient.print().printers().byPrinterId("{printer-id}").jobs().byPrintJobId("{printJob-id}").documents().byPrintDocumentId("{printDocument-id}").createUploadSession().post(createUploadSessionPostRequestBody);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Print\Printers\Item\Jobs\Item\Documents\Item\CreateUploadSession\CreateUploadSessionPostRequestBody;
use Microsoft\Graph\Generated\Models\PrintDocumentUploadProperties;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CreateUploadSessionPostRequestBody();
$properties = new PrintDocumentUploadProperties();
$properties->setDocumentName('TestFile.pdf');
$properties->setContentType('application/pdf');
$properties->setSize(4533322);
$requestBody->setProperties($properties);
$result = $graphServiceClient->escapedPrint()->printers()->byPrinterId('printer-id')->jobs()->byPrintJobId('printJob-id')->documents()->byPrintDocumentId('printDocument-id')->createUploadSession()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.print.printers.item.jobs.item.documents.item.create_upload_session.create_upload_session_post_request_body import CreateUploadSessionPostRequestBody
from msgraph.generated.models.print_document_upload_properties import PrintDocumentUploadProperties
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = CreateUploadSessionPostRequestBody(
properties = PrintDocumentUploadProperties(
document_name = "TestFile.pdf",
content_type = "application/pdf",
size = 4533322,
),
)
result = await graph_client.print.printers.by_printer_id('printer-id').jobs.by_print_job_id('printJob-id').documents.by_print_document_id('printDocument-id').create_upload_session.post(request_body)