Example #1
0
 public frmPrintPreview(PrintJob prj, frmStudioMain mainForm)
 {
     this.PrintJob     = prj;
     this.GLCONTROL    = frmStudioMain.SceneControl;
     this._plWorkspace = mainForm.plWorkSpace;
     GenerateThumbnails(null, null);
     UpdatePrintTimeStamp();
 }
Example #2
0
        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);
        }