printJob: redirecionamento
Artigo 04/04/2024
8 colaboradores
Comentários
Neste artigo
Namespace: microsoft.graph
Redirecione um trabalho de impressão para uma impressora diferente.
Redirecionar um trabalho de impressão só terá êxito 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 usar essa API para adicionar suporte à impressão pull à Impressão Universal, 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)
Sem suporte.
Sem suporte.
Delegado (conta pessoal da Microsoft)
Sem suporte.
Sem suporte.
Application
PrintJob.Manage.All
Indisponível.
Solicitação HTTP
POST /print/printers/{printerId}/jobs/{printJobId}/redirect
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
No corpo da solicitação, forneça a ID da impressora à qual o trabalho de impressão deve ser redirecionado.
Propriedade
Tipo
Descrição
destinationPrinterId
Cadeia de caracteres
A ID da impressora para a qual o trabalho de impressão deve ser redirecionado.
configuração
microsoft.graph.printJobConfiguration
Configuração atualizada do trabalho de impressão.
Resposta
Se for bem-sucedido, esse método retornará um 200 OK
código de resposta e um objeto printJob enfileirado para a impressora de destino.
Exemplos
Solicitação
POST https://graph.microsoft.com/v1.0/print/printers/{printerId}/jobs/{printJobId}/redirect
Content-Type: application/json
{
"destinationPrinterId": "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea",
"configuration": {
"feedOrientation": "longEdgeFirst",
"pageRanges": [
{
"start": 1,
"end": 1
}
],
"quality": "medium",
"dpi": 600,
"orientation": "landscape",
"copies": 1,
"duplexMode": "oneSided",
"colorMode": "blackAndWhite",
"inputBin": "by-pass-tray",
"outputBin": "output-tray",
"mediaSize": "A4",
"margin": {
"top": 0,
"bottom": 0,
"left": 0,
"right": 0
},
"mediaType": "stationery",
"finishings": null,
"pagesPerSheet": 1,
"multipageLayout": "clockwiseFromBottomLeft",
"collate": false,
"scaling": "shrinkToFit",
"fitPdfToPage": false
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Print.Printers.Item.Jobs.Item.Redirect;
using Microsoft.Graph.Models;
var requestBody = new RedirectPostRequestBody
{
DestinationPrinterId = "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea",
Configuration = new PrintJobConfiguration
{
FeedOrientation = PrinterFeedOrientation.LongEdgeFirst,
PageRanges = new List<IntegerRange>
{
new IntegerRange
{
Start = 1L,
End = 1L,
},
},
Quality = PrintQuality.Medium,
Dpi = 600,
Orientation = PrintOrientation.Landscape,
Copies = 1,
DuplexMode = PrintDuplexMode.OneSided,
ColorMode = PrintColorMode.BlackAndWhite,
InputBin = "by-pass-tray",
OutputBin = "output-tray",
MediaSize = "A4",
Margin = new PrintMargin
{
Top = 0,
Bottom = 0,
Left = 0,
Right = 0,
},
MediaType = "stationery",
Finishings = null,
PagesPerSheet = 1,
MultipageLayout = PrintMultipageLayout.ClockwiseFromBottomLeft,
Collate = false,
Scaling = PrintScaling.ShrinkToFit,
FitPdfToPage = false,
},
};
// To initialize your graphClient, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Print.Printers["{printer-id}"].Jobs["{printJob-id}"].Redirect.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
mgc print printers jobs redirect post --printer-id {printer-id} --print-job-id {printJob-id} --body '{\
"destinationPrinterId": "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea",\
"configuration": {\
"feedOrientation": "longEdgeFirst",\
"pageRanges": [\
{\
"start": 1,\
"end": 1\
}\
],\
"quality": "medium",\
"dpi": 600,\
"orientation": "landscape",\
"copies": 1,\
"duplexMode": "oneSided",\
"colorMode": "blackAndWhite",\
"inputBin": "by-pass-tray",\
"outputBin": "output-tray",\
"mediaSize": "A4",\
"margin": {\
"top": 0,\
"bottom": 0,\
"left": 0,\
"right": 0\
},\
"mediaType": "stationery",\
"finishings": null,\
"pagesPerSheet": 1,\
"multipageLayout": "clockwiseFromBottomLeft",\
"collate": false,\
"scaling": "shrinkToFit",\
"fitPdfToPage": false\
}\
}\
'
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphprint "github.com/microsoftgraph/msgraph-sdk-go/print"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphprint.NewRedirectPostRequestBody()
destinationPrinterId := "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea"
requestBody.SetDestinationPrinterId(&destinationPrinterId)
configuration := graphmodels.NewPrintJobConfiguration()
feedOrientation := graphmodels.LONGEDGEFIRST_PRINTERFEEDORIENTATION
configuration.SetFeedOrientation(&feedOrientation)
integerRange := graphmodels.NewIntegerRange()
start := int64(1)
integerRange.SetStart(&start)
end := int64(1)
integerRange.SetEnd(&end)
pageRanges := []graphmodels.IntegerRangeable {
integerRange,
}
configuration.SetPageRanges(pageRanges)
quality := graphmodels.MEDIUM_PRINTQUALITY
configuration.SetQuality(&quality)
dpi := int32(600)
configuration.SetDpi(&dpi)
orientation := graphmodels.LANDSCAPE_PRINTORIENTATION
configuration.SetOrientation(&orientation)
copies := int32(1)
configuration.SetCopies(&copies)
duplexMode := graphmodels.ONESIDED_PRINTDUPLEXMODE
configuration.SetDuplexMode(&duplexMode)
colorMode := graphmodels.BLACKANDWHITE_PRINTCOLORMODE
configuration.SetColorMode(&colorMode)
inputBin := "by-pass-tray"
configuration.SetInputBin(&inputBin)
outputBin := "output-tray"
configuration.SetOutputBin(&outputBin)
mediaSize := "A4"
configuration.SetMediaSize(&mediaSize)
margin := graphmodels.NewPrintMargin()
top := int32(0)
margin.SetTop(&top)
bottom := int32(0)
margin.SetBottom(&bottom)
left := int32(0)
margin.SetLeft(&left)
right := int32(0)
margin.SetRight(&right)
configuration.SetMargin(margin)
mediaType := "stationery"
configuration.SetMediaType(&mediaType)
finishings := null
configuration.SetFinishings(&finishings)
pagesPerSheet := int32(1)
configuration.SetPagesPerSheet(&pagesPerSheet)
multipageLayout := graphmodels.CLOCKWISEFROMBOTTOMLEFT_PRINTMULTIPAGELAYOUT
configuration.SetMultipageLayout(&multipageLayout)
collate := false
configuration.SetCollate(&collate)
scaling := graphmodels.SHRINKTOFIT_PRINTSCALING
configuration.SetScaling(&scaling)
fitPdfToPage := false
configuration.SetFitPdfToPage(&fitPdfToPage)
requestBody.SetConfiguration(configuration)
// To initialize your graphClient, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=go
redirect, err := graphClient.Print().Printers().ByPrinterId("printer-id").Jobs().ByPrintJobId("printJob-id").Redirect().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.print.printers.item.jobs.item.redirect.RedirectPostRequestBody redirectPostRequestBody = new com.microsoft.graph.print.printers.item.jobs.item.redirect.RedirectPostRequestBody();
redirectPostRequestBody.setDestinationPrinterId("9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea");
PrintJobConfiguration configuration = new PrintJobConfiguration();
configuration.setFeedOrientation(PrinterFeedOrientation.LongEdgeFirst);
LinkedList<IntegerRange> pageRanges = new LinkedList<IntegerRange>();
IntegerRange integerRange = new IntegerRange();
integerRange.setStart(1L);
integerRange.setEnd(1L);
pageRanges.add(integerRange);
configuration.setPageRanges(pageRanges);
configuration.setQuality(PrintQuality.Medium);
configuration.setDpi(600);
configuration.setOrientation(PrintOrientation.Landscape);
configuration.setCopies(1);
configuration.setDuplexMode(PrintDuplexMode.OneSided);
configuration.setColorMode(PrintColorMode.BlackAndWhite);
configuration.setInputBin("by-pass-tray");
configuration.setOutputBin("output-tray");
configuration.setMediaSize("A4");
PrintMargin margin = new PrintMargin();
margin.setTop(0);
margin.setBottom(0);
margin.setLeft(0);
margin.setRight(0);
configuration.setMargin(margin);
configuration.setMediaType("stationery");
configuration.setFinishings(null);
configuration.setPagesPerSheet(1);
configuration.setMultipageLayout(PrintMultipageLayout.ClockwiseFromBottomLeft);
configuration.setCollate(false);
configuration.setScaling(PrintScaling.ShrinkToFit);
configuration.setFitPdfToPage(false);
redirectPostRequestBody.setConfiguration(configuration);
var result = graphClient.print().printers().byPrinterId("{printer-id}").jobs().byPrintJobId("{printJob-id}").redirect().post(redirectPostRequestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
const options = {
authProvider,
};
const client = Client.init(options);
const printJob = {
destinationPrinterId: '9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea',
configuration: {
feedOrientation: 'longEdgeFirst',
pageRanges: [
{
start: 1,
end: 1
}
],
quality: 'medium',
dpi: 600,
orientation: 'landscape',
copies: 1,
duplexMode: 'oneSided',
colorMode: 'blackAndWhite',
inputBin: 'by-pass-tray',
outputBin: 'output-tray',
mediaSize: 'A4',
margin: {
top: 0,
bottom: 0,
left: 0,
right: 0
},
mediaType: 'stationery',
finishings: null,
pagesPerSheet: 1,
multipageLayout: 'clockwiseFromBottomLeft',
collate: false,
scaling: 'shrinkToFit',
fitPdfToPage: false
}
};
await client.api('/print/printers/{printerId}/jobs/{printJobId}/redirect')
.post(printJob);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Print\Printers\Item\Jobs\Item\Redirect\RedirectPostRequestBody;
use Microsoft\Graph\Generated\Models\PrintJobConfiguration;
use Microsoft\Graph\Generated\Models\PrinterFeedOrientation;
use Microsoft\Graph\Generated\Models\IntegerRange;
use Microsoft\Graph\Generated\Models\PrintQuality;
use Microsoft\Graph\Generated\Models\PrintOrientation;
use Microsoft\Graph\Generated\Models\PrintDuplexMode;
use Microsoft\Graph\Generated\Models\PrintColorMode;
use Microsoft\Graph\Generated\Models\PrintMargin;
use Microsoft\Graph\Generated\Models\PrintMultipageLayout;
use Microsoft\Graph\Generated\Models\PrintScaling;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new RedirectPostRequestBody();
$requestBody->setDestinationPrinterId('9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea');
$configuration = new PrintJobConfiguration();
$configuration->setFeedOrientation(new PrinterFeedOrientation('longEdgeFirst'));
$pageRangesIntegerRange1 = new IntegerRange();
$pageRangesIntegerRange1->setStart(1);
$pageRangesIntegerRange1->setEnd(1);
$pageRangesArray []= $pageRangesIntegerRange1;
$configuration->setPageRanges($pageRangesArray);
$configuration->setQuality(new PrintQuality('medium'));
$configuration->setDpi(600);
$configuration->setOrientation(new PrintOrientation('landscape'));
$configuration->setCopies(1);
$configuration->setDuplexMode(new PrintDuplexMode('oneSided'));
$configuration->setColorMode(new PrintColorMode('blackAndWhite'));
$configuration->setInputBin('by-pass-tray');
$configuration->setOutputBin('output-tray');
$configuration->setMediaSize('A4');
$configurationMargin = new PrintMargin();
$configurationMargin->setTop(0);
$configurationMargin->setBottom(0);
$configurationMargin->setLeft(0);
$configurationMargin->setRight(0);
$configuration->setMargin($configurationMargin);
$configuration->setMediaType('stationery');
$configuration->setFinishings(null);
$configuration->setPagesPerSheet(1);
$configuration->setMultipageLayout(new PrintMultipageLayout('clockwiseFromBottomLeft'));
$configuration->setCollate(false);
$configuration->setScaling(new PrintScaling('shrinkToFit'));
$configuration->setFitPdfToPage(false);
$requestBody->setConfiguration($configuration);
$result = $graphServiceClient->escapedPrint()->printers()->byPrinterId('printer-id')->jobs()->byPrintJobId('printJob-id')->redirect()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
Import-Module Microsoft.Graph.Devices.CloudPrint
$params = @{
destinationPrinterId = "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea"
configuration = @{
feedOrientation = "longEdgeFirst"
pageRanges = @(
@{
start = 1
end = 1
}
)
quality = "medium"
dpi = 600
orientation = "landscape"
copies = 1
duplexMode = "oneSided"
colorMode = "blackAndWhite"
inputBin = "by-pass-tray"
outputBin = "output-tray"
mediaSize = "A4"
margin = @{
top = 0
bottom = 0
left = 0
right = 0
}
mediaType = "stationery"
finishings = $null
pagesPerSheet = 1
multipageLayout = "clockwiseFromBottomLeft"
collate = $false
scaling = "shrinkToFit"
fitPdfToPage = $false
}
}
Invoke-MgRedirectPrintPrinterJob -PrinterId $printerId -PrintJobId $printJobId -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.print.printers.item.jobs.item.redirect.redirect_post_request_body import RedirectPostRequestBody
from msgraph.generated.models.print_job_configuration import PrintJobConfiguration
from msgraph.generated.models.printer_feed_orientation import PrinterFeedOrientation
from msgraph.generated.models.integer_range import IntegerRange
from msgraph.generated.models.print_quality import PrintQuality
from msgraph.generated.models.print_orientation import PrintOrientation
from msgraph.generated.models.print_duplex_mode import PrintDuplexMode
from msgraph.generated.models.print_color_mode import PrintColorMode
from msgraph.generated.models.print_margin import PrintMargin
from msgraph.generated.models.print_multipage_layout import PrintMultipageLayout
from msgraph.generated.models.print_scaling import PrintScaling
# To initialize your graph_client, see https://zcusa.951200.xyz/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = RedirectPostRequestBody(
destination_printer_id = "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea",
configuration = PrintJobConfiguration(
feed_orientation = PrinterFeedOrientation.LongEdgeFirst,
page_ranges = [
IntegerRange(
start = 1,
end = 1,
),
],
quality = PrintQuality.Medium,
dpi = 600,
orientation = PrintOrientation.Landscape,
copies = 1,
duplex_mode = PrintDuplexMode.OneSided,
color_mode = PrintColorMode.BlackAndWhite,
input_bin = "by-pass-tray",
output_bin = "output-tray",
media_size = "A4",
margin = PrintMargin(
top = 0,
bottom = 0,
left = 0,
right = 0,
),
media_type = "stationery",
finishings = None,
pages_per_sheet = 1,
multipage_layout = PrintMultipageLayout.ClockwiseFromBottomLeft,
collate = False,
scaling = PrintScaling.ShrinkToFit,
fit_pdf_to_page = False,
),
)
result = await graph_client.print.printers.by_printer_id('printer-id').jobs.by_print_job_id('printJob-id').redirect.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider , consulte a documentação do SDK .
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#print/printers('9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea')/jobs/$entity",
"id": "24123",
"createdDateTime": "2020-06-26T04:20:06.5715544Z",
"createdBy": {
"id": "",
"displayName": "",
"userPrincipalName": ""
},
"status": {
"state": "processing",
"description": "The print job is currently being processed by the printer.",
"details": ["interpreting"]
},
"configuration": {
"feedOrientation": "longEdgeFirst",
"pageRanges": [
{
"start": 1,
"end": 1
}
],
"quality": "medium",
"dpi": 600,
"orientation": "landscape",
"copies": 1,
"duplexMode": "oneSided",
"colorMode": "blackAndWhite",
"inputBin": "by-pass-tray",
"outputBin": "output-tray",
"mediaSize": "A4",
"margin": {
"top": 0,
"bottom": 0,
"left": 0,
"right": 0
},
"mediaType": "stationery",
"finishings": null,
"pagesPerSheet": 1,
"multipageLayout": "clockwiseFromBottomLeft",
"collate": false,
"scaling": "shrinkToFit",
"fitPdfToPage": false
}
}