Basic working program.
It will merge PDFs from a directory. Configuration is currently all manual.
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
namespace PDF_Merge
|
||||
{
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using PdfSharp.Pdf;
|
||||
using PdfSharp.Pdf.IO;
|
||||
class MergePDFs
|
||||
{
|
||||
public static void MergePdfFiles(string[] filePaths, string outputPath)
|
||||
{
|
||||
|
||||
using (var output = new PdfDocument())
|
||||
{
|
||||
if (ConfigurationManager.AppSettings["overwrite"] == "true")
|
||||
{
|
||||
if (File.Exists(outputPath))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
System.IO.File.Delete(outputPath);
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("Error deleting the old PDF.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (var file in filePaths)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var input = PdfReader.Open(file, PdfDocumentOpenMode.Import))
|
||||
{
|
||||
for (int i = 0; i < input.Pages.Count; i++)
|
||||
{
|
||||
output.AddPage(input.Pages[i]);
|
||||
}
|
||||
}
|
||||
} catch { }
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
output.Save(outputPath);
|
||||
if (File.Exists(outputPath))
|
||||
{
|
||||
MessageBox.Show("PDF saved.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("PDF cannot be empty. There were no documents processed.", "Error" ,MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
public static string[] CollectPdfFiles()
|
||||
{
|
||||
string dirPath = ConfigurationManager.AppSettings["PDF-Path"];
|
||||
Console.WriteLine(dirPath);
|
||||
string[] pdfFiles = Directory.EnumerateFiles(dirPath, "*.pdf").ToArray();
|
||||
Array.Sort(pdfFiles);
|
||||
if (pdfFiles.Length != 0)
|
||||
{
|
||||
foreach (string file in pdfFiles)
|
||||
{
|
||||
Console.WriteLine(file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("No PDFs were found in the configured directory.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
return pdfFiles;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user