2

我在我的网络项目(Visual Studio 2012,c#)中使用了“NReco.PdfGenerator.dll”,它可以成功地从互联网网址(如http://google.com.tw)导出但是当我将网址更改为内部网址时(out company internal system) 我收到了这个错误信息:</p>

“无法生成 PDF:由于网络错误,使用代码 1 退出:AuthenticationRequiredError(退出代码:1)”

这是我的代码:</p>

new NReco.PdfGenerator.HtmlToPdfConverter().GeneratePdfFromFile(" http://xxx.xxx.xxxx ", null, AppDomain.CurrentDomain.BaseDirectory + "test.pdf");

任何人都可以帮助解决这个问题???非常感谢

4

1 回答 1

2

当指定的 URL 返回 HTTP 代码 401(未经授权)时,由 wkhtmltopdf 返回 AuthenticationRequiredError(内部 PdfGenerator 在单独的进程中执行它)。

在大多数情况下,这意味着该网页只能由经过身份验证的用户访问;在大多数 Web 应用程序中,身份验证令牌是通过 cookie 或 HTTP 标头传递的。

您可以使用特殊的 wkhtmltopdf 选项传递任一 cookie,例如:

var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
htmlToPdf.CustomWkHtmlArgs = " --cookie <name> <value>";

额外 HTTP 标头的选项:

htmlToPdf.CustomWkHtmlArgs = " --custom-header <name> <value> ";

请注意,无法呈现需要 Windows 身份验证的 URL;在这种情况下,应使用替代身份验证机制通过 wkhmtltopdf 访问这些页面。

于 2017-03-11T13:23:30.423 回答