Я спасаю содержимое HTML в PDF с помощью следующего кода:Процесс не может получить доступ к файлу с PdfWriter.GetInstance
public void SaveHTMLToPdf(string HTML, string FilePath)
{
Document document = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath + "\\Invoice_Statement.pdf", FileMode.Create));
document.Open();
iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(Server.MapPath(ImgCom.ImageUrl.ToString()));
pdfImage.ScaleToFit(150, 100);
pdfImage.Alignment = iTextSharp.text.Image.UNDERLYING; pdfImage.SetAbsolutePosition(40, 770);
document.AddTitle("Invoice Details");
document.Add(pdfImage);
iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
styles.LoadTagStyle("th", "color", "red");
styles.LoadTagStyle("th", "frontsize", "5");
document.Add(new Header(iTextSharp.text.html.Markup.HTML_ATTR_STYLESHEET, "Style.css"));
hw.Parse(new StringReader(HTML));
document.Close();
}
Но это дает эту ошибку:
The process cannot access the file 'C:\inetpub\wwwroot\abc\Invoice_Statement.pdf' because it is being used by another process.
На этой линии:
PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath +
"\\Invoice_Statement.pdf", FileMode.Create));
Это происходит только на сервере с IIS-7 и отлично работает на местном уровне с визуальной студией.
Может ли кто-нибудь помочь .. ??
Вы открыли pdf-файл, отличный от вашего кода? – TalentTuner