Bledy zapisu pliku z wirtualnymi sciezkami
W aplikacjach ASP.NET, PdfDocument.SaveAs() moze wykonac sie z bledem takim jak ten:
IronPDF could not write to the file '~/PDFFiles/mydocument.pdf'. It may be open in a PDF viewer.
Komunikat wskazuje na zablokowany plik, ale prawdziwa przyczyna czesto jest sciezka. IronPDF zapisuje na dysku i potrzebuje w pelni kwalifikowanej fizycznej sciezki, podczas gdy wartosc taka jak ~/PDFFiles/file.pdf jest wirtualna sciezka ASP.NET, ktorej system plikow nie moze rozpoznac.
Zmapuj wirtualna sciezke do fizycznego sciezki
Przeksztalc sciezke wirtualna przed zapisywaniem, uzywajac Server.MapPath() w ASP.NET Web Forms lub HostingEnvironment.MapPath() w inny miejscu:
string virtualPath = "~/PDFFiles/mydocument.pdf";
string physicalPath = Server.MapPath(virtualPath); // or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath);
string virtualPath = "~/PDFFiles/mydocument.pdf";
string physicalPath = Server.MapPath(virtualPath); // or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath);
Imports System.Web
Dim virtualPath As String = "~/PDFFiles/mydocument.pdf"
Dim physicalPath As String = Server.MapPath(virtualPath) ' or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath)
Minimalny dzialajacy przyklad:
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
string physicalPath = Server.MapPath("~/App_Data/PDFFiles/output.pdf");
pdf.SaveAs(physicalPath);
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
string physicalPath = Server.MapPath("~/App_Data/PDFFiles/output.pdf");
pdf.SaveAs(physicalPath);
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://example.com")
Dim physicalPath As String = Server.MapPath("~/App_Data/PDFFiles/output.pdf")
pdf.SaveAs(physicalPath)
Przed zapisaniem
- Katalog istnieje: stworz docelowy folder i upewnij sie, ze aplikacja ma do niego uprawnienia zapisu.
- Plik nie otwarty: upewnij sie, ze wyjsciowy plik nie jest juz otwarty w przegladarce, jak Adobe Reader.
- Lokalizacje z ograniczeniami: uruchamiaj przy wystarczajacych uprawnieniach, gdy zapisujesz do chronionych folderow, takich jak
Program Files. - Zweryfikuj sciezke: wprowadz fizyczna sciezke podczas rozwoju, aby potwierdzic, ze wskazuje tam, gdzie oczekujesz.

