C# 使用itextsharp将多个pdf文件添加到现有文件

C# 使用itextsharp将多个pdf文件添加到现有文件,c#,pdf,itextsharp,C#,Pdf,Itextsharp,我正在尝试一页一页地阅读一些pdf文件,并使用itextsharp将这些页面添加到现有的pdf中。以下是我的解决方案: string path2 = Server.MapPath("~/2.pdf"); PdfReader reader = null; iTextSharp.text.Document document = null; PdfCopy pdfCopyProvider = null; PdfImportedPage importedPage = null; foreach (var

我正在尝试一页一页地阅读一些pdf文件,并使用itextsharp将这些页面添加到现有的pdf中。以下是我的解决方案:

string path2 = Server.MapPath("~/2.pdf");
PdfReader reader = null;
iTextSharp.text.Document document = null;
PdfCopy pdfCopyProvider = null;
PdfImportedPage importedPage = null;
foreach (var pdfName in pdfNames)
{
    path1 = Path.Combine(Server.MapPath("~/Files/Pdf/temp/"), pdfName);
    reader = new PdfReader(path1);
    for (int pageIndex = 1; pageIndex <= reader.NumberOfPages; pageIndex++)
    {
        document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(pageIndex));
        pdfCopyProvider = new PdfCopy(document, new System.IO.FileStream(path2, System.IO.FileMode.Append));
        document.Open();
        importedPage = pdfCopyProvider.GetImportedPage(reader, pageIndex);
        iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(importedPage);
        pdfCopyProvider.AddPage(importedPage);
    }
    reader.Close();
    document.Close();
}
stringpath2=Server.MapPath(“~/2.pdf”);
PdfReader reader=null;
iTextSharp.text.Document Document=null;
PdfCopy pdfCopyProvider=null;
PDFIImportedPage importedPage=null;
foreach(pdfNames中的变量pdfName)
{
path1=Path.Combine(Server.MapPath(“~/Files/Pdf/temp/”),pdfName);
读卡器=新的PDF读卡器(路径1);

对于(int pageIndex=1;pageIndex),您可以在循环中反复创建
文档和
PdfCopy
。您必须在一开始创建一个实例,并将所有页面添加到该实例中。答案应该能够向您展示@mkl所谈论的内容。