我正在使用下面的代碼生成pdf。然後它填充一個gridview,以便用戶可以點擊剛剛生成的PDF。因爲它正被另一個進程使用Exception type: IOException
異常消息:進程無法訪問文件,因爲它正在被另一個進程使用
該進程無法訪問該文件「\服務器\ PDF文件\ PE10091026-Rev.pdf」 :我正在一個異常信息。
如果我生成另一個PDF,則可以打開上一個PDF。
任何想法如果沒有人打開文件,鎖上的是什麼?
Dim Doc1 As New Document
Dim path As String = "\\server\PDFs\"
Dim myUniqueFileName = String.Format("{0}.pdf", Session("FileName") & "-Rev")
Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(Doc1, New FileStream(path & myUniqueFileName, FileMode.Create))
Doc1.Open()
Dim test As String
test = Session("PDF")
Dim PDFHeader As String
PDFHeader = Session("Header")
Dim imagepath As String = Server.MapPath(".") & "/images/Header.png"
Dim image As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(imagepath)
image.ScalePercent(70.0F)
Dim line1 As New iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 1)
Doc1.Add(image)
Doc1.Add(New Paragraph(PDFHeader))
Doc1.Add(New Chunk(line1))
Doc1.Add(New Paragraph(test))
Doc1.Close()
Doc1.Dispose()
我看不到你在哪裏使用pdfWrite對象。它是否需要關閉和/或處置?另外,在PdfWrite的構造函數中,創建一個新的FileStream。這會創建並打開文件。該文件流如何關閉? –
我曾嘗試使用filestream.dispose,但它不作爲選項提供 – user1342164
您需要將FileStream存儲在變量中,以便您可以將其稱爲Close或Dispose方法。 –