printDocument: createUploadSession

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Cree una sesión de carga que permita a una aplicación cargar de forma iterativa 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 la conexión de red se interrumpa 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 printTask en un processing estado en el trabajo de impresión asociado, iniciado por un desencadenador creado por la aplicación solicitante. Para obtener más información sobre cómo registrar un desencadenador de tareas, consulte Ampliación de la impresión universal para admitir la impresión extraída.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos 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 con una 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 autenticación y autorización.
Tipo de contenido 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. Puede obtener los tipos de contenido admitidos obteniendo printerCapabilities de printer/printerShare.

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

  1. La impresora/recurso compartido de impresora se admite application/pdf en printerCapabilities.
  2. impresora/recurso compartido de impresora no se admite application/oxps en printerCapabilities.
  3. El valor de la propiedad contentType en el cuerpo de la solicitud es application/oxps.

Respuesta

Si tiene éxito, 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 URL.

Ejemplos

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

Solicitud

POST https://graph.microsoft.com/beta/print/shares/1c879027-5120-4aaf-954a-ebfd509a3bcc/jobs/46207/documents/9001bcd9-e36a-4f51-bfc6-140c3ad7f9f7/createUploadSession
Content-type: application/json

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

Respuesta

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$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"
    ]
}