Je rencontre une liste d'impression de problèmeVoir les éléments. le problème que je pense est à private void PrintPageDetail(PrintPageEventArgs e)
C'est donc ce qui se passe:Problème lors de l'impression de plusieurs pages ListView en C#. Je ne peux pas le comprendre
elle imprime ce qui convient sur une page à plusieurs reprises. (Il y a plus de données que ce qui est imprimé) bien que le pied de page et l'en-tête s'impriment correctement avec les bons numéros de page. et j'ai du mal à l'obtenir pour effacer la mémoire à chaque fois pour mapper les nouvelles données sur la page suivante. L'aperçu avant impression et l'impression ne s'arrêteront pas, sauf si j'appuie sur annuler (probablement en raison de la boucle indéfinie "retour;").
Merci pour toute aide
private void PrintDocument(object sender, PrintPageEventArgs e)
{
// Use inches for all measurements.
e.Graphics.PageUnit = GraphicsUnit.Inch;
PrintPageHeader(e);
PrintPageDetail(e);
PrintPageFooter(e);
}
// Print the page header/footer/details.
private void PrintPageHeader(PrintPageEventArgs e)
{
e.Graphics.DrawString("Factors List Report",
_headerFont, _reportBrush, 3.0F, 0.75F);
e.Graphics.DrawLine(_reportPen, 0.5F, 1.15F, 7.5F, 1.15F);
}
private void PrintPageFooter(PrintPageEventArgs e)
{
e.Graphics.DrawLine(_reportPen, 1.0F, 10.0F, 7.5F, 10.0F);
e.Graphics.DrawString("Printed on " + DateTime.Now.ToLongDateString(),
_footerFont, _reportBrush, 1F, 10.2F);
_pageNumber++;
e.Graphics.DrawString(string.Format("Page: {0}", _pageNumber),
_footerFont, _reportBrush, 7F, 10.2F);
}
private void PrintPageDetail(PrintPageEventArgs e)
{
// Create variables to hold position on page.
float leftMargin = e.MarginBounds.Left;
float topMargin = e.MarginBounds.Top;
float i = 1.25F;
e.HasMorePages = false;
foreach (string printerLine in _factorsView)
{
e.Graphics.DrawString(printerLine, _detailFont, _reportBrush, 1.0F, i);
if (i >= 9.75)
{
i += 1.25F;
e.HasMorePages = true;
return;
}
else
i += .25F;
}
}
}