C# 通过 MemoryStream 附加 Pdf 页面
我目前正在处理一些报告,需要在一份 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[] 就拥有所有数据,但是当我在网站上显示报告时,我只得到最后一个报告出现在屏幕上。有什么想法吗?
I'm currently working on some reports and need to append several reports in one PDF. In order to do so I'm using ReportViewer to get the reports in different byte[]. Once I have all the reports in a List I proceed to join them using the following method
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();
}
Now... once I'm done the resulting byte[] has all the data however when I display the reports on my website I only get the last report to appear on the screen. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能仅通过合并文件字节来合并 PDF。 PDF 有一个内部格式。使用 Foxit 或 PDFSAM 等 PDF 库将 PDF 页面合并到单个文件中。
You can't merge PDFs by just merging the file bytes. PDFs have an internal format. Use a PDF library such as Foxit or PDFSAM to merge PDF pages into a single file.
您可以使用 Aspose.Pdf for .NET 到
披露:我在 Aspose 担任开发人员传播者。
You may use Aspose.Pdf for .NET to Concatenate, Insert or Append PDF documents either from MemoryStream or files.
Disclosure: I work as developer evangelist at Aspose.
正如@AresAvatar 所说,您需要使用 PDF 库来完成您的任务。
以下是如何使用 Docotic.Pdf 库 执行此操作的示例。
免责声明:我为 Bit Miracle(图书馆供应商)工作。
As @AresAvatar said, you need to use a PDF library for your task.
Here is a sample for how to do this using Docotic.Pdf library.
Disclaimer: I work for Bit Miracle (vendor of the library).