だから私はPrintPage
イベントのループで文字列を描画しようとしていますPrintDocument
:
for (int c = 0; c < currentwords; c++)
{
// index is a global int that starts at 0 and f9 is a font with size 9
ev.Graphics.DrawString(allitems[index], f9, Brushes.Black, new Point(100, 100));
// I used new Point(100, 100) for debugging purposes but normally I would
// do some calculating to see where it is to be printed
index++;
}
それはすべて正常なようで、デバッガーは、ブレークポイントを使用すると実行されることを示しますが、ドキュメントを表示すると表示されPrintPreviewDialog
ません。allitems[index]
には値が含まれていますが、表示されない理由がわかりません。ループの外側に他の文字列と四角形を印刷していますが、それらはダイアログに表示されます。誰かが私を助けることができるなら、ここに投稿してください、ありがとう!
編集:
グラフィックモード/レンダリングのヒントは次のとおりです。
ev.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
ev.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
ev.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
ev.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
ev.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
編集2:
さて、私は使用しました:
ev.Graphics.DrawString(allitems[0], f9, Brushes.Black, new Point(100, 100));
for (int c = 0; c < currentwords; c++)
{
// index is a global int that starts at 0 and f9 is a font with size 9
ev.Graphics.DrawString(allitems[index], f9, Brushes.Black, new Point(100, 100));
// I used new Point(100, 100) for debugging purposes but normally I would
// do some calculating to see where it is to be printed
index++;
}
ループの外側だけDrawString
が表示されていましたが、ループは機能し、コードは実行されています。