我想将html代码转换为pdf,所以我使用SelectPDF库,所以我的代码是:
var converter = new HtmlToPdf();
var today = DateTime.UtcNow;
var fileName = $"test - {today}";
var doc = converter.ConvertHtmlString(html);
using var ms = new MemoryStream();
ms.Position = 0;
doc.Save(ms);
var res = ms.ToArray();
doc.Close();
return File(res, "application/pdf", fileName);
我用localhost测试了,一切都很好,总是做一个快速的转换(不超过5秒)。
问题开始时,我在服务器上发布,方法执行后,有时(不总是)它返回一个错误500
Failed to load resource: the server responded with a status of 500 () Message: "Conversion error: Navigation timeout."
是一种方法总是得到一个快速的结果?我知道我可以将加载时间扩展为:
converter.Options.MaxPageLoadTime = 120;
但是我想快速转换,2分钟的HTML到pdf转换太长了
如果它在本地工作,并且您在服务器上有时会超时,很可能您的Html包含一个文件引用(例如javascript, css或image),该文件引用当时对服务器不可用。
确保你的html中的外部引用总是可以被你的服务器访问。