Move Bank PDF files to Year Month
This commit is contained in:
@ -10,6 +10,11 @@ internal static class HelperPdfStripperWrapper
|
||||
string? Key,
|
||||
char? Parser);
|
||||
|
||||
private const char _Linc = 'L';
|
||||
private const char _Ghost = 'G';
|
||||
private const char _Kofax = 'K';
|
||||
private const char _Stripper = 'S';
|
||||
|
||||
private static string GetTextFromPDF(string pdfTextStripperFileName, string sourceFileNamePdf, string destinationFileName)
|
||||
{
|
||||
string result;
|
||||
@ -28,14 +33,27 @@ internal static class HelperPdfStripperWrapper
|
||||
return result;
|
||||
}
|
||||
|
||||
private static string GetLincTextFromPDF(string lincPDFCFileName, string sourceFileNamePdf, string destinationFileName)
|
||||
{
|
||||
string result;
|
||||
if (File.Exists(destinationFileName))
|
||||
File.Delete(destinationFileName);
|
||||
string arguments = string.Concat("-i \"", sourceFileNamePdf, "\" -o \"", destinationFileName, "\"");
|
||||
Process? process = Process.Start(lincPDFCFileName, arguments);
|
||||
_ = process?.WaitForExit(30000);
|
||||
if (!File.Exists(destinationFileName))
|
||||
result = string.Empty;
|
||||
else
|
||||
result = File.ReadAllText(destinationFileName);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static string GetGhostTextFromPDF(string ghostPCLFileName, string sourceFileNamePdf, string destinationFileName)
|
||||
{
|
||||
string result;
|
||||
if (File.Exists(destinationFileName))
|
||||
File.Delete(destinationFileName);
|
||||
//string arguments = $"-i \"{sourceFile}\" -o \"{result}\"";
|
||||
string arguments = $"-dSAFER -dBATCH -dNOPAUSE -dFIXEDMEDIA -dFitPage -dAutoRotatePages=/All -dDEVICEWIDTHPOINTS=792 -dDEVICEHEIGHTPOINTS=612 -sOutputFile=\"{destinationFileName}\" -sDEVICE=pdfwrite \"{sourceFileNamePdf}\"";
|
||||
//Process process = Process.Start(configData.LincPDFCFileName, arguments);
|
||||
Process? process = Process.Start(ghostPCLFileName, arguments);
|
||||
_ = process?.WaitForExit(30000);
|
||||
if (!File.Exists(destinationFileName))
|
||||
@ -83,11 +101,11 @@ internal static class HelperPdfStripperWrapper
|
||||
d = Path.Combine(d, directoryName);
|
||||
if (!string.IsNullOrEmpty(d) && !Directory.Exists(d))
|
||||
_ = Directory.CreateDirectory(d);
|
||||
char? parser = p is null ? null : p == "S" ? 'S' : p == "G" ? 'G' : p == "K" ? 'K' : null;
|
||||
char? parser = p is null ? null : p == "S" ? _Stripper : p == "G" ? _Ghost : p == "K" ? _Kofax : p == "L" ? _Linc : null;
|
||||
return new(d, k, parser);
|
||||
}
|
||||
|
||||
private static void ParseSave(ILogger log, string pdfTextStripperFileName, string ghostPCLFileName, string kofaxFileName, string destinationDirectory, char parser, string[] files)
|
||||
private static void ParseSave(ILogger log, string pdfTextStripperFileName, string ghostPCLFileName, string kofaxFileName, string lincPDFCFileName, string destinationDirectory, char parser, string[] files)
|
||||
{
|
||||
string text;
|
||||
string destinationFileName;
|
||||
@ -96,12 +114,14 @@ internal static class HelperPdfStripperWrapper
|
||||
foreach (string file in files)
|
||||
{
|
||||
destinationFileName = Path.Combine(destinationDirectory, $"{file}.txt");
|
||||
if (parser == 'S')
|
||||
text = GetTextFromPDF(pdfTextStripperFileName, file, destinationFileName);
|
||||
else if (parser == 'G')
|
||||
text = GetGhostTextFromPDF(ghostPCLFileName, file, destinationFileName);
|
||||
else if (parser == 'K')
|
||||
if (parser == _Kofax)
|
||||
text = GetKofaxTextFromPDF(kofaxFileName, file, destinationFileName);
|
||||
else if (parser == _Linc)
|
||||
text = GetLincTextFromPDF(lincPDFCFileName, file, destinationFileName);
|
||||
else if (parser == _Ghost)
|
||||
text = GetGhostTextFromPDF(ghostPCLFileName, file, destinationFileName);
|
||||
else if (parser == _Stripper)
|
||||
text = GetTextFromPDF(pdfTextStripperFileName, file, destinationFileName);
|
||||
else
|
||||
throw new NotImplementedException();
|
||||
log.LogInformation("<{file}> == {length}", Path.GetFileName(file), text.Length);
|
||||
@ -135,35 +155,56 @@ internal static class HelperPdfStripperWrapper
|
||||
|
||||
internal static void ParseSave(ILogger log, List<string> args)
|
||||
{
|
||||
string pdfTextStripperFileName = Path.Combine(AppContext.BaseDirectory, "PDF-Text-Stripper.exe");
|
||||
if (!File.Exists(pdfTextStripperFileName))
|
||||
log.LogInformation("exe <{pdfTextStripperFileName}> doesn't exist!", pdfTextStripperFileName);
|
||||
// <ItemGroup>
|
||||
// <PackageReference Include="Infineon.Mesa.PDF.Text.Stripper" Version="4.8.0.1"><NoWarn>NU1701</NoWarn></PackageReference>
|
||||
// </ItemGroup>
|
||||
// <ItemGroup>
|
||||
// <None Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6dll64.dll">
|
||||
// <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
// </None>
|
||||
// <None Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\GhostPCL\gpcl6win64\gpcl6win64.exe">
|
||||
// <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
// </None>
|
||||
// <None Include="\\mestsa003.infineon.com\EC_EAFRepository\Staging\DeploymentStorage\LincPDFC\v2.6.6.21\LincPDFC.exe">
|
||||
// <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
// </None>
|
||||
// </ItemGroup>
|
||||
string sourceDirectory = Path.GetFullPath(args[0]);
|
||||
Input input = GetInput(args);
|
||||
if (string.IsNullOrEmpty(input.DestinationDirectory))
|
||||
log.LogInformation("-d <{DestinationDirectory}> wasn't supplied!", nameof(input.DestinationDirectory));
|
||||
else
|
||||
{
|
||||
string ghostPCLFileName = Path.Combine(AppContext.BaseDirectory, "gPcl6win64.exe");
|
||||
if (!File.Exists(ghostPCLFileName))
|
||||
log.LogInformation("exe <{ghostPCLFileName}> doesn't exist!", ghostPCLFileName);
|
||||
if (input.Parser is null)
|
||||
log.LogInformation("-p <{Parser}> wasn't supplied!", nameof(input.Parser));
|
||||
else
|
||||
{
|
||||
string kofaxFileName = "C:/Program Files (x86)/Kofax/Power PDF 50/batchConverter.com";
|
||||
if (!File.Exists(kofaxFileName))
|
||||
log.LogInformation("exe <{kofaxFileName}> doesn't exist!", kofaxFileName);
|
||||
string pdfTextStripperFileName = Path.Combine(AppContext.BaseDirectory, "PDF-Text-Stripper.exe");
|
||||
if (input.Parser == _Stripper && !File.Exists(pdfTextStripperFileName))
|
||||
log.LogInformation("exe <{pdfTextStripperFileName}> doesn't exist!", pdfTextStripperFileName);
|
||||
else
|
||||
{
|
||||
Input input = GetInput(args);
|
||||
if (string.IsNullOrEmpty(input.DestinationDirectory))
|
||||
log.LogInformation("-d <{DestinationDirectory}> wasn't supplied!", nameof(input.DestinationDirectory));
|
||||
string ghostPCLFileName = Path.Combine(AppContext.BaseDirectory, "gPcl6win64.exe");
|
||||
if (input.Parser == _Ghost && !File.Exists(ghostPCLFileName))
|
||||
log.LogInformation("exe <{ghostPCLFileName}> doesn't exist!", ghostPCLFileName);
|
||||
else
|
||||
{
|
||||
if (input.Parser is null)
|
||||
log.LogInformation("-p <{Parser}> wasn't supplied!", nameof(input.Parser));
|
||||
string kofaxFileName = "C:/Program Files (x86)/Kofax/Power PDF 50/batchConverter.com";
|
||||
if (input.Parser == _Kofax && !File.Exists(kofaxFileName))
|
||||
log.LogInformation("exe <{kofaxFileName}> doesn't exist!", kofaxFileName);
|
||||
else
|
||||
{
|
||||
string[] files = Directory.GetFiles(args[0], "*.pdf", SearchOption.TopDirectoryOnly);
|
||||
if (files.Length == 0)
|
||||
log.LogInformation("Length == {length}", files.Length);
|
||||
string lincPDFCFileName = Path.Combine(AppContext.BaseDirectory, "LincPDFC.exe");
|
||||
if (input.Parser == _Kofax && !File.Exists(lincPDFCFileName))
|
||||
log.LogInformation("exe <{lincPDFCFileName}> doesn't exist!", lincPDFCFileName);
|
||||
else
|
||||
ParseSave(log, pdfTextStripperFileName, ghostPCLFileName, kofaxFileName, input.DestinationDirectory, input.Parser.Value, files);
|
||||
{
|
||||
string[] files = Directory.GetFiles(sourceDirectory, "*.pdf", SearchOption.TopDirectoryOnly);
|
||||
if (files.Length == 0)
|
||||
log.LogInformation("Length == {length}", files.Length);
|
||||
else
|
||||
ParseSave(log, pdfTextStripperFileName, ghostPCLFileName, kofaxFileName, lincPDFCFileName, input.DestinationDirectory, input.Parser.Value, files);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user