使用C#或asp.net使用Append bytes[]将多个Pdf合并为单个Pdf

使用C#或asp.net使用Append bytes[]将多个Pdf合并为单个Pdf,c#,asp.net,C#,Asp.net,问题: 我的数据表中有字节数组 每个字节[]都是一个订单的单个pdf文件 我只想将所有这些pdfbyte[]放在单个文件的byte[]中 我只想把它保存到浏览器中 我可以实现附加字节[],但它将创建一个字节[]数据作为pdf格式 下面是我在控制台应用程序中所做的示例,实际上我希望在我的web应用程序中使用它 这是我的密码: public void NewPdf(string[] Pdf) { byte[] newPdf; MemoryStream ms = new Memory

问题:

  • 我的数据表中有字节数组
  • 每个
    字节[]
    都是一个订单的单个pdf文件
  • 我只想将所有这些pdf
    byte[]
    放在单个文件的
    byte[]
  • 我只想把它保存到浏览器中

    我可以实现附加
    字节[]
    ,但它将创建一个
    字节[]
    数据作为pdf格式

    下面是我在控制台应用程序中所做的示例,实际上我希望在我的web应用程序中使用它

    这是我的密码:

    public void NewPdf(string[] Pdf)
    {
    
        byte[] newPdf;
        MemoryStream ms = new MemoryStream();
        foreach (var onepdf in Pdf)
        {
            newPdf = System.IO.File.ReadAllBytes(onepdf);
          //newPdf=System.Convert.FromBase64String(onepdf);
          // int resultPdf = newPdf.Length;
          // ms.Write(newPdf, 0, newPdf.Length);
          // var ms = new MemoryStream(new byte[resultPdf], 0, resultPdf, true, true);
           ms.Write(newPdf, 0, newPdf.Length);
           //ms.Write(baadF00d, 0, baadF00d.Length);
    
           //System.Buffer.BlockCopy(newPdf, 0, resultPdf, 0, newPdf.Length);
        }
        byte[] merged = ms.GetBuffer();
       // File.WriteAllBytes("testpdf.pdf", merged);
        PdfReader reader = new PdfReader(merged);
        int n = reader.NumberOfPages;
        Document document = new Document(reader.GetPageSizeWithRotation(1));
        PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("thugs.pdf", FileMode.Create));
        document.Open();
        PdfContentByte cb = writer.DirectContent;
        PdfImportedPage page;
        int rotation;
        int i = 0;
        while (i < n)
        {
            i++;
            document.SetPageSize(reader.GetPageSizeWithRotation(i));
            document.NewPage();
            page = writer.GetImportedPage(reader, i);
            rotation = reader.GetPageRotation(i);
            if (rotation == 90 || rotation == 270)
            {
                cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(i).Height);
            }
            else
            {
                cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
    
            }
        }
        reader = new PdfReader(merged);
        // we retrieve the total number of pages
        n = reader.NumberOfPages;
        document.Close();
    
    }
    

    你的问题是什么还不清楚。您想知道如何在MVC2中通过浏览器返回文件吗?或者合并PDF文件时遇到问题?我想将两个PDF字节[]合并为一个PDF,并使用mvc2返回文件
    return File(bytes, mimeType);