IMPRIMIR CONTEUDO DE LISTBOX COM MAIS DE UMA PAGIN

FELIPEJR 22/07/2010 14:26:32
#348153
Estou tentando imprimir o conteudo de um listbox, que contem muitas linhas. Estou usando o PrintPreviewDialog1.ShowDialog() e quando carrego o conteudo do listbox, gero uma string com todos os dados, porem só consigo visualizar e imprimir o que cabe na 1ª folha e o restante é perdido.
Alguém sabe como criar mais paginas no PrintPreviewDialog1.ShowDialog()?
O trecho do código utilizado para gerar a página:

For Each ProcuraItems In ListBoxMDI.Items
e.Graphics.DrawString(ProcuraItems, Fonte, Brushes.Black, CoordenadaX, CoordenadaY)
CoordenadaY += CoordenadaH
Next


Grato.
JONATHANSTECKER 22/07/2010 22:54:40
#348226
Resposta escolhida
Você tem que prever quantos itens cabem numa folha de impressão.
Após isso coloque a variável e.HasMorePages = True quando chegar nessa previsão,
com isso a sua rotina irá recomeçar, imprimindo na folha 2.

Veja esse exemplo: VB.NET 2008 - Imprimindo com PrintDocument
FELIPEJR 26/07/2010 11:33:02
#348463
Obrigado pela ajuda.
O comando funciona, mas entrei em outro problea que é o numero de paginas. O que acontece agora é que carrego todo o conteudo do arquivo em uma string e em seguida vou dividindo em paginas de impressão.
Só que quando o arquivo é muito grande, só é carregado o que a string suporta e o resto é perdido. Estou tentando dividir em mais strings ou imprimir o arquivo, conforme exemplo sugerido.

Grato.
FELIPEJR 27/07/2010 14:47:44
#348604
Tentei solucionar com o exemplo PrintDocument e, quando mando imprimir várias páginas, ao contrário da primeira tentativa, só imprime as ultimas páginas. Por Exemplo, mando 67 páginas e só imprime as ultimas 13.
Será que tá faltando alguma ação ou várias páginas gera erro mesmo? Ao verficar a string, nota-se que ela carregou completamente. O trecho de código é exatamente o utilizado no exemplo sugerido, pois funcionou melhor que o meu.
Tópico encerrado , respostas não são mais permitidas