// 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);
        }
Exemple #4
0
        // 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);
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        // 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";
        }