The Syncfusion native Blazor components library offers 70+ UI and Data Viz web controls that are responsive and lightweight for building modern web apps.
.NET PDF framework is a high-performance and comprehensive library used to create, read, merge, split, secure, edit, view, and review PDF files in C#/VB.NET.
Hi, I'm using Essential PDF 6.2.0.32, ASP.NET and VB.
I am tying to open an existing PDF, "stamp" it with text, then save the document to disk as a new document. I almost have this working but the starting document won't close properly. I have to wait several minutes before trying to repeat the process.
Here is my simplified VB: Dim filename As String = Server.MapPath("certs/cert_template.pdf") Dim ldoc As PdfLoadedDocument = New PdfLoadedDocument(filename) Dim output As String = Server.MapPath("certs/unique_name.pdf") ldoc.Save(output) ldoc.Close()
This works fine the first time. If I fire the code a second time I receive the error "The process cannot access the file '......\cert_template.pdf' because it is being used by another process."
It appears that ldoc.Close() is not working properly.
Ok, I found a hacktastic solution. I'd still appreciate a reply from the pros since my solution can't possibly be best practice... and it appears that "pdfLoadedDocument.close()" doesn't work.
Instead of loading a file string, I'm loading a Stream. Then I use ASP.NET code to close the Stream when done. Here is my updated code:
Dim filename As Stream = New FileStream(Server.MapPath("certs/cert_template.pdf"), FileMode.Open) Dim ldoc As PdfLoadedDocument = New PdfLoadedDocument(filename) Dim output As String = Server.MapPath("certs/unique_name.pdf") ldoc.Save(output) ldoc.Close() ' Not sure that this does anything filename.Close() ' This one works
Hope this helps
BPBhuvaneswari P Syncfusion Team April 25, 2008 07:14 AM UTC
Hi Joe,
Thank you for your interest in Syncfusion products.
I can able to reproduce the issue. The issue mentioned here is suspected to be a defect and we have sent this to our development team for more analysis. We will update you once we get back from our development team.
Untill the issue fixed, please use the stream option.
Thank you for your patience.
Regards, Bhuvana
BPBhuvaneswari P Syncfusion Team April 28, 2008 09:18 AM UTC
Hi Joe,
Use the below overload which will release all the objects.
ldoc.Close(true);
Please let me know if you need any further assistance.
Regards, Bhuvana
JHJoe HakoozApril 28, 2008 03:49 PM UTC
Hmmm... Thought I tried that but guess not. It works!