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