HTMLファイルをPDFファイルに変換したいのですが、「wkhtmltopdf.exe」を使用していました。次に、このアプリケーションを共有ホスティング サーバーに移動しました。このサーバーは .exe ファイルの実行を許可しないため、WkHtmlToXSharp.dll [上記の exe のラッパー] を使用する必要があります。
正常に動作していますが、問題は出力をどこかにキャッシュしているため、新しい PDF を作成するたびに常に最初の 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;