Как объединить несколько файлов PDF из списка - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть программа, которая выбирает из двух путей и объединяет эти PDF-файлы в папку C: в папке слияния.Я хочу вместо этого объединить несколько файлов PDF, которые находятся в списке.Я изменил кнопки только на один путь, поэтому я добавлю несколько файлов в список.Я пытаюсь выяснить, как заставить мою программу читать из списка вместо чтения из текстового поля и объединять несколько файлов PDF вместо двух.

Я удалил вторую строку, где она запрашивает второй файли я создал список, который будет показывать несколько файлов после добавления его с помощью кнопки выбора файла.

namespace mergePdf
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        protected void btnMerge_Click(object sender, EventArgs e)
        {


            if (!Directory.Exists(@"C:\Merge Folder\"))
                Directory.CreateDirectory(@"C:\Merge Folder\");
            string pdfFile1 = Path.GetFullPath(textBoxPdfFile1Path.Text);


            string[] filenames = { pdfFile1 };
            string outputFileName = "Merge.pdf";
            string outputPath = @"C:\Merge Folder\" + outputFileName;
            Document doc = new Document();
            PdfCopy writer = new PdfCopy(doc, new FileStream(outputPath, 
            FileMode.Create));
            if (writer == null)
            {
                return;
            }
            doc.Open();
            foreach (string filename in filenames)
            {
                PdfReader reader = new PdfReader(filename);
                reader.ConsolidateNamedDestinations();
                for (int i = 1; i <= reader.NumberOfPages; i++)
                {
                    PdfImportedPage page = writer.GetImportedPage(reader, 
                    i);
                    writer.AddPage(page);
                }

                reader.Close();
            }

            writer.Close();
            doc.Close();
            System.Diagnostics.Process.Start(outputPath);
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            textBoxPdfFile1Path.Text = 
            System.IO.Path.Combine(Application.StartupPath, 
            @"C:\Users\jesse\Downloads");


        }

        protected void btnSelectFile1_Click(object sender, EventArgs e)
        {

            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";
            ofd.Multiselect = true;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                textBoxPdfFile1Path.Text = ofd.FileName;
                string[] files = ofd.FileNames;
                listBox1.Items.AddRange(files);
            }
        }


    }
}
...