我在arraylist文件中有一系列PDF字节数组,我希望将它们连接成一个文件,
目前,当PDF应用程序尝试打开文件时,它已损坏:
foreach (byte[] array in files)
{
using (Stream s = new MemoryStream(downloadbytes))
{
s.Write(array, 0, array.Length);
}
}
downloadbytes是下面产生的连接字节数组是另一个也失败的实现
foreach (byte[] array in files)
{
System.Buffer.BlockCopy(array, 0, downloadbytes, offset, array.Length);
offset += array.Length;
}
任何指针?
答案 0 :(得分:2)
如果你有字节数组,你可以直接写它们:
using (Stream output = File.OpenWrite("output.pdf"))
{
foreach (byte[] array in files)
{
output.Write(array, 0, array.Length);
}
}
这将有效地连接字节数组...但是如果每个字节数组代表一个完整的PDF文件,则不应期望连接的结果是单个有效的PDF文件。组合PDF不仅仅是一个接一个地写入的情况。你需要使用PDF库(例如iText)来做到这一点。
换句话说:如果你建造5栋彼此相邻的两居室房屋,你会得到什么?不是十间卧室的豪宅......
答案 1 :(得分:2)
您可能需要使用PDF库来连接文件。看看iTextSharp。
答案 2 :(得分:1)
using (var result = File.OpenWrite("result.bin"))
{
foreach (byte[] array in files)
{
result.Write(array, 0, array.Length);
}
}
你也谈论PDF。不要指望如果您有一系列PDF文件并连接二进制文件,您只需添加字节即可收到有效的PDF文件。如果这是你想要的,你可以看看iTextSharp,它允许你concatenate PDFs。
答案 3 :(得分:1)
您需要使用PDF处理工具来完成这项工作,因为PDF文件不能简单地连接成一个PDF。 PDF文件遵循规范,您不能只是将它们连接在一起。想想XML,你不能只将XML文件连接在一起形成一个XML文件。
答案 4 :(得分:1)
您不能只将字节合并在一起 - 您需要第三方库,例如PDFSharp。 PDFSharp有一个关于合并文档的教程: