Sintomas
Considere o seguinte cenário:
-
Crie uma aplicação Windows Forms baseada numa das seguintes versões do Microsoft .NET Framework:
-
O Microsoft .NET Framework 2.0
-
O Microsoft .NET Framework 3.0
-
O Microsoft .NET Framework 3.5
-
-
Utilize a classe PrintDialog para apresentar uma caixa de diálogo Imprimir para impressão na aplicação.
-
Selecione a caixa de verificação Agrupamento na caixa de diálogo.Nota Também pode definir programaticamente PrintDialogObject. PrinterSettings.Collate como verdadeiro.
Neste cenário, a definição de agrupamento não funciona. Por exemplo, suponha que tenta imprimir 2 cópias de um documento de 2 páginas. Quando a definição de agrupamento está ativada, as páginas devem ser impressas pela seguinte ordem:
Página 1Página 2Página 1Página 2No entanto, as páginas são impressas pela seguinte ordem:
Página 1Página 1Página 2 Página 2NoteEste problema não ocorre no Windows XP ou Windows Server 2003.
Causa
O problema ocorre porque o Windows Forms aplicação lê os dados de definição da impressora a partir de uma localização incorreta após a caixa de diálogo Imprimir ser fechada.
Resolução
Informações de correção
Uma correção suportada está agora disponível na Microsoft. No entanto, destina-se a corrigir apenas o problema descrito neste artigo. Aplique-o apenas a sistemas com este problema específico.Para resolver este problema, contacte os Serviços de Suporte ao Cliente da Microsoft para obter a correção. Para obter uma lista completa dos números de telefone e informações dos Serviços de Suporte ao Cliente da Microsoft sobre os custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota Em casos especiais, os custos normalmente incorridos para chamadas de suporte podem ser cancelados se um Suporte da Microsoft Professional determinar que uma atualização específica irá resolver o problema. Os custos normais do suporte serão aplicados a problemas e questões de suporte adicionais que não sejam qualificáveis para a atualização específica em questão.
Pré-requisitos
Para aplicar esta correção, tem de ter o .NET Framework 2.0, o .NET Framework 3.0 ou o .NET Framework 3.5 instalado num computador com um dos seguintes sistemas operativos:
-
Windows Vista Service Pack 2 (SP2)
-
Windows Server 2008 Service Pack 2 (SP2)
-
Windows 7
-
Windows 7 Service Pack 1 (SP1)
-
Windows Server 2008 R2
-
Windows Server 2008 R2 Service Pack 1 (SP1)
Requisito de reinício
Terá de reiniciar o computador depois de aplicar esta correção se os ficheiros afetados estiverem a ser utilizados durante a instalação. Recomendamos que feche todas as .NET Framework aplicações que bloqueiam ou utilizam os ficheiros afetados antes de instalar esta correção.
Informações sobre substituição de correções
Esta correção não substitui uma correção disponibilizada anteriormente.
Informações do ficheiro
A versão global desta correção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) que estão listados na tabela seguinte. As datas e horas destes ficheiros estão listadas no formato de Hora Universal Coordenada (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para encontrar a diferença entre a hora UTC e a hora local, utilize o separador Fuso Horário no item Data e Hora no Painel de Controlo.
Para o Windows Vista e Windows Server 2008
Para todas as versões suportadas baseadas em x86 do Windows Server 2008 e do Windows Vista
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:58 |
x86 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:58 |
x86 |
Para todas as versões suportadas baseadas em x64 do Windows Server 2008 e do Windows Vista
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:59 |
x64 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:59 |
x64 |
Para todas as versões baseadas em IA-64 suportadas do Windows Server 2008
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:52 |
IA-64 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:52 |
IA-64 |
Para o Windows 7 e Windows Server 2008 R2
Para todas as versões suportadas baseadas em x86 do Windows 7
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:59 |
x86 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:59 |
x86 |
Para todas as versões suportadas baseadas em x64 do Windows 7 e Windows Server 2008 R2
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:59 |
x64 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:59 |
x64 |
Para todas as versões baseadas em IA-64 suportadas do Windows Server 2008 R2
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:52 |
IA-64 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:52 |
IA-64 |
Para o Windows 7 SP1 e Windows Server 2008 R2 SP1
Para todas as versões suportadas baseadas em x86 do Windows 7 SP1
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
11:03 |
x86 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
11:03 |
x86 |
Para todas as versões suportadas baseadas em x64 do Windows 7 SP1 e Windows Server 2008 R2 SP1
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
11:02 |
x64 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
11:02 |
x64 |
Para todas as versões baseadas em IA-64 suportadas do Windows Server 2008 R2 SP1
|
Nome de ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
|---|---|---|---|---|---|
|
System.design.dll |
2.0.50727.5734 |
5,062,656 |
22-Ago-2012 |
10:55 |
IA-64 |
|
System.windows.forms.dll |
2.0.50727.5734 |
5,025,792 |
22-Ago-2012 |
10:55 |
IA-64 |
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informações
O seguinte descreve a alteração de comportamento antes e depois de instalar a correção. Por exemplo, vai criar uma aplicação Windows Forms que contém o seguinte código:
PrintDialog pd = new PrintDialog();pd.PrinterSettings.Copies = 2;pd.PrinterSettings.Collate = true;pd.ShowDialog();
A tabela seguinte mostra se a definição de agrupamento está definida como verdadeira depois de a caixa de diálogo Imprimir ser apresentada e, em seguida, estar fechada.Antes de instalar esta correção
|
Impressora |
A propriedade PrintDialog.UseEXDialog está definida como false |
A propriedade PrintDialog.UseEXDialog está definida como true |
|
Escritor XPS |
Comportamento variável, consoante o SO |
A definição Agrupamento está definida como falso |
|
Impressora física |
A definição Agrupamento está definida como falso |
A definição Agrupamento está definida como falso |
Depois de instalar esta correção
|
Impressora |
A propriedade PrintDialog.UseEXDialog está definida como false |
A propriedade PrintDialog.UseEXDialog está definida como true |
|
Escritor XPS |
Comportamento variável, consoante o SO |
A definição Agrupamento está definida como verdadeira |
|
Impressora física |
A definição Agrupamento está definida como verdadeira |
A definição Agrupamento está definida como verdadeira |
Referências
Para obter mais informações sobre a propriedade PrintDialog.PrinterSettings, aceda ao seguinte site da MSDN:
Informações gerais sobre a propriedade PrintDialog.PrinterSettingsPara obter mais informações sobre a caixa de diálogo Imprimir , aceda ao seguinte site da MSDN: