所以我想出了进入目录的C#代码,搜索PDF文件名及其带有_1的免费PDF文件,并将它们合并到该目录中的一个名为“合并”的文件夹中
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
//private const string dir = @"C:\Users\XBorja\Desktop\IMAGES\";
static void Main(string[] args)
{
Console.WriteLine("Please Enter Location");
var dir = Console.ReadLine();
File.SetAttributes(dir, FileAttributes.Normal);
string[] files = Directory.GetFiles(dir, "*.pdf");
IEnumerable<IGrouping<string, string>> groups = files.GroupBy(n => n.Split('.')[0].Split('_')[0]);
//string f = files[0].Split('_')[0];
foreach (var items in groups)
{
Console.WriteLine(items.Key);
PdfDocument outputPDFDocument = new PdfDocument();
foreach (var pdfFile in items)
{
Merge(outputPDFDocument, pdfFile);
}
outputPDFDocument.Save(Path.GetDirectoryName(items.Key) + @"\Merge\" + Path.GetFileNameWithoutExtension(items.Key) + ".pdf");
}
Console.ReadKey();
}
private static void Merge(PdfDocument outputPDFDocument, string pdfFile)
{
PdfDocument inputPDFDocument = PdfReader.Open(pdfFile, PdfDocumentOpenMode.Import);
outputPDFDocument.Version = inputPDFDocument.Version;
foreach (PdfPage page in inputPDFDocument.Pages)
{
outputPDFDocument.AddPage(page);
}
}
}
}
这很好用,但是我宁愿而不是对其进行硬编码而是通过询问PDF的合并目录来提示用户。然后,一旦执行该操作,请询问用户新的子文件夹将被命名为合并后的pdf文件所在的位置。
我刚接触C#
答案 0 :(得分:1)
没有验证等,让用户提供信息很简单:
False