C#でカスタムページを印刷しています。実際に文書を印刷するときは、同じコードを使用してダイアログに表示するのと同様に、正しく動作します。 にコードを使用すると、ダイアログにページが横向きモードで表示されますが、作成されたGraphics
にはポートレイトドキュメントのサイズがあり、プレビューが正しく表示されません。ここで私はPrintPreviewから作成されたグラフィックはLandscapeではなくPortraitですか?
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