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.txtField3 = new System.Windows.Forms.TextBox();
|
||||
this.btnGetColumn3 = new System.Windows.Forms.Button();
|
||||
this.txtPages = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lblOutputs
|
||||
@@ -237,11 +238,20 @@
|
||||
this.btnGetColumn3.UseVisualStyleBackColor = true;
|
||||
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
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(484, 461);
|
||||
this.Controls.Add(this.txtPages);
|
||||
this.Controls.Add(this.btnHasText3);
|
||||
this.Controls.Add(this.btnGetField3);
|
||||
this.Controls.Add(this.txtField3);
|
||||
@@ -291,5 +301,6 @@
|
||||
private System.Windows.Forms.Button btnGetField3;
|
||||
private System.Windows.Forms.TextBox txtField3;
|
||||
private System.Windows.Forms.Button btnGetColumn3;
|
||||
private System.Windows.Forms.TextBox txtPages;
|
||||
}
|
||||
}
|
||||
@@ -191,6 +191,54 @@ namespace VAR.PdfTools.Workbench
|
||||
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)
|
||||
{
|
||||
if (System.IO.File.Exists(pdfPath) == false)
|
||||
@@ -201,10 +249,13 @@ namespace VAR.PdfTools.Workbench
|
||||
|
||||
PdfDocument doc = PdfDocument.Load(pdfPath);
|
||||
|
||||
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||
List<string> lines = new List<string>();
|
||||
int pageNum = 1;
|
||||
int pageNum = 0;
|
||||
foreach (PdfDocumentPage page in doc.Pages)
|
||||
{
|
||||
pageNum++;
|
||||
if (selectedPages.Contains(pageNum) == false) { continue; }
|
||||
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
||||
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);
|
||||
|
||||
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||
var fieldData = new List<string>();
|
||||
int pageNum = 0;
|
||||
foreach (PdfDocumentPage page in doc.Pages)
|
||||
{
|
||||
pageNum++;
|
||||
if (selectedPages.Contains(pageNum) == false) { continue; }
|
||||
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
||||
fieldData.Add(extractor.GetField(field));
|
||||
}
|
||||
@@ -240,9 +295,13 @@ namespace VAR.PdfTools.Workbench
|
||||
|
||||
PdfDocument doc = PdfDocument.Load(pdfPath);
|
||||
|
||||
IEnumerable<int> selectedPages = GetSelectedPages(doc.Pages.Count);
|
||||
var columnData = new List<string>();
|
||||
int pageNum = 0;
|
||||
foreach (PdfDocumentPage page in doc.Pages)
|
||||
{
|
||||
pageNum++;
|
||||
if (selectedPages.Contains(pageNum) == false) { continue; }
|
||||
PdfTextExtractor extractor = new PdfTextExtractor(page);
|
||||
columnData.AddRange(extractor.GetColumn(column));
|
||||
}
|
||||
@@ -265,9 +324,13 @@ namespace VAR.PdfTools.Workbench
|
||||
lines.Add(string.Format("Filename : {0}", baseDocumentFilename));
|
||||
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)
|
||||
{
|
||||
pageNumber++;
|
||||
if (selectedPages.Contains(pageNumber) == false) { continue; }
|
||||
|
||||
PdfPageRenderer pdfPageRenderer = new PdfPageRenderer(page);
|
||||
Bitmap bmp = pdfPageRenderer.Render();
|
||||
|
||||
@@ -276,7 +339,6 @@ namespace VAR.PdfTools.Workbench
|
||||
// Save image to disk
|
||||
string fileName = Path.Combine(baseDocumentPath, string.Format("{0}_{1:0000}.png", baseDocumentFilename, pageNumber));
|
||||
bmp.Save(fileName, ImageFormat.Png);
|
||||
pageNumber++;
|
||||
}
|
||||
|
||||
txtOutput.Lines = lines.ToArray();
|
||||
|
||||
Reference in New Issue
Block a user