// Cria o arquivo onde será guardado um resumo do csv original public void Create(DateTime?fileDate) { if (fileDate == null) { return; } String logName = "PrintLog-" + DateFormat.Adjust(fileDate) + ".csv"; String applicationFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); String logFolder = PathFormat.Adjust(applicationFolder) + @"PrintLogs\"; Directory.CreateDirectory(logFolder); fileLogger = new FileLogger(logFolder + logName); fileLogger.FileHeader = new String[2]; fileLogger.FileHeader[0] = "Digest File - Source: Papercut Print Logger"; fileLogger.FileHeader[1] = "Time,User,Printer,Document Name,Pages,Copies,Duplex,Color,DataType,Size"; CSVReader csvReader = new CSVReader(logFolder + logName, null); DataTable alreadyInsertedTable = csvReader.Read(); alreadyInserted = new List <Object>(); foreach (DataRow row in alreadyInsertedTable.Rows) { PrintedDocument printedDocument = new PrintedDocument(); printedDocument.jobTime = DateTime.Parse(row["Time"].ToString()); printedDocument.name = row["Document Name"].ToString(); alreadyInserted.Add(printedDocument); } }
private void WriteToLog(String text) { String logName = "PrintLog-" + DateFormat.Adjust(DateTime.Now, false) + "_.csv"; fileLogger.Relocate(logFolder + logName); fileLogger.LogRawData(text); }
/// <summary> /// Obtem informações do job em uma String /// </summary> public static String GetJobInfo(SpooledJob spooledJob) { if (spooledJob.ShadowFile == null) // Verifica se o arquivo de Shadow está disponível { return("?,?,?,?,?,?,?,?,?,?"); // Caso não esteja retorna uma indicação de que sua leitura falhou } Dictionary <String, Object> jobSummary = GetJobSummary(spooledJob); String jobTime = DateFormat.Adjust((DateTime)jobSummary["jobTime"], true); String dataType = (String)jobSummary["dataType"]; String jobSize = (String)jobSummary["spoolFileSize"]; String jobInfo = jobTime + "," + jobSummary["userName"] + "," + jobSummary["printerName"] + "," + jobSummary["documentName"] + "," + jobSummary["pageCount"] + "," + jobSummary["copyCount"] + "," + jobSummary["duplex"] + "," + "false" + "," + dataType + "," + jobSize; return(jobInfo); }
// Adiciona algumas informações da impressão ao resumo private void AddToDigest(PrintedDocument printedDocument, String language, String jobSize) { if (!createDigest) { return; } if (fileLogger == null) { return; } String jobTime = DateFormat.Adjust(printedDocument.jobTime, true); String dataType = language.ToUpper().Contains("EMF") ? "EMF" : "RAW"; String newRow = jobTime + "," + printedDocument.userName + "," + printedDocument.printerName + "," + printedDocument.name + "," + printedDocument.pageCount + "," + printedDocument.copyCount + "," + printedDocument.duplex + "," + "false" + "," + "EMF" + "," + jobSize; fileLogger.LogRawData(newRow); }
// Adiciona algumas informações da impressão ao resumo public void AddToDigest(PrintedDocument printedDocument, String language, String jobSize) { if (fileLogger == null) { return; } currentJob = printedDocument; if (alreadyInserted.Find(CheckPrintedDocument) == null) // Verifica se o registro já existe { // Caso não exista insere no resumo String jobTime = DateFormat.Adjust(printedDocument.jobTime, true); String dataType = language.ToUpper().Contains("EMF") ? "EMF" : "RAW"; String newRow = jobTime + "," + printedDocument.userName + "," + printedDocument.printerName + "," + printedDocument.name + "," + printedDocument.pageCount + "," + printedDocument.copyCount + "," + printedDocument.duplex + "," + "false" + "," + dataType + "," + jobSize; fileLogger.LogRawData(newRow); } }
private String GetJobInfo(SpooledJob spooledJob, ManagedPrintJob managedJob) { Dictionary <String, Object> jobSummary = PrintJobContext.GetJobSummary(spooledJob); if (jobSummary == null) { return(String.Empty); } String jobInfo = "Print Job (" + managedJob.Name + " ) " + "Status: " + (JobStatusEnum)managedJob.StatusMask + Environment.NewLine + "Hora: " + DateFormat.Adjust((DateTime)jobSummary["jobTime"], true) + Environment.NewLine + "UserName: "******"userName"] + Environment.NewLine + "PrinterName: " + jobSummary["printerName"] + Environment.NewLine + "DocumentName: " + '\"' + jobSummary["documentName"] + '\"' + Environment.NewLine + "Page Count: " + jobSummary["pageCount"] + Environment.NewLine + "Copy Count: " + jobSummary["copyCount"] + Environment.NewLine + "Duplex: " + jobSummary["duplex"] + Environment.NewLine + "Color: " + jobSummary["color"] + Environment.NewLine + "File size: " + jobSummary["spoolFileSize"] + Environment.NewLine; return(jobInfo); }
// Cria o arquivo onde será guardado um resumo do csv original private void CreateDigest(DateTime?fileDate) { if (!createDigest) { return; } if (fileDate == null) { return; } String logName = "PrintLog-" + DateFormat.Adjust(fileDate) + ".csv"; String applicationFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); String logFolder = PathFormat.Adjust(applicationFolder) + @"PrintLogs\"; Directory.CreateDirectory(logFolder); fileLogger = new FileLogger(logFolder + logName); fileLogger.FileHeader = new String[2]; fileLogger.FileHeader[0] = "Print Inspector - Version 1.0.1"; fileLogger.FileHeader[1] = "Time,User,Printer,Document Name,Pages,Copies,Duplex,Color,DataType,Size"; }