Exemple #1
0
        public static int Main(string[] args)
        {
            var pdfMergerOptions = new PdfMergerOptions();
            if (!Parser.Default.ParseArguments(args, pdfMergerOptions))
            {
                Console.WriteLine(pdfMergerOptions.GetUsage());
                return -1;
            }

            var program = new PdfMerger();
            program.GetFilesAndMerge(pdfMergerOptions.Directory, pdfMergerOptions.Directory);

            return 0;
        }
Exemple #2
0
        public void GetFilesAndMerge(string sourceDirectory, string targetDirectory)
        {
            try
            {
                var fileContents = new List<byte[]>();
                var files = Directory.GetFiles(sourceDirectory, "*.pdf").ToList();
                files.Sort();

                foreach (var file in files)
                {
                    using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                    {
                        var bytes = new byte[fileStream.Length];
                        fileStream.Read(bytes, 0, (int) fileStream.Length);
                        fileContents.Add(bytes);
                    }
                }

                var pdfMerger = new PdfMerger();
                var mergedPdf = pdfMerger.MergeFiles(fileContents);

                var mergedFilePath = Path.Combine(targetDirectory,
                    string.Format("merged_{0}.pdf", DateTime.Now.ToFileTime()));

                Console.WriteLine("Merged file will be written to here: {0}", mergedFilePath);

                using (var file = new FileStream(mergedFilePath, FileMode.Create, FileAccess.Write))
                {
                    file.Write(mergedPdf, 0, mergedPdf.Length);
                    file.Flush();
                    file.Close();
                }
            }
            catch (Exception err)
            {
                Console.WriteLine("Error caught while merging PDF files. Message from exception was {0}", err.Message);
                throw;
            }
        }