コード例 #1
0
ファイル: MainForm.cs プロジェクト: jonaskohl/PdfConcat
        void DoMerge(string outputFileName)
        {
            try
            {
                progressDialog.SetProgress(0);
            }
            catch (ObjectDisposedException)
            {
                progressDialog = new MergeProgressDialog();
                progressDialog.SetProgress(0);
            }
            progressDialog.SetMaximum(pdfFiles.Count);
            SetNativeEnabled(false);
            progressDialog.Show(this);

            var docs      = new List <PdfDocument>();
            var outputDoc = new PdfDocument()
            {
                Version    = pdfSettingsWindow.PDFVersion,
                PageLayout = pdfSettingsWindow.PageLayout
            };

            foreach (string file in pdfFiles)
            {
                docs.Add(PdfReader.Open(file, PdfDocumentOpenMode.Import));
            }

            int progress = 1;

            foreach (var doc in docs)
            {
                CopyPages(doc, outputDoc);
                doc.Dispose();
                progressDialog.SetProgress(progress);
                progress++;
                Application.DoEvents();
            }

            outputDoc.Save(outputFileName);
            outputDoc.Dispose();

            docs.Clear();
            docs = null;
            GC.Collect();

            progressDialog.Hide();
            SetNativeEnabled(true);
            Focus();

            MessageBox.Show($"Successfully merged {pdfFiles.Count} PDF files!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: jonaskohl/PdfConcat
        public MainForm()
        {
            InitializeComponent();

            Load                += MainForm_Load;
            KeyDown             += MainForm_KeyDown;
            KeyUp               += MainForm_KeyUp;
            SystemColorsChanged += MainForm_SystemColorsChanged;

            KeyPreview = true;

            pdfFiles = new ObservableCollection <string>();
            filesListBox.DataSource = pdfFiles;
            filesListBox.KeyDown   += FilesListBox_KeyDown;

            progressDialog      = new MergeProgressDialog();
            aboutDialog         = new AboutDialog();
            pdfSettingsWindow   = new PDFSettingsWindow();
            folderBrowserDialog = new VistaFolderBrowserDialog();
        }