[英]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.