我想将 HTML 文件转换为 PDF 文件,我使用的是“wkhtmltopdf.exe”。然后我们将此应用程序移至共享托管服务器。该服务器不允许运行 .exe 文件,因此我必须使用 WkHtmlToXSharp.dll [上述 exe 的包装器]。
它工作正常,但问题是它在某处缓存输出,所以每次我创建一个新的 PDF 时,它总是给出第一个。
我已经调用了 .Dispose() 并将转换器设置为 null 但没有用。
但经过一段时间后,它带来了新的 PDF,这意味着它在某处缓存或缓冲字节数据。
下面是我的代码。每次我传递一个包含不同图像的新 html 文件 [htmlFullPath] 时。
IHtmlToPdfConverter converter = new MultiplexingConverter();
converter.ObjectSettings.Page = htmlFullPath;
converter.ObjectSettings.Web.EnablePlugins = true;
converter.ObjectSettings.Web.EnableJavascript = true;
converter.ObjectSettings.Web.Background = true;
converter.ObjectSettings.Web.LoadImages = true;
converter.ObjectSettings.Load.LoadErrorHandling = LoadErrorHandlingType.ignore;
converter.GlobalSettings.Orientation = (PdfOrientation)Enum.Parse(typeof(PdfOrientation), orientation);
if (!string.IsNullOrEmpty(pageSize))
converter.GlobalSettings.Size.PageSize = (PdfPageSize)Enum.Parse(typeof(PdfPageSize), pageSize);
converter.GlobalSettings.Margin.Top = "0cm";
converter.GlobalSettings.Margin.Bottom = "0cm";
converter.GlobalSettings.Margin.Left = "0cm";
converter.GlobalSettings.Margin.Right = "0cm";
Byte[] bufferPDF = converter.Convert();
System.IO.File.WriteAllBytes(pdfUrl, bufferPDF);
converter.Dispose();
converter = null;