我已經生成了兩個PDF字節數組,並將這兩個數組合併成一個字節數組。現在,當我通過中的ActionMethod
呈現PDF時,它將生成PDF僅用於在Combine()
方法中傳遞的第二個byte[]
。 例如: 1)第二個字節[]合併PDF時覆蓋第一個字節[]
public ActionResult ShowPdf(string id1, string id2)
{
byte[] pdfBytes1 = CreatePdf1(id1);
byte[] pdfBytes2 = CreatePdf2(id2);
byte[] combinedPdfData = Combine(pdfBytes1, pdfBytes2);
return File(combinedPdfData, "application/pdf");
}
如果我寫上面的代碼,它僅與pdfBytes2
陣列數據和pdfBytes1
陣列數據重寫生成PDF。
2)現在,如果改變順序和寫入:
public ActionResult ShowPdf(string id1, string id2)
{
byte[] pdfBytes1 = CreatePdf1(id1);
byte[] pdfBytes2 = CreatePdf2(id2);
byte[] combinedPdfData = Combine(pdfBytes2, pdfBytes1);
return File(combinedPdfData, "application/pdf");
}
此方法僅與pdfBytes1
陣列數據生成PDF。
我的聯合()方法的代碼是:
public static byte[] Combine(byte[] first, byte[] second)
{
byte[] ret = new byte[first.Length + second.Length];
Buffer.BlockCopy(first, 0, ret, 0, first.Length);
Buffer.BlockCopy(second, 0, ret, first.Length, second.Length);
return ret;
}
在調試我可以看到,combinedPdfData
數組包含總字節數即pdfBytes1[] + pdfBytes2[]
但打印時僅打印一個數組的數據。請讓我知道我做錯了什麼。
正如您已經標記了您的問題[標籤:itext]:您可以使用iText(Sharp)來*合併* pdf文件。 – mkl