我正在尝试将NRecosite HTML用于PDF生成器。
无论何时谈到
new NReco.PdfGenerator.HtmlToPdfConverter()
它抛出异常
FileNotFoundException:无法加载文件或程序集' System.Web, Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。 系统找不到指定的文件。
[HttpPost]
public async Task<IActionResult> Login(RegistrationModel model, CommandType command)
{
int selectedTab = 9;
if (command == CommandType.SignApplication)
{
selectedTab = 10;
string htmlContent = await GetHtml(model.Review.PublishUrl);
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);
return File(pdfBytes, "application/pdf", "dd.pdf");
}
RegistrationManager mgr = new RegistrationManager(_registrationRepository);
var registrationModel = await mgr.CreateLoginModel(model.FormId, model.LeadId, selectedTab);
return registrationModel.IsRegistrationDisbaled ? View("Error", "The link is disabled for this account") : View("Index", registrationModel);
}
答案 0 :(得分:0)
您似乎错过了Webkit PDF生成器exe的链接。
// Let's add the recovery demand to the right folder
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
htmlToPdf.License.SetLicenseKey("genertor","Your license key");
htmlToPdf.PdfToolPath = _env.ContentRootPath + "\\lib\\PdfGenerator";;
htmlToPdf.TempFilesPath = _env.ContentRootPath + "\\lib\\PdfGenerator";;
htmlToPdf.Size = NReco.PdfGenerator.PageSize.A4;
htmlToPdf.Orientation = NReco.PdfGenerator.PageOrientation.Portrait;
htmlToPdf.LowQuality = false;
因此,您需要设置许可证密钥(可能,取决于版本以及是否需要许可) - 此处的代码适用于ASP.NET Core。你有Core 2.0的标签。
但该工具需要为项目中某处wkhtmltopdf.exe
定义的路径。
您需要一份来自此处的副本:https://wkhtmltopdf.org/
我已经把我放在了\lib\PdfGenerator
项下的项目根目录中,但是把它放在适合你项目的地方。