printDocument: createUploadSession

Пространство имен: microsoft.graph

Создайте сеанс отправки, который позволяет приложению итеративно передавать диапазоны двоичного файла, связанного с документом печати.

В рамках ответа это действие возвращает URL-адрес отправки, который можно использовать в последующих последовательных PUT запросах. Заголовки запросов для каждой PUT операции можно использовать для указания точного диапазона передаваемых байтов. Это позволяет возобновить передачу в случае, если сетевое подключение будет прервано во время отправки.

Примечание. Создание сеанса отправки с помощью разрешений приложения будет успешным только в том случае, если в processing связанном задании печати находится параметр printTask, запущенный триггером, созданным запрашивающим приложением. Дополнительные сведения о регистрации триггера задачи см. в разделе Расширение универсальной печати для поддержки печати по запросу.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet
✅ ✅ ✅ ❌

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение PrintJob.ReadWrite.All Недоступно.

HTTP-запрос

Чтобы создать сеанс отправки с помощью принтера, выполните приведенные далее действия.

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

Создание сеанса отправки с помощью printerShare (поддерживается только с делегированными разрешениями):

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

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательно.

Текст запроса

В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.

Параметр Тип Описание
properties printDocumentUploadProperties Представляет свойства передаваемого двоичного файла.

Значение свойства contentType в тексте запроса должно поддерживаться параметром printer/printerShare. Поддерживаемые типы контента можно получить, получив значение printerCapabilities принтера или printerShare.

Для преобразования OXPS в PDF необходимо передать application/oxps в качестве contentType для printer/printerShare, который поддерживает application/pdf. Универсальная печать преобразует OXPS в PDF при выполнении всех следующих условий:

  1. Общий ресурс принтера или принтера поддерживает application/pdf в printerCapabilities.
  2. Общий ресурс принтера или принтера не поддерживается application/oxps в printerCapabilities.
  3. Значение свойства contentType в тексте запроса — application/oxps.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 200 OK и новый объект uploadSession в тексте отклика.

Примечание. Свойство uploadUrl , возвращаемое как часть объекта ответа uploadSession , является непрозрачным URL-адресом для последующих PUT запросов к отправке диапазонов байтов файла. Он содержит соответствующий маркер проверки подлинности для последующих PUT запросов, срок действия которых истекает по истечении срока действияDateTime. Не изменяйте этот URL-адрес.

Примеры

В следующем примере показано, как создать сеанс отправки, который можно использовать в последующих операциях отправки файлов в указанный printDocument.

Запрос

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

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

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