138 lines
3.9 KiB
C#
138 lines
3.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
using iTextSharp.text.pdf;
|
|
using iTextSharp.text.xml;
|
|
using iTextSharp;
|
|
using Excel = Microsoft.Office.Interop.Excel;
|
|
using System.Data.OleDb;
|
|
using System.Diagnostics;
|
|
|
|
namespace Procedure_Pdf_Page_Count
|
|
{
|
|
public partial class Form1 : Form
|
|
{
|
|
public Form1()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
string[] pdffiles;
|
|
string selectedPath = "";
|
|
private void btnSelectFolder_Click(object sender, EventArgs e)
|
|
{
|
|
using (var fbd = new FolderBrowserDialog())
|
|
{
|
|
fbd.Description = "Select the PDF folder";
|
|
//fbd.ShowHiddenFiles = true;
|
|
DialogResult result = fbd.ShowDialog();
|
|
selectedPath = fbd.SelectedPath;
|
|
if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
|
|
{
|
|
pdffiles = Directory.GetFiles(fbd.SelectedPath,"*.pdf");
|
|
|
|
System.Windows.Forms.MessageBox.Show("Files found: " + pdffiles.Length.ToString(), "Message");
|
|
}
|
|
}
|
|
}
|
|
|
|
private void cntPDFPages_Click(object sender, EventArgs e)
|
|
{
|
|
int totalPages = 0;
|
|
DataTable dt = new DataTable();
|
|
dt.Columns.Add("Procedure", typeof(string));
|
|
dt.Columns.Add("Page Count", typeof(int));
|
|
|
|
if (selectedPath == "")
|
|
{
|
|
System.Windows.Forms.MessageBox.Show("No folder Seleted. Please select a folder.");
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
foreach (string ppath in pdffiles)
|
|
{
|
|
PdfReader pdfReader = new PdfReader(ppath);
|
|
int numberOfPages = pdfReader.NumberOfPages;
|
|
totalPages += numberOfPages;
|
|
dt.Rows.Add(new object[] { ppath, numberOfPages });
|
|
}
|
|
|
|
|
|
dt.DefaultView.Sort = "Page Count desc";
|
|
dt = dt.DefaultView.ToTable();
|
|
|
|
lblTotalPages.Text = totalPages.ToString();
|
|
pageCountView.DataSource = dt;
|
|
DataGridViewColumn col = pageCountView.Columns[0];
|
|
col.Width = 350;
|
|
string dtt = DateTime.Now.ToString("MM/dd/yyyy h:mm tt");
|
|
dtt = dtt.Replace('/', '_');
|
|
dtt = dtt.Replace(':', '-');
|
|
dtt = dtt.Replace(' ', '-');
|
|
selectedPath = selectedPath + "\\";
|
|
|
|
selectedPath = selectedPath + $"{dtt}.csv";
|
|
|
|
var lines = new List<string>();
|
|
|
|
string[] columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray();
|
|
|
|
var header = string.Join(",", columnNames);
|
|
lines.Add(header);
|
|
var valueLines = dt.AsEnumerable().Select(row => string.Join(",", row.ItemArray));
|
|
lines.AddRange(valueLines);
|
|
File.WriteAllLines(selectedPath, lines);
|
|
if (File.Exists(selectedPath))
|
|
{
|
|
btnViewReport.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
System.Windows.Forms.MessageBox.Show("Procedure PDF page report does not exists");
|
|
return;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
System.Windows.Forms.MessageBox.Show("An Error has occured. Please try again. Error: " + ex.Message);
|
|
return;
|
|
}
|
|
}
|
|
|
|
private void btnViewReport_Click(object sender, EventArgs e)
|
|
{
|
|
var ExcelApp = new Excel.Application();
|
|
ExcelApp.Workbooks.OpenText(selectedPath, Comma: true);
|
|
|
|
ExcelApp.Visible = true;
|
|
}
|
|
|
|
//private void pageCountView_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
|
//{
|
|
// System.Windows.Forms.MessageBox.Show("Row Index: " + e.RowIndex.ToString());
|
|
//}
|
|
private void pageCountView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
DataGridViewCell cell = pageCountView.Rows[e.RowIndex].Cells[e.ColumnIndex];
|
|
//System.Windows.Forms.MessageBox.Show("Double Click Row Index: " + cell.Value.ToString());
|
|
//System.Windows.Forms.DataGridViewTextBoxCell
|
|
Process.Start(cell.Value.ToString());
|
|
}
|
|
private void pageCountView_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if ((e.ColumnIndex == pageCountView.Columns["Procedure"].Index)
|
|
&& (e.RowIndex > -1))
|
|
{
|
|
pageCountView.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = "Double click name to open PDF";
|
|
}
|
|
}
|
|
}
|
|
}
|