Erreur de sauvegarde de fichier avec des chemins virtuels
Dans les applications ASP.NET, PdfDocument.SaveAs() peut échouer avec une erreur similaire à celle-ci :
IronPDF could not write to the file '~/PDFFiles/mydocument.pdf'. It may be open in a PDF viewer.
Le message pointe vers un fichier verrouillé, mais la vraie cause est généralement le chemin. IronPDF écrit sur le disque et a besoin d'un chemin physique pleinement qualifié, tandis qu'une valeur comme ~/PDFFiles/file.pdf est un chemin virtuel ASP.NET que le système de fichiers ne peut pas résoudre.
Mappez le chemin virtuel vers un chemin physique
Convertissez le chemin virtuel avant de sauvegarder, en utilisant Server.MapPath() dans ASP.NET Web Forms ou HostingEnvironment.MapPath() ailleurs :
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)
Un exemple fonctionnel minimal :
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)
Avant de sauvegarder
- Le répertoire existe : créez le dossier cible et confirmez que l'application a la permission d'écriture sur celui-ci.
- Fichier non ouvert : assurez-vous que la sortie n'est pas déjà ouverte dans un visualiseur tel qu'Adobe Reader.
- Emplacements restreints : exécutez avec des permissions suffisantes lors de l'écriture dans des dossiers protégés comme
Program Files. - Vérifiez le chemin : enregistrez le chemin physique résolu pendant le développement pour confirmer qu'il pointe où vous l'attendez.

