今朝、AbcPdf9 で同様の問題が発生しました。エンジンの種類をテストするコードを追加し、GECKO が機能した後、MSHTML に戻しましたが、それでも機能しました。したがって、それは一時的な問題でした。
エンジンの種類を指定する方法は次のとおりです。
using (var document = new Doc())
{
document.HtmlOptions.Engine = EngineType.Gecko;
...
...
}
このコードは、html を PDF に変換するメソッドを呼び出しますが、1 回しか失敗しないため、必要に応じて 2 回呼び出します。
try
{
return GeneratePdfFromHtml(html, width, EngineType.MSHtml);
}
catch (Exception ex)
{
/* detect this known issue, swapping the rendering engine once seems to fix it */
if (ex.Message.ToUpper().Contains("BLANK"))
{
return GeneratePdfFromHtml(html, width, EngineType.Gecko);
}
throw;
}
次に、変換を行うメソッドにパラメーターを追加できます。
public byte[] GeneratePdfFromHtml(string html, int width, EngineType engineType)
{
if (string.IsNullOrWhiteSpace(html)) throw new ArgumentNullException("html");
if (width < 100) throw new ArgumentOutOfRangeException("width");
try
{
using (var document = new Doc())
{
document.HtmlOptions.Engine = engineType;
...
...
提案や別の解決策がある場合は、コメントを残してください。