我試圖用this tutorial作爲基準來做,但它在下面指定的行中引用了空引用異常。我應該以不同的方式做這件事嗎?如果不是,爲什麼它會拋出空引用異常(page
和cb
都不爲空)。代碼:如何使用iTextSharp連接兩個PDF?
string filePath = @"c:\temp\test_new.pdf";
string attachPath = @"c:\temp\test.pdf";
Console.WriteLine("Begin!");
Document d = new Document();
if(File.Exists(filePath)){File.Delete(filePath);}
FileStream fs = new FileStream(filePath, FileMode.Create);
PdfWriter pw = PdfWriter.GetInstance(d, fs);
d.Open();
d.Add(new Paragraph("New document! Now lets add an attachment!"));
PdfReader pRdr = new PdfReader(new FileStream(attachPath,FileMode.Open));
PdfReaderContentParser parser = new PdfReaderContentParser(pRdr);
MemoryStream ms = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(d, ms);
writer.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
int rotation;
d.SetPageSize(PageSize.LETTER);
for (int i = 1; i <= pRdr.NumberOfPages; i++)
{
d.NewPage();
page = writer.GetImportedPage(pRdr, i);
rotation = pRdr.GetPageRotation(i);
if (rotation == 90 || rotation == 270)
{
cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, pRdr.GetPageSizeWithRotation(i).Height);
}
else
{
/*NULL EXCEPTION HERE!!!*/cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0); //NULL EXCEPTION HERE!!!
}
}
你確定在你的情況'頁面'或甚至'pRdr'不是null當你有異常? – Bolu 2011-01-05 17:40:44
如果'pRdr'爲空,那麼會出錯7行以上不是嗎? 'page'和'cb'都不爲空。 – 2011-01-05 17:44:59
我相信你可以合併2個文件,比這更少的行...我希望我的谷歌fu不會讓我失敗 – 2011-01-05 18:35:38