找不到包的编译库位置' NReco.PdfGenerator'

时间:2018-01-29 06:29:39

标签: c# asp.net-core-2.0 nreco

我正在尝试将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);
}

1 个答案:

答案 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项下的项目根目录中,但是把它放在适合你项目的地方。