印刷プレビュー後に「境界線」をリセットするだけです。正しく印刷したいページをプレビューしましたが、印刷すると、「境界線」がリセットされなかったため、空白のページが表示されます。「border=0」はどこに置くべきですか?(「border」はデータグリッドビューの行です)
private void button5_Click(object sender, EventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
PrintPreviewDialog ppd = new PrintPreviewDialog();
ppd.Document = pd;
ppd.ShowDialog();
}
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
prntt(sender, e);
}
public void prntt(object sender, PrintPageEventArgs e)
{
for (; border < ViewA.RowCount; border++)
{
if (ustsin + yuk > e.MarginBounds.Bottom - 400f)
{
e.HasMorePages = true;
return;
}
texts = ViewA.Rows[border].Cells["Persons"].Value.ToString();
...
graphics.DrawString(texts, font, Brushes.Black, new RectangleF(e.MarginBounds.Left, ustsin, 115f, 90f));
...
float hoho = (float)e.Graphics.MeasureString(texts, font, 115, StringFormat.GenericTypographic).Height;
...
var mesele = new float[] { hoho, koko, moko };
float kapa = mesele.OrderByDescending(s => s).First();
ustsin += kapa + yuk;
}
e.HasMorePages = false;
}
印刷プレビューで印刷ボタンを押したときに閉じることができる場合、その終了イベントでリセットできますか?
編集:私はこれをやった、それはうまくいくようだが、それをxpsに送ると、画面に2ページが表示される. このhttp://i.imgur.com/a9KnkA0.pngのように。このショーを 1 ページにするにはどうすればよいですか?
private void printDocument1_EndPrint(object sender, PrintEventArgs e)
{
border = 0;
}