Compartir a través de


printDocument: createUploadSession

Espacio de nombres: microsoft.graph

Cree una sesión de carga que permita a una aplicación cargar iterativamente intervalos de un archivo binario vinculado al documento de impresión.

Como parte de la respuesta, esta acción devuelve una dirección URL de carga que se puede usar en consultas secuenciales PUT posteriores. Los encabezados de solicitud para cada PUT operación se pueden usar para especificar el intervalo exacto de bytes que se van a cargar. Esto permite reanudar la transferencia, en caso de que se quite la conexión de red durante la carga.

Nota: La creación de una sesión de carga con permisos de aplicación solo se realizará correctamente si hay un objeto printTask en un processing estado en el trabajo de impresión asociado, iniciado por un desencadenador que creó la aplicación solicitante. Para obtener más información sobre cómo registrar un desencadenador de tareas, consulte Extensión de impresión universal para admitir la impresión a presión.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación PrintJob.ReadWrite.All No disponible.

Solicitud HTTP

Para crear una sesión de carga mediante la impresora:

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

Para crear una sesión de carga con printerShare (compatible solo con permisos delegados):

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

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione un objeto JSON con los siguientes parámetros.

Parámetro Tipo Descripción
properties printDocumentUploadProperties Representa las propiedades del archivo binario que se va a cargar.

El valor de la propiedad contentType en el cuerpo de la solicitud debe ser compatible con printer/printerShare. Para obtener los tipos de contenido admitidos, obtenga las funcionalidades de impresora de printer/printerShare.

Para la conversión de OXPS a PDF , debe pasar application/oxps como contentType para printer/printerShare que admita application/pdf. Impresión universal convierte OXPS en PDF, cuando se cumplen todas las condiciones siguientes:

  1. El recurso compartido de impresora/impresora admite application/pdf en printerCapabilities.
  2. El recurso compartido de impresora/impresora NO es compatible con application/oxpslas capacidades de impresora.
  3. El valor de la propiedad contentType en el cuerpo de la solicitud es application/oxps.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y un nuevo objeto uploadSession en el cuerpo de la respuesta.

Nota: La propiedad uploadUrl devuelta como parte del objeto de respuesta uploadSession es una dirección URL opaca para que las consultas posteriores PUT carguen intervalos de bytes del archivo. Contiene el token de autenticación adecuado para las consultas posteriores PUT que expiran por expirationDateTime. No cambie esta dirección URL.

Ejemplos

En el ejemplo siguiente se muestra cómo crear una sesión de carga que puede usar en las operaciones de carga de archivos posteriores en printDocument especificado.

Solicitud

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

Respuesta

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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