FrmPdfInfo: Pages selector.
A simple textbox where you can put page numbers separated by comma. And ranges joined by dash.
This commit is contained in:
11
VAR.PdfTools.Workbench/FrmPdfInfo.Designer.cs
generated
11
VAR.PdfTools.Workbench/FrmPdfInfo.Designer.cs
generated
@@ -47,6 +47,7 @@
|
|||||||
this.btnGetField3 = new System.Windows.Forms.Button();
|
this.btnGetField3 = new System.Windows.Forms.Button();
|
||||||
this.txtField3 = new System.Windows.Forms.TextBox();
|
this.txtField3 = new System.Windows.Forms.TextBox();
|
||||||
this.btnGetColumn3 = new System.Windows.Forms.Button();
|
this.btnGetColumn3 = new System.Windows.Forms.Button();
|
||||||
|
this.txtPages = new System.Windows.Forms.TextBox();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// lblOutputs
|
// lblOutputs
|
||||||
@@ -237,11 +238,20 @@
|
|||||||
this.btnGetColumn3.UseVisualStyleBackColor = true;
|
this.btnGetColumn3.UseVisualStyleBackColor = true;
|
||||||
this.btnGetColumn3.Click += new System.EventHandler(this.btnGetColumn3_Click);
|
this.btnGetColumn3.Click += new System.EventHandler(this.btnGetColumn3_Click);
|
||||||
//
|
//
|
||||||
|
// txtPages
|
||||||
|
//
|
||||||
|
this.txtPages.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.txtPages.Location = new System.Drawing.Point(397, 82);
|
||||||
|
this.txtPages.Name = "txtPages";
|
||||||
|
this.txtPages.Size = new System.Drawing.Size(75, 20);
|
||||||
|
this.txtPages.TabIndex = 27;
|
||||||
|
//
|
||||||
// FrmPdfInfo
|
// FrmPdfInfo
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(484, 461);
|
this.ClientSize = new System.Drawing.Size(484, 461);
|
||||||
|
this.Controls.Add(this.txtPages);
|
||||||
this.Controls.Add(this.btnHasText3);
|
this.Controls.Add(this.btnHasText3);
|
||||||
this.Controls.Add(this.btnGetField3);
|
this.Controls.Add(this.btnGetField3);
|
||||||
this.Controls.Add(this.txtField3);
|
this.Controls.Add(this.txtField3);
|
||||||
@@ -291,5 +301,6 @@
|
|||||||
private System.Windows.Forms.Button btnGetField3;
|
private System.Windows.Forms.Button btnGetField3;
|
||||||
private System.Windows.Forms.TextBox txtField3;
|
private System.Windows.Forms.TextBox txtField3;
|
||||||
private System.Windows.Forms.Button btnGetColumn3;
|
private System.Windows.Forms.Button btnGetColumn3;
|
||||||
|
private System.Windows.Forms.TextBox txtPages;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,6 +191,54 @@ namespace VAR.PdfTools.Workbench
|
|||||||
Action_GetColumn(pdfPath, column);
|
Action_GetColumn(pdfPath, column);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IEnumerable<int> GetSelectedPages(int maxPages)
|
||||||
|
{
|
||||||
|
string pages = txtPages.Text;
|
||||||
|
if (string.IsNullOrEmpty(pages))
|
||||||
|
{
|
||||||
|
return Enumerable.Range(1, maxPages);
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] pagesParts;
|
||||||
|
if (pages.Contains(","))
|
||||||
|
{
|
||||||
|
pagesParts = pages.Split(',');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pagesParts = new string[] { pages };
|
||||||
|
}
|
||||||
|
List<int> listPages = new List<int>();
|
||||||
|
foreach (string part in pagesParts)
|
||||||
|
{
|
||||||
|
if (part.Contains("-"))
|
||||||
|
{
|
||||||
|
string[] range = part.Split('-');
|
||||||
|
if (range.Length == 2) {
|
||||||
|
int pageStart;
|
||||||
|
int pageEnd;
|
||||||
|
if(int.TryParse(range[0], out pageStart) && int.TryParse(range[1], out pageEnd))
|
||||||
|
{
|
||||||
|
listPages.AddRange(Enumerable.Range(pageStart, (pageEnd - pageStart) + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int pageNum;
|
||||||
|
if(int.TryParse(part, out pageNum))
|
||||||
|
{
|
||||||
|
listPages.Add(pageNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(listPages.Count == 0)
|
||||||
|
{
|
||||||
|
listPages.AddRange(Enumerable.Range(1, maxPages));
|
||||||
|
}
|
||||||
|
return listPages;
|
||||||
|
}
|
||||||
|
|
||||||
private void Action_HasText(string pdfPath, string text)
|
private void Action_HasText(string pdfPath, string text)
|
||||||
{
|
{
|
||||||
if (System.IO.File.Exists(pdfPath) == false)
|
if (System.IO.File.Exists(pdfPath) == false)
|
||||||
@@ -201,10 +249,13 @@ namespace VAR.PdfTools.Workbench
|
|||||||
|
|
||||||
PdfDocument doc = PdfDocument.Load(pdfPath);
|
PdfDocument doc = PdfDocument.Load(pdfPath);
|
||||||
|
|
||||||
|
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||||
List<string> lines = new List<string>();
|
List<string> lines = new List<string>();
|
||||||
int pageNum = 1;
|
int pageNum = 0;
|
||||||
foreach (PdfDocumentPage page in doc.Pages)
|
foreach (PdfDocumentPage page in doc.Pages)
|
||||||
{
|
{
|
||||||
|
pageNum++;
|
||||||
|
if (selectedPages.Contains(pageNum) == false) { continue; }
|
||||||
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
||||||
lines.Add(string.Format("Page({0}) : {1}", pageNum, Convert.ToString(extractor.HasText(text))));
|
lines.Add(string.Format("Page({0}) : {1}", pageNum, Convert.ToString(extractor.HasText(text))));
|
||||||
}
|
}
|
||||||
@@ -221,9 +272,13 @@ namespace VAR.PdfTools.Workbench
|
|||||||
|
|
||||||
PdfDocument doc = PdfDocument.Load(pdfPath);
|
PdfDocument doc = PdfDocument.Load(pdfPath);
|
||||||
|
|
||||||
|
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||||
var fieldData = new List<string>();
|
var fieldData = new List<string>();
|
||||||
|
int pageNum = 0;
|
||||||
foreach (PdfDocumentPage page in doc.Pages)
|
foreach (PdfDocumentPage page in doc.Pages)
|
||||||
{
|
{
|
||||||
|
pageNum++;
|
||||||
|
if (selectedPages.Contains(pageNum) == false) { continue; }
|
||||||
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
||||||
fieldData.Add(extractor.GetField(field));
|
fieldData.Add(extractor.GetField(field));
|
||||||
}
|
}
|
||||||
@@ -240,9 +295,13 @@ namespace VAR.PdfTools.Workbench
|
|||||||
|
|
||||||
PdfDocument doc = PdfDocument.Load(pdfPath);
|
PdfDocument doc = PdfDocument.Load(pdfPath);
|
||||||
|
|
||||||
|
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||||
var columnData = new List<string>();
|
var columnData = new List<string>();
|
||||||
|
int pageNum = 0;
|
||||||
foreach (PdfDocumentPage page in doc.Pages)
|
foreach (PdfDocumentPage page in doc.Pages)
|
||||||
{
|
{
|
||||||
|
pageNum++;
|
||||||
|
if (selectedPages.Contains(pageNum) == false) { continue; }
|
||||||
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
||||||
columnData.AddRange(extractor.GetColumn(column));
|
columnData.AddRange(extractor.GetColumn(column));
|
||||||
}
|
}
|
||||||
@@ -265,9 +324,13 @@ namespace VAR.PdfTools.Workbench
|
|||||||
lines.Add(string.Format("Filename : {0}", baseDocumentFilename));
|
lines.Add(string.Format("Filename : {0}", baseDocumentFilename));
|
||||||
lines.Add(string.Format("Number of Pages : {0}", doc.Pages.Count));
|
lines.Add(string.Format("Number of Pages : {0}", doc.Pages.Count));
|
||||||
|
|
||||||
int pageNumber = 1;
|
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||||
|
int pageNumber = 0;
|
||||||
foreach (PdfDocumentPage page in doc.Pages)
|
foreach (PdfDocumentPage page in doc.Pages)
|
||||||
{
|
{
|
||||||
|
pageNumber++;
|
||||||
|
if (selectedPages.Contains(pageNumber) == false) { continue; }
|
||||||
|
|
||||||
PdfPageRenderer pdfPageRenderer = new PdfPageRenderer(page);
|
PdfPageRenderer pdfPageRenderer = new PdfPageRenderer(page);
|
||||||
Bitmap bmp = pdfPageRenderer.Render();
|
Bitmap bmp = pdfPageRenderer.Render();
|
||||||
|
|
||||||
@@ -276,7 +339,6 @@ namespace VAR.PdfTools.Workbench
|
|||||||
// Save image to disk
|
// Save image to disk
|
||||||
string fileName = Path.Combine(baseDocumentPath, string.Format("{0}_{1:0000}.png", baseDocumentFilename, pageNumber));
|
string fileName = Path.Combine(baseDocumentPath, string.Format("{0}_{1:0000}.png", baseDocumentFilename, pageNumber));
|
||||||
bmp.Save(fileName, ImageFormat.Png);
|
bmp.Save(fileName, ImageFormat.Png);
|
||||||
pageNumber++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
txtOutput.Lines = lines.ToArray();
|
txtOutput.Lines = lines.ToArray();
|
||||||
|
|||||||
Reference in New Issue
Block a user