aishihara 0 Denunciar post Postado Abril 29, 2011 Boa tarde, Tenho a seguinte dúvida: Eu tenho um winform que me retorna registros e preciso mandar eles para impressão. Cada registro vai gerar uma carta que tem frente e verso. Dentro do void print fiz a seguinte chamada: foreach (datadgridviewrow dr in ds) { ImpressaoVerso() //função para imprimir o verso contPaginas++ if (contPaginas > totalPaginas) e.HasMorePages = true; else e.HasMorePages = true; ImpressaoFrente()//função para imprimir a frente contPaginas++ if (contPaginas > totalPaginas) e.HasMorePages = true; else e.HasMorePages = true; } Só que as duas partes são impressas no mesmo lado da página. Sem contar que ele registra apenas o ultimo registro indicado. Alguem tem alguma ideia do que estou fazendo de errado? Ou que poderia estar fazendo? Agradeço a atenção, André Ishihara Compartilhar este post Link para o post Compartilhar em outros sites
Murilo Eduardo B. Santos 0 Denunciar post Postado Abril 29, 2011 certo, eu tenho um código de impressão em printdocument em VB, ele não imprimi frente em verso, mas muda de página, seria interessante explicar melhor o que está imprimindo e a diferença do que está na frente e no verso. E reparei que as suas condições fazem a mesma coisa, se o If for True então e.HasMorePages recebe True, e se o If cair no Else e.HasMorePages recebe True também. Poste ai mais detalhes que acho que posso ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
aishihara 0 Denunciar post Postado Abril 29, 2011 certo, eu tenho um código de impressão em printdocument em VB, ele não imprimi frente em verso, mas muda de página, seria interessante explicar melhor o que está imprimindo e a diferença do que está na frente e no verso. E reparei que as suas condições fazem a mesma coisa, se o If for True então e.HasMorePages recebe True, e se o If cair no Else e.HasMorePages recebe True também. Poste ai mais detalhes que acho que posso ajudar. Seria uma carta que possui frente e verso. O que tem nas funções ImprimirFrente() e ImprimirVerso() são apenas os comandos de impressão. Gostaria de algo parecido com este comando: foreach (DataGridViewRow drDados in datagridview1.Rows) { drRegistro = drDados; if (drDados.Cells["Selecao"].Value == null) drDados.Cells["Selecao"].Value = false; if (drDados.Cells["Selecao"].Value.ToString().ToLower() == "true") { pd.PrintPage += new PrintPageEventHandler(ImprimirVerso); pd.PrintPage += new PrintPageEventHandler(ImprimirFrente); pd.Print(); cntContadorPaginas++; } } Este código imprime o lado da frente dos registros selecionados. Mas precisaria que imprimisse o verso também e gerar apenas um printdocument porque da forma atual ele gera um printdocument por registro selecionado no DataGridView. Tem alguma ideia? Se tiver mais dúvidas entrar em contato, por favor. Compartilhar este post Link para o post Compartilhar em outros sites
aishihara 0 Denunciar post Postado Abril 29, 2011 Boa tarde pessoas, Depois de muito pesquisar consgui um código que faz quase o que eu preciso: Class.MultiPrintDocument mutlPrint; foreach (DataGridViewRow drDados in dgvRegistros.Rows) { drRegistro = drDados; if (drDados.Cells["Selecao"].Value == null) drDados.Cells["Selecao"].Value = false; if (drDados.Cells["Selecao"].Value.ToString().ToLower() == "true") { pdVerso.PrintPage += new PrintPageEventHandler(ImprimirVerso); pdRegistro[cntContadorPaginas] = pdVerso; cntContadorPaginas++; pdFrente.PrintPage += new PrintPageEventHandler(ImprimirFrente); pdRegistro[cntContadorPaginas] = pdFrente; cntContadorPaginas++; } } mutlPrint = new Class.MultiPrintDocument(pdRegistro); mutlPrint.Print(); A Classe MultiPrintDocument foi encontrada neste endereço: http://www.csharp-examples.net/combine-mul...printdocuments/. O único problema desse código é que ele não faz as chamadas das funções ImprimirFrente e ImprimirVerso, que é aonde a parte da impressão é feita(O que é impresso, etc). Tem um outro handler alem do PrintPageEventHandler que consegue chamar as funções? Porque este é o meu único problema agora. Agradeço a atenção Compartilhar este post Link para o post Compartilhar em outros sites