hallo zusammen,
ich habe ein kleines problem mit dem PrintPreviewDialog.
der dialog wirft beim anzeigen ein PrintPage event das ich auch behandle... wie eben beim "normalem" drucken auch. leider wird im PrintPreviewDialog nichts angezeigt... heißt die seite sind leer. der ausdruck auf drucker funktioniert ohne probleme!
hier ein paar code ausschnitte:
die methode zum aufruf des dialogs:
BeginPrint:
PrintPage:
und die EndPrint:
wäre super wenn mir jemand weiter helfen könnte!
gruß,
truespin
ich habe ein kleines problem mit dem PrintPreviewDialog.
der dialog wirft beim anzeigen ein PrintPage event das ich auch behandle... wie eben beim "normalem" drucken auch. leider wird im PrintPreviewDialog nichts angezeigt... heißt die seite sind leer. der ausdruck auf drucker funktioniert ohne probleme!
hier ein paar code ausschnitte:
die methode zum aufruf des dialogs:
Code:
public void ShowPrintPreviewDialog()
{
// Creat new PrintPreviewDialog
PrintPreviewDialog oPrintPreviewDialog = new PrintPreviewDialog();
// Get PrintDoc
oPrintPreviewDialog.Document = this.m_oAreaProperties.PrintDoc;
// Set anti alais
oPrintPreviewDialog.UseAntiAlias = true;
// Show dialog to user
oPrintPreviewDialog.ShowDialog();
}
BeginPrint:
Code:
void PrintDoc_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
// Creat new PrintHelper
this.m_oPrintHelper = new PrintHelper(new SizeF(this.m_oAreaProperties.AreaWidth, this.m_oAreaProperties.AreaHeight),
this.m_oreaProperties.PagePrinterSettings);
// Current page
this.m_oPrintHelper.CurrentPage = 1;
// ToDo: Scaling
}
PrintPage:
Code:
void PrintDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
// Check if there are more than one page to print
if (this.m_oPrintHelper.PageCount > 0
&& this.m_oPrintHelper.CurrentPage < this.m_oPrintHelper.PageCount)
{
// There are more pages to print
e.HasMorePages = true;
}
else
{
// There are only one page to print
e.HasMorePages = false;
}
// Check if there are someone to catch
if (this.OnPrintPage != null)
{
// Throw event to print
this.OnPrintPage(this, new PrintingEventArgs(this.m_oPrintHelper.PageOffset(this.m_oPrintHelper.CurrentPage), new SizeF(1, 1), e));
}
// Next page
this.m_oPrintHelper.CurrentPage++;
}
und die EndPrint:
Code:
void PrintDoc_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
this.m_oPrintHelper = null;
}
gruß,
truespin