2010-07-15 52 views
0

我有各種pdf文件說file1.pdf,file2.pdf .......... 現在我想創建一個新的PDF文件說MainDoc.pdf。 此MainDoc.pdf將包含File1.pdf,File2.pdf ...作爲附件。pdf中的附件

嘗試這種代碼,但它給錯誤: 「Object Refrence not set to an instance

its.Document PDFD = new its.Document(its.PageSize.LETTER); 
its.pdf.PdfWriter writer; 
writer = its.pdf.PdfWriter.GetInstance(PDFD, new FileStream(targetpath, FileMode.Create)); 
its.pdf.PdfFileSpecification pfs = its.pdf.PdfFileSpecification.FileEmbedded(writer, "C:\\test.xml", "New.xml", null); 
writer.AddFileAttachment(pfs); 

它看起來像問題是與作家。

未將對象引用設置爲對象的實例。 at iTextSharp.text.pdf.PdfWriter.get_PdfIndirectReference()

+0

你摸不着頭腦?我有同樣的問題。 – Tigran 2014-10-15 22:42:44

回答

0

我假設錯誤發生在最後一行?檢查pfs - 是否分配?

its.Document PDFD = new its.Document(its.PageSize.LETTER); 
its.pdf.PdfWriter writer = its.pdf.PdfWriter.GetInstance(PDFD, new FileStream(targetpath, FileMode.Create)); 
its.pdf.PdfFileSpecification pfs = its.pdf.PdfFileSpecification.FileEmbedded(writer, "C:\\test.xml", "New.xml", null); 
if(pfs) 
{ 
    writer.AddFileAttachment(pfs); 
} 
else 
{ 
    // An error occurred! 
} 
+0

hi jon, 我在寫這段代碼。並且「pfs = its.pdf.PdfFileSpecification.FileEmbedded」行出現錯誤。 錯誤是:對象Ref未設置爲對象的實例 請建議 writer = its.pdf.PdfWriter.GetInstance(PDFD,new FileStream(targetpath,FileMode.Create)); its.pdf.PdfFileSpecification pfs; pfs = its.pdf.PdfFileSpecification.FileEmbedded(writer,「D:\\ Test.xml」,「Driving.pdf」,null);如果(pfs!= null) 作者.AddFileAttachment(pfs); } else { Response.Write(「Err」); } – Richa 2010-07-15 11:23:55

+0

它看起來像問題是與作家。 未將對象引用設置爲對象的實例。在iTextSharp.text.pdf.PdfWriter.get_PdfIndirectReference() – Richa 2010-07-16 06:53:49

1

您是否檢查過'writer'和'PdfFileSpecification'是否爲空?

+0

您好安德烈 作家不爲空我已檢查。 AND its.pdf.PdfFileSpecification是一個類,「FileEmbedded」是一個STATIC函數。所以它可以由PdfFileSpecification類的實例調用。例如: its.pdf.PdfFileSpecification.FileEmbedded – Richa 2010-07-15 11:50:40

1

Null來自文檔。

添加

PDFD.Open();

its.pdf.PdfWriter writer = its.pdf.PdfWriter.GetInstance(PDFD, new FileStream(targetpath, FileMode.Create));