Поделиться через


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