public frmPrintPreview(PrintJob prj, frmStudioMain mainForm) { this.PrintJob = prj; this.GLCONTROL = frmStudioMain.SceneControl; this._plWorkspace = mainForm.plWorkSpace; GenerateThumbnails(null, null); UpdatePrintTimeStamp(); }
private void btnSaveAdvancedCalibration_Click(object sender, EventArgs e) { var printJob = new DAL.Print.PrintJob(); printJob.Name = "AdvancedCalibration"; printJob.SelectedPrinter = new AtumV15Printer() { CorrectionFactorX = this._dataSource.CorrectionFactorX, CorrectionFactorY = this._dataSource.CorrectionFactorY, Default = this._dataSource.Default, Description = this._dataSource.Description, DisplayName = this._dataSource.DisplayName, DisplayText = this._dataSource.DisplayText, PrinterXYResolution = this._dataSource.PrinterXYResolution, Projectors = this._dataSource.Projectors, Properties = this._dataSource.Properties, Selected = this._dataSource.Selected, TrapeziumCorrectionInputA = this._dataSource.TrapeziumCorrectionInputA, TrapeziumCorrectionInputB = this._dataSource.TrapeziumCorrectionInputB, TrapeziumCorrectionInputC = this._dataSource.TrapeziumCorrectionInputC, TrapeziumCorrectionInputD = this._dataSource.TrapeziumCorrectionInputD, TrapeziumCorrectionInputE = this._dataSource.TrapeziumCorrectionInputE, TrapeziumCorrectionInputF = this._dataSource.TrapeziumCorrectionInputF, TrapeziumCorrectionSideA = this._dataSource.TrapeziumCorrectionSideA, TrapeziumCorrectionSideB = this._dataSource.TrapeziumCorrectionSideB, TrapeziumCorrectionSideC = this._dataSource.TrapeziumCorrectionSideC, TrapeziumCorrectionSideD = this._dataSource.TrapeziumCorrectionSideD, TrapeziumCorrectionSideE = this._dataSource.TrapeziumCorrectionSideE, TrapeziumCorrectionSideF = this._dataSource.TrapeziumCorrectionSideF, }; printJob.Material = this.cbAdvancedCalibrationMaterialProduct.SelectedItem as Material; printJob.SlicesPath = Path.Combine((this.cbAdvancedCalibrationDriveletters.SelectedItem as USBDrive).DriveLetter, "AdvancedCalibration"); printJob.Option_TurnProjectorOn = true; printJob.Option_TurnProjectorOff = true; var pathPrinterJobXml = Path.Combine(printJob.SlicesPath, "printjob.apj"); if (!Directory.Exists(printJob.SlicesPath)) { Directory.CreateDirectory(printJob.SlicesPath); } //serialize printjob.xml var serializer = new XmlSerializer(typeof(DAL.Print.PrintJob)); using (var streamWriter = new StreamWriter(pathPrinterJobXml, false)) { serializer.Serialize(streamWriter, printJob); } //checksum file var checksumFilePath = Path.Combine(printJob.SlicesPath, "checksum.crc"); if (File.Exists(checksumFilePath)) { File.Delete(checksumFilePath); } using (FileStream checksumFile = new FileStream(checksumFilePath, FileMode.Create, FileAccess.ReadWrite, FileShare.None)) { } //slices FileStream tempFileStream = new FileStream(Path.Combine(printJob.SlicesPath, "slices.zip"), FileMode.Create, FileAccess.ReadWrite, FileShare.None); using (var zipStream = new ZipOutputStream(tempFileStream)) { for (var sliceIndex = 0; sliceIndex < 99; sliceIndex++) { using (var memStream = new MemoryStream()) { var sliceBitmap = LensWarpCorrectionModel.CreateMeasurementGrid(this._dataSource); if (sliceIndex < 4) { sliceBitmap = new Bitmap(this._dataSource.ProjectorResolutionX, this._dataSource.ProjectorResolutionY); using (var g = Graphics.FromImage(sliceBitmap)) { g.Clear(Color.White); } } sliceBitmap.Save(memStream, ImageFormat.Png); sliceBitmap.Dispose(); memStream.Position = 0; lock (zipStream) { var entry = new ZipEntry(sliceIndex + ".png"); zipStream.PutNextEntry(entry); try { byte[] transferBuffer = new byte[1024]; int bytesRead; do { bytesRead = memStream.Read(transferBuffer, 0, transferBuffer.Length); zipStream.Write(transferBuffer, 0, bytesRead); }while (bytesRead > 0); } finally { memStream.Close(); } zipStream.CloseEntry(); } } } zipStream.Close(); } MessageBox.Show("Printjob saved on USB Flash device as 'AdvancedCalibration'." + Environment.NewLine + Environment.NewLine + "Please start the printjob on printer.", "Printjob saved", MessageBoxButtons.OK, MessageBoxIcon.Information); }