função MXDC_ESCAPE

A função de escape da impressora MXDC_ESCAPE permite que os aplicativos escrevam documentos em um arquivo ou em uma impressora no formato XPS (Especificação de Papel XML) por meio do MXDC (Conversor de Documentos XPS da Microsoft).

Para executar essa operação, chame a função ExtEscape com os parâmetros a seguir.

Sintaxe

int MXDC_ESCAPE(
    hdc,
    cbInput,
    lpszInData,
    cbOutput,
    lpszOutData
);

Parâmetros

hdc

Um identificador para o contexto do dispositivo de impressora.

cbInput

O tamanho, em bytes, dos dados apontados pelo parâmetro lpszInData .

lpszInData

Um ponteiro para um buffer que contém os dados de entrada, que sempre é armazenado em uma das estruturas a seguir.

**MxdcEscapeHeader**
**MxdcPrintTicketEscape**
**MxdcS0PagePassthroughEscape**
**MxdcS0PageResourceEscape**

Cada uma dessas estruturas tem um membro opcode que especifica o que o MXDC deve fazer. Consulte MxdcEscapeHeader para obter comentários detalhados sobre esses códigos.

Código de operações (opcode) Ação
MXDCOP_GET_FILENAME
Define o parâmetro lpszOutData da função ExtEscape como, o caminho completo do arquivo de saída como uma cadeia de caracteres terminada em zero ou o tamanho dessa cadeia de caracteres.
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ
Associa um tíquete de impressão a uma sequência de documentos fixa do XPS.
MXDCOP_PRINTTICKET_FIXED_DOC
Associa um tíquete de impressão a um documento XPS.
MXDCOP_PRINTTICKET_FIXED_PAGE
Associa um tíquete de impressão a uma página XPS.
MXDCOP_SET_S0PAGE
Envia a marcação XPS da página atual para a saída.
MXDCOP_SET_S0PAGE_RESOURCE
Envia um recurso na página, como uma imagem ou fonte, para a saída.
MXDCOP_SET_XPSPASSTHRU_MODE
Coloca o MXDC em um estado de passagem, permitindo que um aplicativo escreva XPS diretamente no arquivo de saída sem nenhum processamento pelo MXDC. Um documento inteiro ou até mesmo uma sequência de documentos pode ser escrito dessa maneira.

cbOutput

O tamanho, em bytes, dos dados apontados pelo parâmetro lpszOutData .

lpszOutData

Um ponteiro para um buffer que contém os dados de saída.

Valor retornado

Se a função obtiver êxito, o valor retornado será maior que zero. Se a função falhar ou não tiver suporte, o valor retornado será menor ou igual a zero.

Comentários

Esse escape tem suporte do MXDC e do XPSDrv, mas não do GDI.

Para determinar se o driver da impressora é o MXDC, chame ExtEscape com o escape GETTECHNOLOGY . Se o driver for o MXDC, o ExtEscape retornará a cadeia de caracteres terminada em zero, "http://schemas.microsoft.com/xps/2005/06". Verifique se o buffer referenciado pelo parâmetro lpszOutData é grande o suficiente para manter essa cadeia de caracteres.

Para determinar se o driver de impressora é o driver do Gravador de Documentos do Microsoft XPS in-box do Windows, confirme se o driver da impressora é o MXDC e determine se o nome do driver de impressora é "Gravador de Documentos do Microsoft XPS".

Para obter o nome do driver da impressora, use uma das técnicas a seguir.

Chame GetPrinterDriver com o valor do parâmetro Level definido como 1. O nome do driver da impressora é retornado no membro pName da estrutura DRIVER_INFO_1 .
ou
Chame GetPrinter com o valor do parâmetro Level definido como 2. O nome do driver da impressora é retornado no membro pDriverName da estrutura PRINTER_INFO_2 .

A tabela a seguir mostra onde encontrar vários objetos no arquivo XPS vários tipos de objetos serão gravados.

Objeto Local no arquivo de saída
Página Fixa /Documents/1/Pages/Esc%d.fpage
Thumbnail /Documents/1/Metadata
Imprimir tíquete /Documents/1/Metadata
Fonte /Documents/1/Resources/Fonts
Image /Documents/1/Resources/Images

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Mxdc.h

Confira também

Impressão

Funções de escape da impressora

Extescape