1586480 - Exception of type 'System.OutOfMemoryException' was thrown when calling CopyTo method

SAP Knowledge Base Articles - public

1586480 - Exception of type 'System.OutOfMemoryException' was thrown when calling CopyTo method


The following error message occurs when execute CopyTo method in .NET application

"Attempted to read or write protected memory. This is often an indication that other memory is corrupted"


  • Crystal Reports 2008 V1
  • Visual Studio 2005
  • Visual Studio 2008

Reproducing the Issue

C# .NET application contains CopyTo method and error occurs when printing to printer.


private void button1_Click(object sender, EventArgs e)

System.Drawing.Printing.PrinterSettings printerSettings = new System.Drawing.Printing.PrinterSettings();
System.Drawing.Printing.PaperSize selectedPaperSize = new System.Drawing.Printing.PaperSize();

private const string SELECTED_PRINTER = "Epson LQ-300 ESC/P 2";

CRReport = new ReportDocument();

printerSettings.PrinterName = SELECTED_PRINTER;

foreach (System.Drawing.Printing.PaperSize paperSize in printerSettings.PaperSizes)
  if (paperSize.PaperName == "Fanfold 210 x 12 in")   //An Enum paper size is machine dependent (i.e. 280)

     selectedPaperSize = paperSize;

System.Drawing.Printing.PageSettings pageSettings = new System.Drawing.Printing.PageSettings();
CrystalDecisions.Shared.PrintLayoutSettings PrintLayout = new CrystalDecisions.Shared.PrintLayoutSettings();

PrintOptions printOptions = CRReport.PrintOptions;

printOptions.PrinterName = SELECTED_PRINTER;

printOptions.PaperSize = selectedPaperSize.RawKind;
printOptions.DissociatePageSizeAndPrinterPaperSize = true;

PrintLayout.Scaling = PrintLayoutSettings.PrintScaling.Scale;

CRReport.PrintOptions.CopyTo(printerSettings, pageSettings);          



This issue has been identified and is tracked under ID ADAPT01546534.


The issue is scheduled to be fixed in a future Service Pack.


Add parameter 'printerSettings' in System.Drawing.Printing.PageSettings() to describe a specified printer to use.

System.Drawing.Printing.PageSettings pageSettings = new System.Drawing.Printing.PageSettings(printerSettings);


custom paper size, user defined paper size, enum, server properties, Printing Preferences, paper source, Default Printer, Print Report, Layout , KBA , BI-DEV-NET-SDK , .NET SDK / COM SDK , Problem


Crystal Reports 2008 V1