У меня есть программа, которая выбирает из двух путей и объединяет эти 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);
}
}
}
}