Ik ben aangepaste pagina's in C #. Bij het daadwerkelijk afdrukken van het document werkt het correct, net zoals het wordt weergegeven in een dialoogvenster (via dezelfde code). Wanneer de code wordt gebruikt voor PrintPreview
toont het dialoogvenster de pagina in liggende modus, maar de Afbeeldingen
die is gemaakt, heeft dimensies van een portretdocument en als zodanig wordt het voorbeeld niet correct weergegeven . Hier is een kortere versie van de code die ik gebruik
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();
}
Vervolgens wordt een Print_Me
-functie aangeroepen wanneer het dialoogvenster PrintPreview
wordt afgedrukt:
private void Print_Me(object sender, PrintPageEventArgs e)
{
using (Graphics g = e.Graphics)
{
DrawToDC(g);
e.HasMorePages = hasMorePages;
}
}
Binnen DrawToDC
gebruik ik het volgende om de afmetingen te krijgen die, zoals ik al zei, prima werken voor echt afdrukken en weergeven in een dialoogvenster:
dc.VisibleClipBounds.Width
dc.VisibleClipBounds.Height