如果我使用图像(image1)构建 PDF (pdf1),pdf1 将按预期显示 image1。
如果我随后在网站中将 image1 替换为 image2,并制作新的 pdf2,pdf2 将显示旧的 image1,这就是我的(缓存?)问题。
了解更多信息:
如果我在VS中停止程序并关闭所有开发服务器(本地ISS?),再次运行程序并制作一个新的pdf(pdf3),pdf3显示image2(我制作的最后一个图像),这是正确。
所以我想我不会结束一些事情或缓存太多?
如何创建 PDF
public void CreateSingleFrontpage(string url)
{
var pdfConverter = new PdfConverter(0);
PdfConverter.LayoutHtmlTimeoutSec = 500;
pdfConverter.NavigationTimeout = 5000;
pdfConverter.LicenseKey = "****************************";
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfCompressionLevel =
PdfCompressionLevel.Normal;
pdfConverter.PdfDocumentOptions.PdfPageOrientation =
PDFPageOrientation.Portrait;
pdfConverter.PdfDocumentOptions.ShowHeader = false;
pdfConverter.PdfDocumentOptions.ShowFooter = false;
pdfConverter.PdfDocumentOptions.LeftMargin = 80;
pdfConverter.PdfDocumentOptions.RightMargin = 40;
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl(url);
// send the PDF document as a response to the browser for download
System.Web.HttpResponse response =
System.Web.HttpContext.Current.Response;
response.Clear();
// response.CacheControl = "no-cache";
response.AddHeader("Content-Type", "binary/octet-stream");
response.AddHeader("Content-Disposition", "attachment;
filename=PDF_Temp.pdf; size=" + pdfBytes.Length);
response.Flush();
response.BinaryWrite(pdfBytes);
response.Flush();
response.End();
}
处理请求
public void ProcessRequest(HttpContext context)
{
int skemaId = int.Parse((context.Request.QueryString["SkemaId"]));
int witchImage = int.Parse(context.Request.QueryString["witchImage"]);
byte[] imageData = new BLL.Handlers.PDFForsideHandlers().GetImage(
witchImage, skemaId);
if (imageData != null)
{
context.Response.ContentType = "image/jpg";
context.Response.BinaryWrite(imageData);
// context.Response.Flush();
// context.Response.Clear();
// context.Response.Close();
// context.Response.End();
}
}
asp.net控件
Image image = new Image();
image.ImageUrl = url;
image.DataBind();
PlaceHolder1.Controls.Add(image);
我现在花了一整天的时间,任何评论都会非常感激。
最佳答案
Winnovative 正在从 C:\Windows\Temp\Temporary Internet Files\Content.IE5 下缓存的 IE9 中抓取图像。这个“windows”ie 缓存目录根据您的 IE 版本而有所不同。
关于c# - 使用 ASP.NET、C# 和 Winnovative.WnvHtmlConvert.PdfConverter 重新创建新的 PDF 仍保留旧图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747025/