printDocument: createUploadSession

Namespace: microsoft.graph

Crie uma sessão de upload que permita que um aplicativo carregue iterativamente intervalos de um arquivo binário vinculado ao documento de impressão.

Como parte da resposta, essa ação retorna uma URL de upload que pode ser usada em consultas sequenciais PUT subsequentes. Os cabeçalhos de solicitação para cada PUT operação podem ser usados para especificar o intervalo exato de bytes a serem carregados. Isso permite que a transferência seja retomada, caso a conexão de rede seja descartada durante o upload.

Observação: a criação de uma sessão de upload usando permissões de aplicativo só será bem-sucedida se houver um printTask em um processing estado no trabalho de impressão associado, iniciado por um gatilho que o aplicativo de solicitação criou. Para obter detalhes sobre como registrar um gatilho de tarefa, consulte Estendendo a Impressão Universal para dar suporte à impressão pull.

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões privilegiadas mais altas
Delegado (conta corporativa ou de estudante) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application PrintJob.ReadWrite.All Indisponível.

Solicitação HTTP

Para criar uma sessão de upload usando a impressora:

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

Para criar uma sessão de upload usando o printerShare (com suporte apenas com permissões delegadas):

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

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.

Parâmetro Tipo Descrição
properties printDocumentUploadProperties Representa as propriedades do arquivo binário a ser carregado.

O valor da propriedade contentType no corpo da solicitação deve ser suportado pela impressora/impressoraShare. Você pode obter os tipos de conteúdo com suporte obtendo impressoraCapabilidades da impressora/impressoraShare.

Para conversão de OXPS para PDF , você precisa passar application/oxps como contentType para impressora/printerShare que dá application/pdfsuporte a . A Impressão Universal converte o OXPS em PDF quando todas as seguintes condições são atendidas:

  1. O compartilhamento de impressora/impressora é application/pdf compatível com impressoraCapabilities.
  2. O compartilhamento de impressora/impressora NÃO dá suporte application/oxps a impressoraCapabilities.
  3. O valor da propriedade contentType no corpo da solicitação é application/oxps.

Resposta

Se for bem-sucedido, esse método retornará um 200 OK código de resposta e um novo objeto uploadSession no corpo da resposta.

Observação: a propriedade uploadUrl retornada como parte do objeto de resposta uploadSession é uma URL opaca para consultas subsequentes PUT para carregar intervalos de bytes do arquivo. Ele contém o token de auth apropriado para consultas subsequentes PUT que expiram por expirationDateTime. Não altere essa URL.

Exemplos

O exemplo a seguir mostra como criar uma sessão de upload que você pode usar em operações de carregamento de arquivo subsequentes para o printDocument especificado.

Solicitação

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
  }
}

Resposta

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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"
    ]
}