C# でカスタム ページを印刷しています。ドキュメントを実際に印刷すると、(同じコードを介して) ダイアログに表示する場合と同様に、正しく動作します。ダイアログにコードが使用されている場合PrintPreview
、ページは横向きモードで表示されますが、Graphics
作成されたドキュメントのサイズは縦長のドキュメントであり、プレビューは正しく表示されません。ここに私が使用しているコードの縮小版があります
using (PrintDocument pd = new PrintDocument())
{
pd.PrinterSettings.PrintToFile = false;
pd.DefaultPageSettings.Landscape = true;
pd.PrinterSettings.DefaultPageSettings.Landscape = true;
pd.DefaultPageSettings.PrinterSettings.DefaultPageSettings.Landscape = true;
PrintDialog pDialog = new PrintDialog();
pDialog.Document = pd;
pDialog.PrinterSettings.DefaultPageSettings.Landscape = true;
pDialog.PrinterSettings.PrintToFile = false;
pDialog.Document.DefaultPageSettings.Landscape = true;
PrintPreviewDialog printPreview = new PrintPreviewDialog();
printPreview.Document = pd;
printPreview.ShowDialog();
}
次に、ダイアログが印刷を要求Print_Me
したときに関数が呼び出されます。PrintPreview
private void Print_Me(object sender, PrintPageEventArgs e)
{
using (Graphics g = e.Graphics)
{
DrawToDC(g);
e.HasMorePages = hasMorePages;
}
}
私DrawToDC
が言及したように、実際の印刷とダイアログへの表示に問題なく機能する寸法を取得するために、以下を使用します。
dc.VisibleClipBounds.Width
dc.VisibleClipBounds.Height