Esempio n. 1
0
        private void MenuItem1Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();

            fileDialog.InitialDirectory = DeviceHandler.GetSpoolDirectory();
            fileDialog.Filter           = "Spool Shadow File (*.shd)|*.shd|Todos os arquivos (*.*)|*.*";
            // Exibe a caixa de seleção de arquivo e verifica o resultado da interação do usuário
            DialogResult openFileResult = fileDialog.ShowDialog();

            if (openFileResult == DialogResult.Cancel)
            {
                return;
            }

            String shadowFilename = fileDialog.FileName;

            if (File.Exists(shadowFilename))
            {
                SpooledJob      spooledJob = new SpooledJob(shadowFilename, this);
                String          jobName    = spooledJob.ShadowFile.PrinterName + ", " + spooledJob.ShadowFile.JobId.ToString();
                ManagedPrintJob managedJob = new ManagedPrintJob(jobName);
                String          jobInfo    = GetJobInfo(spooledJob, managedJob);
                jobInfoBox.Invoke(new PerformTextOutputDelegate(LogJobInfo), jobInfo);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Constroi uma instancia da classe SpoolMonitor. Inicia o monitoramento ( intercepta
        /// arquivos Shadow (*.SHD) criados/modificados/excluidos no diretório de spool )
        /// </summary>
        public SpoolMonitor(IListener listener)
        {
            this.listener = listener;

            FileSystemWatcher fileWatcher = new FileSystemWatcher(DeviceHandler.GetSpoolDirectory(), "*.shd");

            fileWatcher.IncludeSubdirectories = false;
            fileWatcher.NotifyFilter          = NotifyFilters.LastWrite | NotifyFilters.FileName;
            fileWatcher.Created            += new FileSystemEventHandler(SpoolFileCreated);
            fileWatcher.Changed            += new FileSystemEventHandler(SpoolFileChanged);
            fileWatcher.Deleted            += new FileSystemEventHandler(SpoolFileDeleted);
            fileWatcher.EnableRaisingEvents = true;
        }
Esempio n. 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = DeviceHandler.GetSpoolDirectory();
            openFileDialog.Filter           = "Spool Shadow File (*.shd)|*.shd|Todos os arquivos (*.*)|*.*";
            DialogResult dialogResult = openFileDialog.ShowDialog();

            if (dialogResult == DialogResult.Cancel)
            {
                return;
            }

            SpooledJob spooledJob = new SpooledJob(openFileDialog.FileName, this);
            Dictionary <String, Object> jobSummary = PrintJobContext.GetJobSummary(spooledJob);

            infoBox.Clear();
            infoBox.Text += "Documento: " + jobSummary["documentName"] + Environment.NewLine;
            infoBox.Text += "Hora: " + jobSummary["submitted"] + Environment.NewLine;
            infoBox.Text += "UserName: "******"userName"] + Environment.NewLine;
            infoBox.Text += "PrinterName: " + jobSummary["printerName"] + Environment.NewLine;
            infoBox.Text += "Número de cópias: " + jobSummary["copyCount"] + Environment.NewLine;
            infoBox.Text += "Número de páginas: " + jobSummary["pageCount"] + Environment.NewLine;


            /**************************************************************************************/
            /***********************            Extra job info              ***********************/
            /**************************************************************************************/
            infoBox.Text += Environment.NewLine;
            infoBox.Text += "Driver Name: " + spooledJob.ShadowFile.DriverName + Environment.NewLine;
            infoBox.Text += "Notify Name: " + spooledJob.ShadowFile.NotifyName + Environment.NewLine;
            infoBox.Text += "Print Processor: " + spooledJob.ShadowFile.PrintProcessor + Environment.NewLine;
            infoBox.Text += "Port: " + spooledJob.ShadowFile.Port + Environment.NewLine;
            infoBox.Text += "JobId: " + spooledJob.ShadowFile.JobId.ToString() + Environment.NewLine;
            infoBox.Text += "Data type: " + jobSummary["dataType"] + Environment.NewLine;
            infoBox.Text += "Spool fileSize: " + jobSummary["spoolFileSize"] + "(" + GetPrivateFieldValue(spooledJob.ShadowFile, "spoolFileSize") + " bytes)" + Environment.NewLine;

            /**************************************************************************************/
            /***********************             DevMode info               ***********************/
            /**************************************************************************************/
            infoBox.Text += Environment.NewLine;
            infoBox.Text += "Device Name: " + spooledJob.ShadowFile.DevMode.DeviceName + Environment.NewLine;
            infoBox.Text += "Form Name: " + spooledJob.ShadowFile.DevMode.FormName + Environment.NewLine;

            infoBox.Text += Environment.NewLine;
            infoBox.Text += "Número de páginas = " + spooledJob.SpoolFile.Pages.Count.ToString() + Environment.NewLine;

            // Encerra o método caso não seja um EMF
            if (!spooledJob.ShadowFile.DataType.ToUpper().Contains("EMF"))
            {
                return;
            }

            imgPageView.Image = ((EMFPage)spooledJob.SpoolFile.Pages[0]).Thumbnail;

            int index = 0;

            foreach (EMFPage page in spooledJob.SpoolFile.Pages)
            {
                index++;
                EMFReader.Save(page.PageImage, @"C:\page" + index.ToString() + ".emf");
            }
        }