繁体   English   中英

C# 通过 MemoryStream 附加 Pdf 页面

[英]C# Appending Pdf Pages through MemoryStream

我目前正在处理一些报告,需要 append 几个报告在一个 PDF 中。 为此,我使用 ReportViewer 来获取不同字节 [] 中的报告。 一旦我将所有报告都放在列表中,我将继续使用以下方法加入它们

byte[] appendBuffers(List<byte[]> arrays)
        {
            List<byte> byteList = new List<byte>();

            for (int i = 0; i < arrays.Count; i++)
            {
              for (int j = 0; j < arrays[i].Length; j++)
              {
                byteList.Add(arrays[i][j]);
              }
            }

        return byteList.ToArray();
       }

现在......一旦我完成了结果 byte[] 拥有所有数据但是当我在我的网站上显示报告时,我只会得到最后一个报告出现在屏幕上。 有任何想法吗?

您不能仅通过合并文件字节来合并 PDF。 PDF 具有内部格式。 使用 PDF 库(例如 Foxit 或 PDFSAM)将 PDF 页面合并到一个文件中。

您可以对 .NET 使用Aspose.Pdf连接、插入或 Append ZBCD1B68617759B1DFCFFZ0403A中的任意一个文件。

披露:我在 Aspose 担任开发人员布道师。

正如@AresAvatar 所说,您需要为您的任务使用 PDF 库。

这是一个示例,说明如何使用Docotic.Pdf library执行此操作。

byte[] appendBuffers(List<byte[]> arrays)
{
    using (PdfDocument document = new PdfDocument())
    {
        for (int i = 0; i < arrays.Count; i++)
            document.Append(arrays[i]);

        using (MemoryStream ms = new MemoryStream())
        {
            document.Save(ms);
            return ms.ToArray();
        }
    }
}

免责声明:我为 Bit Miracle(图书馆的供应商)工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM