Procedure-Pdf-Page-Count
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user