/// <summary> /// Obtem informações do job resumidas em um Dictionary /// </summary> public static Dictionary <String, Object> GetJobSummary(SpooledJob spooledJob) { if (spooledJob.ShadowFile == null) // Verifica se o arquivo de Shadow está disponível { return(null); // Caso não esteja retorna "null" } JobShadowFile shdw = spooledJob.ShadowFile; DateTime jobTime = spooledJob.FileDate; int pageCount = shdw.PageCount; int copyCount = shdw.DevMode.Copies; Boolean duplex = shdw.DevMode.Duplex; Boolean color = shdw.DevMode.Color; int spoolFileSize = shdw.SpoolFileSize; EMFSpoolFile spoolFile = null; Boolean isEMF = false; if (shdw.DataType.ToUpper().Contains("EMF")) { spoolFile = (EMFSpoolFile)spooledJob.SpoolFile; if (!spoolFile.MalformedFile) { isEMF = true; // Verifica se o formato está OK } } if (isEMF) { // Substitui as informações do SHD por outras mais precisas encontradas arquivo de Spool if (spoolFile.Pages != null) { pageCount = spoolFile.Pages.Count; } if (spoolFile.DevModeRecord != null) { copyCount = spoolFile.DevModeRecord.Copies; duplex = spoolFile.DevModeRecord.Duplex; color = spoolFile.DevModeRecord.Color; } } // Busca o tamanho exato do arquivo se ele já foi aberto para leitura if ((spoolFile != null) && (spoolFileSize != spoolFile.FileSize)) { spoolFileSize = spoolFile.FileSize; } Dictionary <String, Object> jobSummary = new Dictionary <String, Object>(); jobSummary.Add("jobTime", jobTime); jobSummary.Add("submitted", shdw.Submitted.ToString()); jobSummary.Add("userName", shdw.UserName); jobSummary.Add("printerName", shdw.PrinterName); jobSummary.Add("documentName", shdw.DocumentName); jobSummary.Add("pageCount", pageCount); jobSummary.Add("copyCount", copyCount); jobSummary.Add("duplex", duplex); jobSummary.Add("color", color); jobSummary.Add("dataType", isEMF ? "EMF" : "RAW"); jobSummary.Add("spoolFileSize", FormatFileSize(spoolFileSize)); return(jobSummary); }
public FilePropertiesForm(JobShadowFile jobShadowFile) { this.jobShadowFile = jobShadowFile; InitializeComponent(); }