當我第一次開始工作時,需要多次處理pdf並不是很清楚,所以這可能對您有所幫助。
在下面的方法中,我們創建一個pdf,將其渲染爲byte[]
,加載它進行後期處理,再次渲染pdf並返回結果。
的你的問題涉及得到一個byte[]
流入和流出varbinary[max]
的,節省了byte[]
到文件並讀出,你可以輕鬆谷歌足夠的休息。
public byte[] PdfGeneratorAndPostProcessor()
{
byte[] newPdf;
using (var pdf = new MemoryStream())
using (var doc = new Document(iTextSharp.text.PageSize.A4))
using (PdfWriter.GetInstance(doc, pdf))
{
doc.Open();
// do stuff to the newly created doc...
doc.Close();
newPdf = pdf.GetBuffer();
}
byte[] postProcessedPdf;
var reader = new PdfReader(newPdf);
using (var pdf = new MemoryStream())
using (var stamper = new PdfStamper(reader, pdf))
{
var pageCount = reader.NumberOfPages;
for (var i = 1; i <= pageCount; i++)
{
// do something on each page of the existing pdf
}
stamper.Close();
postProcessedPdf = pdf.GetBuffer();
}
reader.Close();
return postProcessedPdf;
}